diff --git a/.eslintrc b/.eslintrc index 7f439ccb..7db99d17 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,13 +1,5 @@ { - "parser": "@typescript-eslint/parser", - "parserOptions": { - "sourceType": "module", - "ecmaFeatures": { - "jsx": false - } - }, - "extends": ["oceanprotocol", "plugin:prettier/recommended"], - "plugins": ["@typescript-eslint"], + "extends": ["next/core-web-vitals", "next/typescript"], "rules": { "no-empty": ["error", { "allowEmptyCatch": true }], "prefer-destructuring": ["warn", { "object": true, "array": false }], @@ -16,15 +8,5 @@ "constructor-super": ["warn"], "require-await": "error", "no-unused-vars": ["error"] - }, - "env": { - "es6": true, - "browser": true, - "mocha": true, - "node": true, - "jest": true - }, - "globals": { - "NodeJS": true } } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32ce0a7c..6dba9b50 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,9 +24,10 @@ jobs: env: cache-name: cache-node-modules with: - path: ~/.npm - key: ${{ runner.os }}-lint-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + path: ~/.yarn + key: ${{ runner.os }}-lint-${{ env.cache-name }}-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-lint-${{ env.cache-name }}- - - run: npm ci - - run: npm run lint + - run: corepack enable + - run: yarn install --immutable + - run: yarn lint diff --git a/.prettierrc b/.prettierrc index a22bdae5..2b252ef9 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,7 +1,10 @@ { - "semi": false, - "singleQuote": true, - "printWidth": 90, - "trailingComma": "none", - "tabWidth": 2 - } \ No newline at end of file + "trailingComma": "es5", + "tabWidth": 2, + "semi": true, + "singleQuote": true, + "arrowParens": "always", + "printWidth": 120, + "bracketSpacing": true, + "plugins": ["prettier-plugin-organize-imports"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json index a521a7d3..1b82453d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,5 +8,11 @@ "search.exclude": { "**/.next": true, "**/out": true + }, + "typescript.preferences.importModuleSpecifier": "non-relative", + "files.watcherExclude": { + "**/node_modules/**": true, + "**/dist/**": true, + "**/.git/**": true } } diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 00000000..3186f3f0 --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1 @@ +nodeLinker: node-modules diff --git a/next.config.mjs b/next.config.mjs index 4678774e..f87a5445 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,4 +1,30 @@ /** @type {import('next').NextConfig} */ -const nextConfig = {}; +const nextConfig = { + webpack(config, { isServer }) { + if (!isServer) { + config.resolve.fallback = { + ...config.resolve.fallback, + fs: false, + net: false, + tls: false, + dgram: false, + dns: false + } + } + config.module.rules.push({ + test: /\.svg$/, + use: ['@svgr/webpack'], + }); + config.externals.push('pino-pretty', 'lokijs', 'encoding'); + config.resolve.fallback = { + ...config.resolve.fallback, + fs: false, + 'rdf-canonize-native': false, + }; + + return config; + }, + transpilePackages: ['@mui/x-data-grid', '@mui/x-data-grid-pro', '@mui/x-data-grid-premium'], +}; export default nextConfig; diff --git a/package-lock.json b/package-lock.json index 64e572a4..6e976a70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "ocean-node-dashboard", "version": "0.1.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -9,46 +9,64 @@ "version": "0.1.0", "license": "Apache-2.0", "dependencies": { - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.16.7", - "@mui/material": "^5.16.7", - "@mui/x-data-grid": "^7.13.0", - "@mui/x-date-pickers": "^7.2.0", - "@mui/x-date-pickers-pro": "^7.27.3", - "@rainbow-me/rainbowkit": "^2.0.2", + "@account-kit/infra": "^4.81.2", + "@account-kit/react": "^4.81.2", + "@chainsafe/libp2p-noise": "^17.0.0", + "@chainsafe/libp2p-yamux": "^8.0.1", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@libp2p/autonat": "^3.0.9", + "@libp2p/bootstrap": "^12.0.10", + "@libp2p/circuit-relay-v2": "^4.1.2", + "@libp2p/crypto": "^5.1.13", + "@libp2p/dcutr": "^3.0.9", + "@libp2p/identify": "^4.0.9", + "@libp2p/kad-dht": "^16.1.2", + "@libp2p/keychain": "^6.0.9", + "@libp2p/mdns": "^12.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/peer-id-factory": "^4.2.4", + "@libp2p/ping": "^3.0.9", + "@libp2p/pubsub": "^10.1.18", + "@libp2p/pubsub-peer-discovery": "^12.0.0", + "@libp2p/tcp": "^11.0.9", + "@libp2p/tls": "^3.0.10", + "@libp2p/upnp-nat": "^4.0.9", + "@libp2p/websockets": "^10.1.2", + "@mui/icons-material": "^7.3.6", + "@mui/material": "^7.3.6", + "@mui/x-data-grid": "^8.14.1", + "@multiformats/multiaddr": "^12.2.3", + "@oceanprotocol/contracts": "2.5.0", + "@oceanprotocol/lib": "5.0.1", "@tanstack/react-query": "^5.28.4", - "axios": "^1.8.2", + "@wagmi/core": "^3.0.0", + "axios": "^1.12.2", + "bignumber.js": "^9.3.1", "classnames": "^2.5.0", - "date-fns": "^2.30.0", - "dayjs": "^1.11.10", - "ethers": "^6.10.0", - "express": "^4.21.2", - "jparticles": "^3.5.0", - "leaflet": "^1.9.4", - "micromodal": "^0.4.10", + "ethers": "^6.15.0", + "formik": "^2.4.9", + "gsap": "3.13.0", + "it-pipe": "^3.0.1", + "json-edit-react": "^1.29.0", + "jszip": "^3.10.1", + "libp2p": "^3.1.2", + "myetherwallet-blockies": "^0.1.1", "next": "^15.4.8", + "normalize.css": "^8.0.1", "react": "^18", - "react-data-table-component": "^7.5.4", - "react-day-picker": "^9.6.3", "react-dom": "^18", - "react-leaflet": "^4.2.1", - "react-paginate": "^8.2.0", - "react-query": "^3.39.3", - "recharts": "^2.13.0", - "styled-components": "^6.1.1", - "three": "^0.169.0", - "vanta": "^0.5.24", - "viem": "^2.8.14", - "wagmi": "^2.16.9" + "react-toastify": "^11.0.5", + "recharts": "^3.3.0", + "uint8arrays": "^4.0.6", + "wagmi": "^3.1.0", + "yup": "^1.7.1" }, "devDependencies": { - "@types/leaflet": "^1.9.12", + "@svgr/webpack": "^8.1.0", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", - "@types/react-leaflet": "^3.0.0", - "@types/three": "^0.169.0", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint": "^8.57.0", @@ -57,2501 +75,2585 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^6.6.0", - "prettier": "^3.3.3", + "prettier": "^3.7.4", + "prettier-plugin-organize-imports": "^4.3.0", "typescript": "^5" } }, - "node_modules/@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" + "node_modules/@aa-sdk/core": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@aa-sdk/core/-/core-4.82.1.tgz", + "integrity": "sha512-5ue+fw5wmoaex06GtksA6oXFKNtLsXm/DK8nDasPs/pE2c4Fd7JI1Sj85tZdXf1v0F+FFyeM7CB4l0xB5V7nFA==", + "license": "MIT", + "dependencies": { + "abitype": "^0.8.3", + "eventemitter3": "^5.0.1", + "zod": "^3.22.4" + }, + "peerDependencies": { + "viem": "^2.29.2" + } }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "node_modules/@account-kit/core": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/core/-/core-4.82.1.tgz", + "integrity": "sha512-nGSvdBa3uYwZfLU1vQQkEWxNWEE+T97XeL4pUoZ9F8AT+XKoEutdFyYP2YydqP/7xqmerhbtbyeEFv3NOKsdlQ==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" + "@account-kit/infra": "^4.82.1", + "@account-kit/logging": "^4.82.1", + "@account-kit/react-native-signer": "^4.82.1", + "@account-kit/signer": "^4.82.1", + "@account-kit/smart-contracts": "^4.82.1", + "@account-kit/wallet-client": "^4.82.1", + "@solana/web3.js": "^1.98.0", + "js-cookie": "^3.0.5", + "zod": "^3.22.4", + "zustand": "^5.0.0-rc.2" }, - "engines": { - "node": ">=6.9.0" + "optionalDependencies": { + "alchemy-sdk": "^3.0.0" + }, + "peerDependencies": { + "viem": "^2.29.2", + "wagmi": "^2.12.7" } }, - "node_modules/@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "node_modules/@account-kit/infra": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/infra/-/infra-4.82.1.tgz", + "integrity": "sha512-yE62bmdj/cDhgaarg5SdypUtOh4grOwgdwbwm4dSLOhvcLGMRr75THR/BPASwR9cQM6KZtLMQ2FAv56saQlZOA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "@aa-sdk/core": "^4.82.1", + "@account-kit/logging": "^4.82.1", + "eventemitter3": "^5.0.1", + "zod": "^3.22.4" }, - "engines": { - "node": ">=6.9.0" + "optionalDependencies": { + "alchemy-sdk": "^3.0.0" + }, + "peerDependencies": { + "viem": "^2.29.2" + } + }, + "node_modules/@account-kit/logging": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/logging/-/logging-4.82.1.tgz", + "integrity": "sha512-u55cAShxdK5FVDZ2jKMP1S6T0ZgA0WG0kA/MQxMH45IenEIpInvQvBbMQgJTkbjtZi5u5HljEL+00K24u57ygQ==", + "license": "MIT", + "dependencies": { + "@segment/analytics-next": "1.74.0", + "uuid": "^11.0.2" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "node_modules/@account-kit/react": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/react/-/react-4.82.1.tgz", + "integrity": "sha512-GXC4HUAS83DDBfOApVKPz+ibQzDHo69ymUdTcOG48HOsZMqWONc/dcuy/2F5d3Spl7VAuieT1TQzMNrFfRgrBQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@account-kit/core": "^4.82.1", + "@account-kit/infra": "^4.82.1", + "@account-kit/logging": "^4.82.1", + "@account-kit/signer": "^4.82.1", + "@account-kit/wallet-client": "^4.82.1", + "@solana/wallet-adapter-react": "^0.15.39", + "@solana/wallet-adapter-wallets": "^0.19.37", + "@solana/web3.js": "^1.98.0", + "@tanstack/react-form": "^0.33.0", + "@tanstack/zod-form-adapter": "^0.33.0", + "@wagmi/connectors": "^5.1.15", + "bs58": "^6.0.0", + "react-remove-scroll": "^2.5.10", + "zod": "^3.22.4", + "zustand": "^5.0.0-rc.2" }, - "engines": { - "node": ">=6.9.0" + "optionalDependencies": { + "alchemy-sdk": "^3.0.0" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.28.9", + "react": ">=18.2.0", + "react-dom": ">=18.2.0", + "viem": "^2.29.2", + "wagmi": "^2.12.7" + } + }, + "node_modules/@account-kit/react-native-signer": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/react-native-signer/-/react-native-signer-4.82.1.tgz", + "integrity": "sha512-SxX7KFpQ3c57nJHnHXLw+nlbge5/koWfKQfKKUN4/5bJ6ZoVC4Jm9cl+oBOMpGq3A7oIBlD6iva2fb8uPScgWA==", + "dependencies": { + "@aa-sdk/core": "^4.82.1", + "@account-kit/signer": "^4.82.1", + "@turnkey/crypto": "^2.5.0", + "@turnkey/react-native-passkey-stamper": "^1.1.4", + "uuid": "^11.1.0", + "viem": "^2.29.2", + "zod": "^3.22.4" + }, + "peerDependencies": { + "react": ">=18.2.0", + "react-native": ">=0.76.0", + "react-native-get-random-values": "^1.11.0", + "react-native-inappbrowser-reborn": "^3.7.0", + "react-native-mmkv": "^3.1.0", + "react-native-passkey": "^3.1.0" + } + }, + "node_modules/@account-kit/signer": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/signer/-/signer-4.82.1.tgz", + "integrity": "sha512-sUdddnuw5uifBXCLGhgn3avI15Uvi4WYecZhNXxgtrEbCmEEl4k7nRr+KU056WGAugNINiLxXNtYUNpxvwUvfQ==", + "license": "MIT", + "dependencies": { + "@aa-sdk/core": "^4.82.1", + "@account-kit/logging": "^4.82.1", + "@noble/curves": "^1.9.2", + "@noble/hashes": "1.7.1", + "@noble/secp256k1": "^2.3.0", + "@solana/web3.js": "^1.98.0", + "@turnkey/http": "^3.11.0", + "@turnkey/iframe-stamper": "^2.5.0", + "@turnkey/viem": "^0.13.1", + "@turnkey/webauthn-stamper": "^0.4.3", + "bs58": "^6.0.0", + "jwt-decode": "^4.0.0", + "zod": "^3.22.4", + "zustand": "^5.0.0-rc.2" + }, + "peerDependencies": { + "viem": "^2.29.2" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "node_modules/@account-kit/smart-contracts": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/smart-contracts/-/smart-contracts-4.82.1.tgz", + "integrity": "sha512-i2HSlbBoChME2Eu+Wd4b9a0IaeYNZnRGA1HzV2z4z5Um+PNVGcsb91CmO4SBnWbuaMNs9RhjtSWc+bTJbBYE/Q==", + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "@aa-sdk/core": "^4.82.1", + "@account-kit/infra": "^4.82.1", + "webauthn-p256": "^0.0.10" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "viem": "^2.29.2" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "node_modules/@account-kit/wallet-client": { + "version": "4.82.1", + "resolved": "https://registry.npmjs.org/@account-kit/wallet-client/-/wallet-client-4.82.1.tgz", + "integrity": "sha512-FjB9lFQUbCnX418djd5r1ryijviWywZ/07W+tvY18Bxb1JCCqtUJ4W1r0SPtZSSnk8/HZxR9+EYxVFLgtKh6FA==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@aa-sdk/core": "^4.82.1", + "@account-kit/infra": "^4.82.1", + "@account-kit/smart-contracts": "^4.82.1", + "@alchemy/wallet-api-types": "0.1.0-alpha.18", + "deep-equal": "^2.2.3", + "ox": "^0.6.12" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "viem": "^2.29.2" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "node_modules/@achingbrain/nat-port-mapper": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@achingbrain/nat-port-mapper/-/nat-port-mapper-4.0.5.tgz", + "integrity": "sha512-YAA4MW6jO6W7pmJaFzQ0AOLpu8iQClUkdT2HbfKLmtFjrpoZugnFj9wH8EONV9LxnIW+0W1J98ri+oApKyAKLQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@achingbrain/ssdp": "^4.1.0", + "@chainsafe/is-ip": "^2.0.2", + "@libp2p/logger": "^6.0.5", + "abort-error": "^1.0.0", + "err-code": "^3.0.1", + "netmask": "^2.0.2", + "p-defer": "^4.0.0", + "race-signal": "^2.0.0", + "xml2js": "^0.6.0" + } + }, + "node_modules/@achingbrain/ssdp": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@achingbrain/ssdp/-/ssdp-4.2.4.tgz", + "integrity": "sha512-1dZIV7dwYJRS1sTA0qIDzsMdwZAnPa7DGb2YuPqMq4PjEjvzBBuz2WIsXnrkRFCNY00JuqLiMby9GecnGsOgaQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.0", + "freeport-promise": "^2.0.0", + "merge-options": "^3.0.4", + "xml2js": "^0.6.2" + } + }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" + }, + "node_modules/@alchemy/wallet-api-types": { + "version": "0.1.0-alpha.18", + "resolved": "https://registry.npmjs.org/@alchemy/wallet-api-types/-/wallet-api-types-0.1.0-alpha.18.tgz", + "integrity": "sha512-zhp1JjyM8eVIutl+iMcXfAYTVvtLTSGn2ty36akfx3eC4okUeVZilgt7N1qN6sx5ydJOPlhh3z1dRJJ0HC2DXA==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "deep-equal": "^2.2.3", + "ox": "^0.6.12", + "typebox": "^1.0.0", + "viem": "2.29.2" }, - "engines": { - "node": ">=6.9.0" + "peerDependencies": { + "typescript": "^5.8.2" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "node_modules/@alchemy/wallet-api-types/node_modules/@noble/curves": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.2.tgz", + "integrity": "sha512-vnI7V6lFNe0tLAuJMu+2sX+FcL14TaCWy1qiczg1VwRmPrpQCdq5ESXQMqUc2tluRNf6irBXrWbl1mGN8uaU/g==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.24.7" + "@noble/hashes": "1.7.2" }, "engines": { - "node": ">=6.9.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "node_modules/@alchemy/wallet-api-types/node_modules/@noble/hashes": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.2.tgz", + "integrity": "sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==", "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "node_modules/@alchemy/wallet-api-types/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", "license": "MIT", - "engines": { - "node": ">=6.9.0" + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", + "node_modules/@alchemy/wallet-api-types/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" }, - "bin": { - "parser": "bin/babel-parser.js" + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@alchemy/wallet-api-types/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/@alchemy/wallet-api-types/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/@alchemy/wallet-api-types/node_modules/viem": { + "version": "2.29.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.29.2.tgz", + "integrity": "sha512-cukRxab90jvQ+TDD84sU3qB3UmejYqgCw4cX8SfWzvh7JPfZXI3kAMUaT5OSR2As1Mgvx1EJawccwPjGqkSSwA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.2", + "@noble/hashes": "1.7.2", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.9", + "ws": "8.18.1" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@alchemy/wallet-api-types/node_modules/viem/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@alchemy/wallet-api-types/node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "license": "MIT", "engines": { - "node": ">=6.0.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/@babel/runtime": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", - "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", + "node_modules/@babel/code-frame": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.28.6.tgz", + "integrity": "sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==", + "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.14.0" + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "node_modules/@babel/compat-data": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.6.tgz", + "integrity": "sha512-2lfu57JtzctfIrcGMz992hyLlByuzgIk58+hhGCxjKZ3rWI82NnVLjXcaTqkI2NvlcvOskZaiZ5kjUALo3Lpxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.6.tgz", + "integrity": "sha512-H3mcG6ZDLTlYfaSNi0iOKkigqMFvkTKlGUYlD8GW7nNOYRrevuA46iTypPyv+06V3fEmvvazfntkBU34L0azAw==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.6.tgz", + "integrity": "sha512-lOoVRwADj8hjf7al89tvQ2a1lf53Z+7tiXMgpZJL3maQPDxh0DgLMN62B2MKUOFcoodBHLMbDM6WAbKgNy5Suw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, - "node_modules/@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@base-org/account": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@base-org/account/-/account-1.1.1.tgz", - "integrity": "sha512-IfVJPrDPhHfqXRDb89472hXkpvJuQQR7FDI9isLPHEqSYt/45whIoBxSPgZ0ssTt379VhQo4+87PWI1DoLSfAQ==", - "dependencies": { - "@noble/hashes": "1.4.0", - "clsx": "1.2.1", - "eventemitter3": "5.0.1", - "idb-keyval": "6.2.1", - "ox": "0.6.9", - "preact": "10.24.2", - "viem": "^2.31.7", - "zustand": "5.0.3" + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@base-org/account/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz", + "integrity": "sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.6", + "semver": "^6.3.1" + }, "engines": { - "node": ">= 16" + "node": ">=6.9.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@base-org/account/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "engines": { - "node": ">=6" + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@coinbase/wallet-sdk": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.6.tgz", - "integrity": "sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", + "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "dev": true, + "license": "MIT", "dependencies": { - "@noble/hashes": "1.4.0", - "clsx": "1.2.1", - "eventemitter3": "5.0.1", - "idb-keyval": "6.2.1", - "ox": "0.6.9", - "preact": "10.24.2", - "viem": "^2.27.2", - "zustand": "5.0.3" - } - }, - "node_modules/@coinbase/wallet-sdk/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "@babel/helper-annotate-as-pure": "^7.27.3", + "regexpu-core": "^6.3.1", + "semver": "^6.3.1" + }, "engines": { - "node": ">= 16" + "node": ">=6.9.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@coinbase/wallet-sdk/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", - "engines": { - "node": ">=6" + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@date-fns/tz": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.2.0.tgz", - "integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==" - }, - "node_modules/@ecies/ciphers": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.4.tgz", - "integrity": "sha512-t+iX+Wf5nRKyNzk8dviW3Ikb/280+aEJAnw9YXvCp2tYGPSkMki+NRY+8aNLmVFv3eNtMdvViPNOPxS8SZNP+w==", - "engines": { - "bun": ">=1", - "deno": ">=2", - "node": ">=16" + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", + "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "debug": "^4.4.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.22.10" }, "peerDependencies": { - "@noble/ciphers": "^1.0.0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@emnapi/runtime": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" - } - }, - "node_modules/@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "dependencies": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "stylis": "4.2.0" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" - }, - "node_modules/@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", "dependencies": { - "@emotion/memoize": "^0.8.1" + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, - "node_modules/@emotion/react": { - "version": "11.11.4", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", - "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "hoist-non-react-statics": "^3.3.1" + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" }, - "peerDependencies": { - "react": ">=16.8.0" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@emotion/serialize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", - "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", "dependencies": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", - "csstype": "^3.0.2" + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@emotion/styled": { - "version": "11.11.5", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", - "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/is-prop-valid": "^1.2.2", - "@emotion/serialize": "^1.1.4", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, - "peerDependencies": { - "@emotion/react": "^11.0.0-rc.0", - "react": ">=16.8.0" + "engines": { + "node": ">=6.9.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" - }, - "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", "peerDependencies": { - "react": ">=16.8.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" - }, - "node_modules/@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz", + "integrity": "sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.28.6" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=6.9.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=6.9.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" } }, - "node_modules/@ethereumjs/common": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", - "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", - "dependencies": { - "@ethereumjs/util": "^8.1.0", - "crc-32": "^1.2.0" + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@ethereumjs/rlp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", - "bin": { - "rlp": "bin/rlp" + "node_modules/@babel/helper-wrap-function": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz", + "integrity": "sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { - "node": ">=14" + "node": ">=6.9.0" } }, - "node_modules/@ethereumjs/tx": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", - "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/common": "^3.2.0", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.1.0", - "ethereum-cryptography": "^2.0.0" + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { - "node": ">=14" + "node": ">=6.9.0" } }, - "node_modules/@ethereumjs/util": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "node_modules/@babel/parser": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.6.tgz", + "integrity": "sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==", + "license": "MIT", "dependencies": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.0.0", - "micro-ftch": "^0.3.1" + "@babel/types": "^7.28.6" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=14" + "node": ">=6.0.0" } }, - "node_modules/@gemini-wallet/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@gemini-wallet/core/-/core-0.2.0.tgz", - "integrity": "sha512-vv9aozWnKrrPWQ3vIFcWk7yta4hQW1Ie0fsNNPeXnjAxkbXr2hqMagEptLuMxpEP2W3mnRu05VDNKzcvAuuZDw==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", + "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/rpc-errors": "7.0.2", - "eventemitter3": "5.0.1" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "viem": ">=2.0.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "dev": true, + "license": "MIT", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true - }, - "node_modules/@img/colour": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", - "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", - "optional": true, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz", + "integrity": "sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/traverse": "^7.28.6" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "license": "MIT", "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz", + "integrity": "sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz", + "integrity": "sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz", + "integrity": "sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz", + "integrity": "sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.6.tgz", + "integrity": "sha512-9knsChgsMzBV5Yh3kkhrZNxH3oCYAfMBkNNaVN4cP2RVlFPe8wYdwwcnOsAbkdDoV9UjFtOXWrWB52M8W4jNeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz", + "integrity": "sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-remap-async-to-generator": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz", + "integrity": "sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz", + "integrity": "sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz", + "integrity": "sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz", + "integrity": "sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-replace-supers": "^7.28.6", + "@babel/traverse": "^7.28.6" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz", + "integrity": "sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/template": "^7.28.6" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz", + "integrity": "sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, - "funding": { - "url": "https://opencollective.com/libvips" + "engines": { + "node": ">=6.9.0" }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], - "optional": true, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "dev": true, + "license": "MIT", "dependencies": { - "@emnapi/runtime": "^1.7.0" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.28.6.tgz", + "integrity": "sha512-5suVoXjC14lUN6ZL9OLKIHCNVWCrqGqlmEp/ixdXjvgnEl/kauLvvMO/Xw9NyMc95Joj1AeLVPVMvibBgSoFlA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "node_modules/@babel/plugin-transform-explicit-resource-management": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz", + "integrity": "sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5" + }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + "node": ">=6.9.0" }, - "funding": { - "url": "https://opencollective.com/libvips" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz", + "integrity": "sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw==", + "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@lit-labs/ssr-dom-shim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", - "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==" - }, - "node_modules/@lit/reactive-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", - "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz", + "integrity": "sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw==", + "dev": true, + "license": "MIT", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0" + "@babel/helper-plugin-utils": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/eth-json-rpc-provider": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-1.0.1.tgz", - "integrity": "sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/json-rpc-engine": "^7.0.0", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^5.0.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", - "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz", + "integrity": "sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine/node_modules/@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/rpc-errors": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", - "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/utils": "^9.0.0", - "fast-safe-stringify": "^2.0.6" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", - "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz", + "integrity": "sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/utils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", - "integrity": "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", + "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.1.2", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "semver": "^7.3.8", - "superstruct": "^1.0.3" + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/eth-json-rpc-provider/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/json-rpc-engine": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", - "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/rpc-errors": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", - "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/utils": "^9.0.0", - "fast-safe-stringify": "^2.0.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", - "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz", + "integrity": "sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz", + "integrity": "sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/json-rpc-engine/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz", + "integrity": "sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/json-rpc-middleware-stream": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", - "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/json-rpc-engine": "^8.0.2", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0", - "readable-stream": "^3.6.2" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz", + "integrity": "sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@metamask/object-multiplex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz", - "integrity": "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz", + "integrity": "sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w==", + "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.4.0", - "readable-stream": "^3.6.2" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { - "node": "^16.20 || ^18.16 || >=20" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/onboarding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz", - "integrity": "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "license": "MIT", "dependencies": { - "bowser": "^2.9.0" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/providers": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", - "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz", + "integrity": "sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/json-rpc-engine": "^8.0.1", - "@metamask/json-rpc-middleware-stream": "^7.0.1", - "@metamask/object-multiplex": "^2.0.0", - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.1.1", - "@metamask/utils": "^8.3.0", - "detect-browser": "^5.2.0", - "extension-port-stream": "^3.0.0", - "fast-deep-equal": "^3.1.3", - "is-stream": "^2.0.0", - "readable-stream": "^3.6.2", - "webextension-polyfill": "^0.10.0" + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": "^18.18 || >=20" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/providers/node_modules/@metamask/rpc-errors": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", - "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz", + "integrity": "sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/utils": "^9.0.0", - "fast-safe-stringify": "^2.0.6" + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/providers/node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", - "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/providers/node_modules/@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@metamask/providers/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/rpc-errors": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-7.0.2.tgz", - "integrity": "sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw==", + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "dev": true, + "license": "MIT", "dependencies": { - "@metamask/utils": "^11.0.1", - "fast-safe-stringify": "^2.0.6" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": "^18.20 || ^20.17 || >=22" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/safe-event-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz", - "integrity": "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==", + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz", + "integrity": "sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/plugin-syntax-jsx": "^7.28.6", + "@babel/types": "^7.28.6" + }, "engines": { - "node": ">=12.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/sdk": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.32.0.tgz", - "integrity": "sha512-WmGAlP1oBuD9hk4CsdlG1WJFuPtYJY+dnTHJMeCyohTWD2GgkcLMUUuvu9lO1/NVzuOoSi1OrnjbuY1O/1NZ1g==", + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.26.0", - "@metamask/onboarding": "^1.0.1", - "@metamask/providers": "16.1.0", - "@metamask/sdk-communication-layer": "0.32.0", - "@metamask/sdk-install-modal-web": "0.32.0", - "@paulmillr/qr": "^0.2.1", - "bowser": "^2.9.0", - "cross-fetch": "^4.0.0", - "debug": "^4.3.4", - "eciesjs": "^0.4.11", - "eth-rpc-errors": "^4.0.3", - "eventemitter2": "^6.4.9", - "obj-multiplex": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.2", - "socket.io-client": "^4.5.1", - "tslib": "^2.6.0", - "util": "^0.12.4", - "uuid": "^8.3.2" + "@babel/plugin-transform-react-jsx": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/sdk-communication-layer": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.32.0.tgz", - "integrity": "sha512-dmj/KFjMi1fsdZGIOtbhxdg3amxhKL/A5BqSU4uh/SyDKPub/OT+x5pX8bGjpTL1WPWY/Q0OIlvFyX3VWnT06Q==", + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "dev": true, + "license": "MIT", "dependencies": { - "bufferutil": "^4.0.8", - "date-fns": "^2.29.3", - "debug": "^4.3.4", - "utf-8-validate": "^5.0.2", - "uuid": "^8.3.2" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "cross-fetch": "^4.0.0", - "eciesjs": "*", - "eventemitter2": "^6.4.9", - "readable-stream": "^3.6.2", - "socket.io-client": "^4.5.1" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/sdk-install-modal-web": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.0.tgz", - "integrity": "sha512-TFoktj0JgfWnQaL3yFkApqNwcaqJ+dw4xcnrJueMP3aXkSNev2Ido+WVNOg4IIMxnmOrfAC9t0UJ0u/dC9MjOQ==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.6.tgz", + "integrity": "sha512-eZhoEZHYQLL5uc1gS5e9/oTknS0sSSAtd5TkKMUp3J+S/CaUjagc0kOUPsEbDmMeva0nC3WWl4SxVY6+OBuxfw==", + "dev": true, + "license": "MIT", "dependencies": { - "@paulmillr/qr": "^0.2.1" - } - }, - "node_modules/@metamask/superstruct": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.2.1.tgz", - "integrity": "sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==", + "@babel/helper-plugin-utils": "^7.28.6" + }, "engines": { - "node": ">=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@metamask/utils": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-11.7.0.tgz", - "integrity": "sha512-IamqpZF8Lr4WeXJ84fD+Sy+v1Zo05SYuMPHHBrZWpzVbnHAmXQpL4ckn9s5dfA+zylp3WGypaBPb6SBZdOhuNQ==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz", + "integrity": "sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg==", + "dev": true, + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "@types/lodash": "^4.17.20", - "debug": "^4.3.4", - "lodash": "^4.17.21", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": "^18.18 || ^20.14 || >=22" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@metamask/utils/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/core-downloads-tracker": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.7.tgz", - "integrity": "sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/icons-material": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.7.tgz", - "integrity": "sha512-UrGwDJCXEszbDI7yV047BYU5A28eGJ79keTCP4cc74WyncuVrnurlmIRxaHL8YK+LI1Kzq+/JM52IAkNnv4u+Q==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz", + "integrity": "sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9" + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@mui/material": "^5.0.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/material": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.7.tgz", - "integrity": "sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/core-downloads-tracker": "^5.16.7", - "@mui/system": "^5.16.7", - "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.6", - "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^18.3.1", - "react-transition-group": "^4.4.5" + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/material/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "node_modules/@mui/private-theming": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.6.tgz", - "integrity": "sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.16.6", - "prop-types": "^15.8.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/styled-engine": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.6.tgz", - "integrity": "sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@emotion/react": "^11.4.1", - "@emotion/styled": "^11.3.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/system": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.7.tgz", - "integrity": "sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.16.6", - "@mui/styled-engine": "^5.16.6", - "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.6", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz", + "integrity": "sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.28.6" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "@types/react": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/types": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.15.tgz", - "integrity": "sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==", - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0" + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/utils": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", - "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz", + "integrity": "sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/utils/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "node_modules/@mui/x-data-grid": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.13.0.tgz", - "integrity": "sha512-opV4OgNqc9UoKkQ1z5Ot2AkluwiVQMo6UmDaxmT/v0k2uQ77eQvxJqbnCwYll0XjsRzPz6ehiTaK3nbhXm0sIQ==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.0", - "@mui/system": "^5.16.5", - "@mui/utils": "^5.16.5", - "@mui/x-internals": "7.13.0", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "reselect": "^4.1.8" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "@mui/material": "^5.15.14", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - } + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/x-date-pickers": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.27.3.tgz", - "integrity": "sha512-igfKTPC4ZVCmS5j/NXcXBtj/hHseQHzRpCpIB1PMnJGhMdRYXnz8qZz5XhlNBKlzJVXkGu6Uil+obZpCLNj1xg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz", + "integrity": "sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-internals": "7.26.0", - "@types/react-transition-group": "^4.4.11", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" + "@babel/helper-create-regexp-features-plugin": "^7.28.5", + "@babel/helper-plugin-utils": "^7.28.6" }, "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "@mui/material": "^5.15.14 || ^6.0.0", - "@mui/system": "^5.15.14 || ^6.0.0", - "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", - "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0", - "dayjs": "^1.10.7", - "luxon": "^3.0.2", - "moment": "^2.29.4", - "moment-hijri": "^2.1.2 || ^3.0.0", - "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "date-fns": { - "optional": true - }, - "date-fns-jalali": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - }, - "moment-hijri": { - "optional": true - }, - "moment-jalaali": { - "optional": true - } + "@babel/core": "^7.0.0" } }, - "node_modules/@mui/x-date-pickers-pro": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers-pro/-/x-date-pickers-pro-7.27.3.tgz", - "integrity": "sha512-gbCq5gSt8Bcs3EENSUK66mPwYNv8z9+P8gHj/9iW9F+a0bnPyYjoy+wl/UAItgXLBdxZuCbGO0Qp8Tcc5/5N0w==", - "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-date-pickers": "7.27.3", - "@mui/x-internals": "7.26.0", - "@mui/x-license": "7.26.0", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" + "node_modules/@babel/preset-env": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.6.tgz", + "integrity": "sha512-GaTI4nXDrs7l0qaJ6Rg06dtOXTBCG6TMDB44zbqofCIC4PqC7SEvmFFtpxzCDw9W5aJ7RKVshgXTLvLdBFV/qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-plugin-utils": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.6", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.28.6", + "@babel/plugin-syntax-import-attributes": "^7.28.6", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.28.6", + "@babel/plugin-transform-async-to-generator": "^7.28.6", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.28.6", + "@babel/plugin-transform-class-properties": "^7.28.6", + "@babel/plugin-transform-class-static-block": "^7.28.6", + "@babel/plugin-transform-classes": "^7.28.6", + "@babel/plugin-transform-computed-properties": "^7.28.6", + "@babel/plugin-transform-destructuring": "^7.28.5", + "@babel/plugin-transform-dotall-regex": "^7.28.6", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.28.6", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-explicit-resource-management": "^7.28.6", + "@babel/plugin-transform-exponentiation-operator": "^7.28.6", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.28.6", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.28.6", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.28.6", + "@babel/plugin-transform-modules-systemjs": "^7.28.5", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.28.6", + "@babel/plugin-transform-numeric-separator": "^7.28.6", + "@babel/plugin-transform-object-rest-spread": "^7.28.6", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.28.6", + "@babel/plugin-transform-optional-chaining": "^7.28.6", + "@babel/plugin-transform-parameters": "^7.27.7", + "@babel/plugin-transform-private-methods": "^7.28.6", + "@babel/plugin-transform-private-property-in-object": "^7.28.6", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.28.6", + "@babel/plugin-transform-regexp-modifiers": "^7.28.6", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.28.6", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.28.6", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.28.6", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.14", + "babel-plugin-polyfill-corejs3": "^0.13.0", + "babel-plugin-polyfill-regenerator": "^0.6.5", + "core-js-compat": "^3.43.0", + "semver": "^6.3.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "@emotion/react": "^11.9.0", - "@emotion/styled": "^11.8.1", - "@mui/material": "^5.15.14 || ^6.0.0", - "@mui/system": "^5.15.14 || ^6.0.0", - "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0", - "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0", - "dayjs": "^1.10.7", - "luxon": "^3.0.2", - "moment": "^2.29.4", - "moment-hijri": "^2.1.2 || ^3.0.0", - "moment-jalaali": "^0.7.4 || ^0.8.0 || ^0.9.0 || ^0.10.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" }, - "peerDependenciesMeta": { - "@emotion/react": { - "optional": true - }, - "@emotion/styled": { - "optional": true - }, - "date-fns": { - "optional": true - }, - "date-fns-jalali": { - "optional": true - }, - "dayjs": { - "optional": true - }, - "luxon": { - "optional": true - }, - "moment": { - "optional": true - }, - "moment-hijri": { - "optional": true - }, - "moment-jalaali": { - "optional": true - } + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@mui/x-date-pickers-pro/node_modules/@mui/x-internals": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", - "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", + "node_modules/@babel/preset-react": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", + "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.28.0", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/x-date-pickers/node_modules/@mui/x-internals": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", - "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", + "node_modules/@babel/preset-typescript": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz", + "integrity": "sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.28.5" }, "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" + "node": ">=6.9.0" }, "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@mui/x-internals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.13.0.tgz", - "integrity": "sha512-eUK7iykkDWU+wBfTzE/S0qh4awgVgsORfrpvuPbUp+E6qUj1Xhu9M/WKzbwz0CPFnTJZwBQ9KYrxpGXnPBEpRQ==", - "dependencies": { - "@babel/runtime": "^7.25.0", - "@mui/utils": "^5.16.5" - }, + "node_modules/@babel/runtime": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", + "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", + "license": "MIT", "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@mui/x-license": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-license/-/x-license-7.26.0.tgz", - "integrity": "sha512-WxwBGk6xXF0vi4IGCCojMHjQsAXvltjP+YgFTTgWVFhIpDFDu89xLOwRnSWrhCwD6dlK/BwKgn2UgxTE8BZGFQ==", + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-internals": "7.26.0" + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" }, "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + "node": ">=6.9.0" } }, - "node_modules/@mui/x-license/node_modules/@mui/x-internals": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", - "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", + "node_modules/@babel/traverse": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.6.tgz", + "integrity": "sha512-fgWX62k02qtjqdSNTAGxmKYY/7FSL9WAS1o2Hu5+I5m9T0yxZzr4cnrfXQ/MX0rIifthCSs6FKTlzYbJcPtMNg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0" + "@babel/code-frame": "^7.28.6", + "@babel/generator": "^7.28.6", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.6", + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6", + "debug": "^4.3.1" }, "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + "node": ">=6.9.0" } }, - "node_modules/@next/env": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.4.8.tgz", - "integrity": "sha512-LydLa2MDI1NMrOFSkO54mTc8iIHSttj6R6dthITky9ylXV2gCGi0bHQjVCtLGRshdRPjyh2kXbxJukDtBWQZtQ==" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.4.tgz", - "integrity": "sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==", - "dev": true, + "node_modules/@babel/types": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.6.tgz", + "integrity": "sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==", + "license": "MIT", "dependencies": { - "glob": "7.1.7" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.4.8.tgz", - "integrity": "sha512-Pf6zXp7yyQEn7sqMxur6+kYcywx5up1J849psyET7/8pG2gQTVMjU3NzgIt8SeEP5to3If/SaWmaA6H6ysBr1A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.4.8.tgz", - "integrity": "sha512-xla6AOfz68a6kq3gRQccWEvFC/VRGJmA/QuSLENSO7CZX5WIEkSz7r1FdXUjtGCQ1c2M+ndUAH7opdfLK1PQbw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.4.8.tgz", - "integrity": "sha512-y3fmp+1Px/SJD+5ntve5QLZnGLycsxsVPkTzAc3zUiXYSOlTPqT8ynfmt6tt4fSo1tAhDPmryXpYKEAcoAPDJw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.4.8.tgz", - "integrity": "sha512-DX/L8VHzrr1CfwaVjBQr3GWCqNNFgyWJbeQ10Lx/phzbQo3JNAxUok1DZ8JHRGcL6PgMRgj6HylnLNndxn4Z6A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.4.8.tgz", - "integrity": "sha512-9fLAAXKAL3xEIFdKdzG5rUSvSiZTLLTCc6JKq1z04DR4zY7DbAPcRvNm3K1inVhTiQCs19ZRAgUerHiVKMZZIA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.4.8.tgz", - "integrity": "sha512-s45V7nfb5g7dbS7JK6XZDcapicVrMMvX2uYgOHP16QuKH/JA285oy6HcxlKqwUNaFY/UC6EvQ8QZUOo19cBKSA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.4.8.tgz", - "integrity": "sha512-KjgeQyOAq7t/HzAJcWPGA8X+4WY03uSCZ2Ekk98S9OgCFsb6lfBE3dbUzUuEQAN2THbwYgFfxX2yFTCMm8Kehw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, "engines": { - "node": ">= 10" + "node": ">=6.9.0" } }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.4.8.tgz", - "integrity": "sha512-Exsmf/+42fWVnLMaZHzshukTBxZrSwuuLKFvqhGHJ+mC1AokqieLY/XzAl3jc/CqhXLqLY3RRjkKJ9YnLPcRWg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" + "node_modules/@base-org/account": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@base-org/account/-/account-1.1.1.tgz", + "integrity": "sha512-IfVJPrDPhHfqXRDb89472hXkpvJuQQR7FDI9isLPHEqSYt/45whIoBxSPgZ0ssTt379VhQo4+87PWI1DoLSfAQ==", + "license": "Apache-2.0", + "dependencies": { + "@noble/hashes": "1.4.0", + "clsx": "1.2.1", + "eventemitter3": "5.0.1", + "idb-keyval": "6.2.1", + "ox": "0.6.9", + "preact": "10.24.2", + "viem": "^2.31.7", + "zustand": "5.0.3" } }, - "node_modules/@noble/ciphers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", - "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "node_modules/@base-org/account/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { - "node": "^14.21.3 || >=16" + "node": ">= 16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "node_modules/@base-org/account/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.3.2" + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "node_modules/@base-org/account/node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", "engines": { - "node": ">= 16" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "node_modules/@base-org/account/node_modules/abitype": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz", + "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, + "node_modules/@base-org/account/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=6" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, + "node_modules/@base-org/account/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@base-org/account/node_modules/ox/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", "engines": { - "node": ">= 8" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@paulmillr/qr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@paulmillr/qr/-/qr-0.2.1.tgz", - "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==", - "deprecated": "The package is now available as \"qr\": npm install qr", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true, + "node_modules/@base-org/account/node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": ">=12.20.0" }, - "funding": { - "url": "https://opencollective.com/unts" + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } } }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" + "node_modules/@bergos/jsonparse": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@bergos/jsonparse/-/jsonparse-1.4.2.tgz", + "integrity": "sha512-qUt0QNJjvg4s1zk+AuLM6s/zcsQ8MvGn7+1f0vPuxvpCYa08YtTryuDInngbEyW5fNGGYe2znKt61RMGd5HnXg==", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" } }, - "node_modules/@rainbow-me/rainbowkit": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rainbow-me/rainbowkit/-/rainbowkit-2.1.2.tgz", - "integrity": "sha512-nzhS4p7rtE9bAkOKSq+J761+gn6UseVxMdDpRBAr+0+ct/Hv1STErq9TT3GEXNrnAeSldtbxBVIkepa4uGykDA==", + "node_modules/@chainsafe/as-chacha20poly1305": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/as-chacha20poly1305/-/as-chacha20poly1305-0.1.0.tgz", + "integrity": "sha512-BpNcL8/lji/GM3+vZ/bgRWqJ1q5kwvTFmGPk7pxm/QQZDbaMI98waOHjEymTjq2JmdD/INdNBFOVSyJofXg7ew==", + "license": "Apache-2.0" + }, + "node_modules/@chainsafe/as-sha256": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@chainsafe/as-sha256/-/as-sha256-1.2.0.tgz", + "integrity": "sha512-H2BNHQ5C3RS+H0ZvOdovK6GjFAyq5T6LClad8ivwj9Oaiy28uvdsGVS7gNJKuZmg0FGHAI+n7F0Qju6U0QkKDA==", + "license": "Apache-2.0" + }, + "node_modules/@chainsafe/is-ip": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@chainsafe/is-ip/-/is-ip-2.1.0.tgz", + "integrity": "sha512-KIjt+6IfysQ4GCv66xihEitBjvhU/bixbbbFxdJ1sqCp4uJ0wuZiYBPhksZoy4lfaF0k9cwNzY5upEW/VWdw3w==", + "license": "MIT" + }, + "node_modules/@chainsafe/libp2p-noise": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-noise/-/libp2p-noise-17.0.0.tgz", + "integrity": "sha512-vwrmY2Y+L1xYhIDiEpl61KHxwrLCZoXzTpwhyk34u+3+6zCAZPL3GxH3i2cs+u5IYNoyLptORdH17RKFXy7upA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/as-chacha20poly1305": "^0.1.0", + "@chainsafe/as-sha256": "^1.2.0", + "@libp2p/crypto": "^5.1.9", + "@libp2p/interface": "^3.0.0", + "@libp2p/peer-id": "^6.0.0", + "@libp2p/utils": "^7.0.0", + "@noble/ciphers": "^2.0.1", + "@noble/curves": "^2.0.1", + "@noble/hashes": "^2.0.1", + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0", + "wherearewe": "^2.0.1" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@chainsafe/libp2p-noise/node_modules/@noble/curves": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.0.1.tgz", + "integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==", + "license": "MIT", "dependencies": { - "@vanilla-extract/css": "1.14.0", - "@vanilla-extract/dynamic": "2.1.0", - "@vanilla-extract/sprinkles": "1.6.1", - "clsx": "2.1.0", - "qrcode": "1.5.3", - "react-remove-scroll": "2.5.7", - "ua-parser-js": "^1.0.37" + "@noble/hashes": "2.0.1" }, "engines": { - "node": ">=12.4" + "node": ">= 20.19.0" }, - "peerDependencies": { - "@tanstack/react-query": ">=5.0.0", - "react": ">=18", - "react-dom": ">=18", - "viem": "2.x", - "wagmi": "^2.9.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@rainbow-me/rainbowkit/node_modules/clsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "node_modules/@chainsafe/libp2p-noise/node_modules/@noble/hashes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@react-leaflet/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", - "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", - "peerDependencies": { - "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" + "node_modules/@chainsafe/libp2p-noise/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" } }, - "node_modules/@reown/appkit": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.8.tgz", - "integrity": "sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA==", + "node_modules/@chainsafe/libp2p-yamux": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@chainsafe/libp2p-yamux/-/libp2p-yamux-8.0.1.tgz", + "integrity": "sha512-pJsqmUg1cZRJZn/luAtQaq0uLcVfExo51Rg7iRtAEceNYtsKUi/exfegnvTBzTnF1CGmTzVEV3MCLsRhqiNyoA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-pay": "1.7.8", - "@reown/appkit-polyfills": "1.7.8", - "@reown/appkit-scaffold-ui": "1.7.8", - "@reown/appkit-ui": "1.7.8", - "@reown/appkit-utils": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "@walletconnect/types": "2.21.0", - "@walletconnect/universal-provider": "2.21.0", - "bs58": "6.0.0", - "valtio": "1.13.2", - "viem": ">=2.29.0" + "@libp2p/interface": "^3.0.0", + "@libp2p/utils": "^7.0.0", + "race-signal": "^2.0.0", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@reown/appkit-common": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.8.tgz", - "integrity": "sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ==", + "node_modules/@chainsafe/libp2p-yamux/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "big.js": "6.2.2", - "dayjs": "1.11.13", - "viem": ">=2.29.0" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@reown/appkit-controllers": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.8.tgz", - "integrity": "sha512-IdXlJlivrlj6m63VsGLsjtPHHsTWvKGVzWIP1fXZHVqmK+rZCBDjCi9j267Rb9/nYRGHWBtlFQhO8dK35WfeDA==", + "node_modules/@chainsafe/libp2p-yamux/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "@walletconnect/universal-provider": "2.21.0", - "valtio": "1.13.2", - "viem": ">=2.29.0" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@chainsafe/libp2p-yamux/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "multiformats": "^13.0.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@chainsafe/netmask": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@chainsafe/netmask/-/netmask-2.0.0.tgz", + "integrity": "sha512-I3Z+6SWUoaljh3TBzCnCxjlUyN8tA+NAk5L6m9IxvCf1BENQTePzPMis97CoN/iMW1St3WN+AWCCRp+TTBRiDg==", + "license": "MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "node_modules/@coinbase/wallet-sdk": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.6.tgz", + "integrity": "sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA==", + "license": "Apache-2.0", "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" + "@noble/hashes": "1.4.0", + "clsx": "1.2.1", + "eventemitter3": "5.0.1", + "idb-keyval": "6.2.1", + "ox": "0.6.9", + "preact": "10.24.2", + "viem": "^2.27.2", + "zustand": "5.0.3" + } + }, + "node_modules/@coinbase/wallet-sdk/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "node_modules/@coinbase/wallet-sdk/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/core": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", - "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", - "dependencies": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" - }, + "node_modules/@coinbase/wallet-sdk/node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", "engines": { - "node": ">=18" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" + "node_modules/@coinbase/wallet-sdk/node_modules/abitype": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz", + "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" }, "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" }, "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { + "typescript": { + "optional": true + }, + "zod": { "optional": true } } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/sign-client": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", - "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", - "dependencies": { - "@walletconnect/core": "2.21.0", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "events": "3.3.0" + "node_modules/@coinbase/wallet-sdk/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/types": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", - "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", - "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" - } - }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/universal-provider": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", - "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", - "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.0", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "es-toolkit": "1.33.0", - "events": "3.3.0" - } - }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", - "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", - "dependencies": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" - } - }, - "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "node_modules/@coinbase/wallet-sdk/node_modules/ox": { + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", + "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/wevm" } ], + "license": "MIT", "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, "peerDependencies": { - "typescript": ">=5.0.4" + "typescript": ">=5.4.0" }, "peerDependenciesMeta": { "typescript": { @@ -2559,254 +2661,359 @@ } } }, - "node_modules/@reown/appkit-controllers/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "node_modules/@coinbase/wallet-sdk/node_modules/ox/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, "funding": { - "url": "https://github.com/sponsors/wevm" + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@coinbase/wallet-sdk/node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" }, "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { "optional": true }, - "zod": { + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { "optional": true } } }, - "node_modules/@reown/appkit-controllers/node_modules/isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@digitalbazaar/http-client": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-4.2.0.tgz", + "integrity": "sha512-OGju/GYp0V72qlZ/Pd4jGEwqBwT/Za/tw+Z3AC7lgMheGqsbhTZrtc5iLz9z59G/Q53QyE2fnjHV8N9wjBpiWA==", + "license": "BSD-3-Clause", + "dependencies": { + "ky": "^1.7.5", + "undici": "^6.21.2" + }, + "engines": { + "node": ">=18.0" + } + }, + "node_modules/@ecies/ciphers": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.5.tgz", + "integrity": "sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==", + "license": "MIT", + "engines": { + "bun": ">=1", + "deno": ">=2", + "node": ">=16" + }, "peerDependencies": { - "ws": "*" + "@noble/ciphers": "^1.0.0" } }, - "node_modules/@reown/appkit-controllers/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@emotion/babel-plugin": { + "version": "11.13.5", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", + "integrity": "sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==", + "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.3.3", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", + "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", + "license": "MIT" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.4.0.tgz", + "integrity": "sha512-QgD4fyscGcbbKwJmqNvUMSE02OsHUa+lAWKdEUIJKgqe5IwRSKd7+KhibEWdaKwgjLj0DRSHA9biAIqGBk05lw==", + "license": "MIT", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", + "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", + "license": "MIT" + }, + "node_modules/@emotion/react": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" }, "peerDependencies": { - "typescript": ">=5.4.0" + "react": ">=16.8.0" }, "peerDependenciesMeta": { - "typescript": { + "@types/react": { "optional": true } } }, - "node_modules/@reown/appkit-controllers/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "node_modules/@emotion/serialize": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.3.tgz", + "integrity": "sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==", + "license": "MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.10.0", + "@emotion/utils": "^1.4.2", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", + "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", + "license": "MIT" + }, + "node_modules/@emotion/styled": { + "version": "11.14.1", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.14.1.tgz", + "integrity": "sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.13.5", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", + "@emotion/utils": "^1.4.2" }, "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" }, "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/functions": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { + "@types/react": { "optional": true } } }, - "node_modules/@reown/appkit-controllers/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/@emotion/unitless": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", + "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", + "license": "MIT" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", + "license": "MIT", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.2.tgz", + "integrity": "sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==", + "license": "MIT" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", + "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", + "license": "MIT" + }, + "node_modules/@emurgo/cardano-serialization-lib-browser": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-13.2.1.tgz", + "integrity": "sha512-7RfX1gI16Vj2DgCp/ZoXqyLAakWo6+X95ku/rYGbVzuS/1etrlSiJmdbmdm+eYmszMlGQjrtOJQeVLXoj4L/Ag==", + "license": "MIT" + }, + "node_modules/@emurgo/cardano-serialization-lib-nodejs": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-13.2.0.tgz", + "integrity": "sha512-Bz1zLGEqBQ0BVkqt1OgMxdBOE3BdUWUd7Ly9Ecr/aUwkA8AV1w1XzBMe4xblmJHnB1XXNlPH4SraXCvO+q0Mig==", + "license": "MIT" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", + "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, "engines": { - "node": ">=10.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "funding": { + "url": "https://opencollective.com/eslint" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/@reown/appkit-pay": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-pay/-/appkit-pay-1.7.8.tgz", - "integrity": "sha512-OSGQ+QJkXx0FEEjlpQqIhT8zGJKOoHzVnyy/0QFrl3WrQTjCzg0L6+i91Ad5Iy1zb6V5JjqtfIFpRVRWN4M3pw==", - "dependencies": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-ui": "1.7.8", - "@reown/appkit-utils": "1.7.8", - "lit": "3.3.0", - "valtio": "1.13.2" + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@reown/appkit-polyfills": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.8.tgz", - "integrity": "sha512-W/kq786dcHHAuJ3IV2prRLEgD/2iOey4ueMHf1sIFjhhCGMynMkhsOhQMUH0tzodPqUgAC494z4bpIDYjwWXaA==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", "dependencies": { - "buffer": "6.0.3" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/@reown/appkit-scaffold-ui": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.8.tgz", - "integrity": "sha512-RCeHhAwOrIgcvHwYlNWMcIDibdI91waaoEYBGw71inE0kDB8uZbE7tE6DAXJmDkvl0qPh+DqlC4QbJLF1FVYdQ==", + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", "dependencies": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-ui": "1.7.8", - "@reown/appkit-utils": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "lit": "3.3.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@reown/appkit-ui": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.8.tgz", - "integrity": "sha512-1hjCKjf6FLMFzrulhl0Y9Vb9Fu4royE+SXCPSWh4VhZhWqlzUFc7kutnZKx8XZFVQH4pbBvY62SpRC93gqoHow==", + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", "dependencies": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "lit": "3.3.0", - "qrcode": "1.5.3" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/@reown/appkit-utils": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.8.tgz", - "integrity": "sha512-8X7UvmE8GiaoitCwNoB86pttHgQtzy4ryHZM9kQpvjQ0ULpiER44t1qpVLXNM4X35O0v18W0Dk60DnYRMH2WRw==", + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@ethereumjs/common": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-10.1.0.tgz", + "integrity": "sha512-zIHCy0i2LFmMDp+QkENyoPGxcoD3QzeNVhx6/vE4nJk4uWGNXzO8xJ2UC4gtGW4UJTAOXja8Z1yZMVeRc2/+Ew==", + "license": "MIT", "dependencies": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-polyfills": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/universal-provider": "2.21.0", - "valtio": "1.13.2", - "viem": ">=2.29.0" + "@ethereumjs/util": "^10.1.0", + "eventemitter3": "^5.0.1" + } + }, + "node_modules/@ethereumjs/common/node_modules/@ethereumjs/rlp": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-10.1.0.tgz", + "integrity": "sha512-r67BJbwilammAqYI4B5okA66cNdTlFzeWxPNJOolKV52ZS/flo0tUBf4x4gxWXBgh48OgsdFV1Qp5pRoSe8IhQ==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" }, - "peerDependencies": { - "valtio": "1.13.2" + "engines": { + "node": ">=18" } }, - "node_modules/@reown/appkit-utils/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@ethereumjs/common/node_modules/@ethereumjs/util": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-10.1.0.tgz", + "integrity": "sha512-GGTCkRu1kWXbz2JoUnIYtJBOoA9T5akzsYa91Bh+DZQ3Cj4qXj3hkNU0Rx6wZlbcmkmhQfrjZfVt52eJO/y2nA==", + "license": "MPL-2.0", "dependencies": { - "@noble/hashes": "1.7.1" + "@ethereumjs/rlp": "^10.1.0", + "ethereum-cryptography": "^3.2.0" }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ethereumjs/common/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { "node": "^14.21.3 || >=16" }, @@ -2814,10 +3021,14 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@ethereumjs/common/node_modules/@noble/curves": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", + "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, "engines": { "node": "^14.21.3 || >=16" }, @@ -2825,338 +3036,660 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", - "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" + "node_modules/@ethereumjs/common/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "node_modules/@ethereumjs/common/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", - "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", + "node_modules/@ethereumjs/common/node_modules/ethereum-cryptography": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.2.0.tgz", + "integrity": "sha512-Urr5YVsalH+Jo0sYkTkv1MyI9bLYZwW8BENZCeE1QYaTHETEYx0Nv/SVsWkSqpYrzweg6d8KMY1wTjH/1m/BIg==", + "license": "MIT", "dependencies": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" + "@noble/ciphers": "1.3.0", + "@noble/curves": "1.9.0", + "@noble/hashes": "1.8.0", + "@scure/bip32": "1.7.0", + "@scure/bip39": "1.6.0" + }, + "engines": { + "node": "^14.21.3 || >=16", + "npm": ">=9" + } + }, + "node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" }, "engines": { "node": ">=18" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/@ethereumjs/tx": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-10.1.0.tgz", + "integrity": "sha512-svG6pyzUZDpunafszf2BaolA6Izuvo8ZTIETIegpKxAXYudV1hmzPQDdSI+d8nHCFyQfEFbQ6tfUq95lNArmmg==", + "license": "MPL-2.0", "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" + "@ethereumjs/common": "^10.1.0", + "@ethereumjs/rlp": "^10.1.0", + "@ethereumjs/util": "^10.1.0", + "ethereum-cryptography": "^3.2.0" }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" + "engines": { + "node": ">=18" + } + }, + "node_modules/@ethereumjs/tx/node_modules/@ethereumjs/rlp": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-10.1.0.tgz", + "integrity": "sha512-r67BJbwilammAqYI4B5okA66cNdTlFzeWxPNJOolKV52ZS/flo0tUBf4x4gxWXBgh48OgsdFV1Qp5pRoSe8IhQ==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "engines": { + "node": ">=18" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/sign-client": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", - "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", + "node_modules/@ethereumjs/tx/node_modules/@ethereumjs/util": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-10.1.0.tgz", + "integrity": "sha512-GGTCkRu1kWXbz2JoUnIYtJBOoA9T5akzsYa91Bh+DZQ3Cj4qXj3hkNU0Rx6wZlbcmkmhQfrjZfVt52eJO/y2nA==", + "license": "MPL-2.0", "dependencies": { - "@walletconnect/core": "2.21.0", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "events": "3.3.0" + "@ethereumjs/rlp": "^10.1.0", + "ethereum-cryptography": "^3.2.0" + }, + "engines": { + "node": ">=18" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/types": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", - "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", + "node_modules/@ethereumjs/tx/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/tx/node_modules/@noble/curves": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", + "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", + "license": "MIT", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/universal-provider": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", - "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", + "node_modules/@ethereumjs/tx/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@ethereumjs/tx/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.0", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "es-toolkit": "1.33.0", - "events": "3.3.0" + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", - "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", + "node_modules/@ethereumjs/tx/node_modules/ethereum-cryptography": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.2.0.tgz", + "integrity": "sha512-Urr5YVsalH+Jo0sYkTkv1MyI9bLYZwW8BENZCeE1QYaTHETEYx0Nv/SVsWkSqpYrzweg6d8KMY1wTjH/1m/BIg==", + "license": "MIT", "dependencies": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" + "@noble/ciphers": "1.3.0", + "@noble/curves": "1.9.0", + "@noble/hashes": "1.8.0", + "@scure/bip32": "1.7.0", + "@scure/bip39": "1.6.0" + }, + "engines": { + "node": "^14.21.3 || >=16", + "npm": ">=9" } }, - "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "node_modules/@ethereumjs/util": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", + "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^5.0.2", + "ethereum-cryptography": "^2.2.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", + "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/wevm" + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", + "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/networks": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/web": "^5.8.0" } }, - "node_modules/@reown/appkit-utils/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true + "node_modules/@ethersproject/abstract-signer": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", + "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "zod": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0" } }, - "node_modules/@reown/appkit-utils/node_modules/isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "node_modules/@ethersproject/address": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", + "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/wevm" + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], - "peerDependencies": { - "ws": "*" + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/rlp": "^5.8.0" } }, - "node_modules/@reown/appkit-utils/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "node_modules/@ethersproject/base64": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", + "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/wevm" + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", + "optional": true, "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@ethersproject/bytes": "^5.8.0" } }, - "node_modules/@reown/appkit-utils/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - }, - "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" - }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true + "node_modules/@ethersproject/basex": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz", + "integrity": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@azure/storage-blob": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/properties": "^5.8.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", + "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@capacitor/preferences": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", + "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@deno/kv": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", + "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@netlify/blobs": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bignumber": "^5.8.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz", + "integrity": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@planetscale/database": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abi": "^5.8.0", + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/transactions": "^5.8.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", + "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@upstash/redis": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz", + "integrity": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@vercel/blob": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/basex": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/pbkdf2": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/wordlists": "^5.8.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz", + "integrity": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@vercel/functions": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hdnode": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/pbkdf2": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", + "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "@vercel/kv": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", + "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "aws4fetch": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/@ethersproject/networks": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", + "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "db0": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz", + "integrity": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "idb-keyval": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/sha2": "^5.8.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", + "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "ioredis": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/logger": "^5.8.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz", + "integrity": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" }, - "uploadthing": { - "optional": true + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/base64": "^5.8.0", + "@ethersproject/basex": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/networks": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@ethersproject/sha2": "^5.8.0", + "@ethersproject/strings": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/web": "^5.8.0", + "bech32": "1.1.4", + "ws": "8.18.0" } }, - "node_modules/@reown/appkit-utils/node_modules/ws": { + "node_modules/@ethersproject/providers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", + "license": "MIT", + "optional": true + }, + "node_modules/@ethersproject/providers/node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "optional": true, "engines": { "node": ">=10.0.0" }, @@ -3173,5214 +3706,13071 @@ } } }, - "node_modules/@reown/appkit-wallet": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.8.tgz", - "integrity": "sha512-kspz32EwHIOT/eg/ZQbFPxgXq0B/olDOj3YMu7gvLEFz4xyOFd/wgzxxAXkp5LbG4Cp++s/elh79rVNmVFdB9A==", - "dependencies": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-polyfills": "1.7.8", - "@walletconnect/logger": "2.1.2", - "zod": "3.22.4" + "node_modules/@ethersproject/random": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz", + "integrity": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, - "node_modules/@reown/appkit/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@ethersproject/rlp": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", + "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, "dependencies": { - "@noble/hashes": "1.7.1" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, - "node_modules/@reown/appkit/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@ethersproject/sha2": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz", + "integrity": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "hash.js": "1.1.7" } }, - "node_modules/@reown/appkit/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "node_modules/@ethersproject/signing-key": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", + "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "bn.js": "^5.2.1", + "elliptic": "6.6.1", + "hash.js": "1.1.7" } }, - "node_modules/@reown/appkit/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "node_modules/@ethersproject/strings": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", + "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/core": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", - "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", + "node_modules/@ethersproject/transactions": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", + "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, "dependencies": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" - }, - "engines": { - "node": ">=18" + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/rlp": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz", + "integrity": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/constants": "^5.8.0", + "@ethersproject/logger": "^5.8.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/@ethersproject/wallet": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz", + "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true + "@ethersproject/abstract-provider": "^5.8.0", + "@ethersproject/abstract-signer": "^5.8.0", + "@ethersproject/address": "^5.8.0", + "@ethersproject/bignumber": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/hdnode": "^5.8.0", + "@ethersproject/json-wallets": "^5.8.0", + "@ethersproject/keccak256": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/random": "^5.8.0", + "@ethersproject/signing-key": "^5.8.0", + "@ethersproject/transactions": "^5.8.0", + "@ethersproject/wordlists": "^5.8.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", + "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/base64": "^5.8.0", + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/sign-client": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", - "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", + "node_modules/@ethersproject/wordlists": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz", + "integrity": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "optional": true, "dependencies": { - "@walletconnect/core": "2.21.0", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "events": "3.3.0" + "@ethersproject/bytes": "^5.8.0", + "@ethersproject/hash": "^5.8.0", + "@ethersproject/logger": "^5.8.0", + "@ethersproject/properties": "^5.8.0", + "@ethersproject/strings": "^5.8.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/types": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", - "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", + "node_modules/@fivebinaries/coin-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@fivebinaries/coin-selection/-/coin-selection-3.0.0.tgz", + "integrity": "sha512-h25Pn1ZA7oqQBQDodGAgIsQt66T2wDge9onBKNqE66WNWL0KJiKJbpij8YOLo5AAlEIg5IS7EB1QjBgDOIg6DQ==", + "license": "Apache-2.0", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" + "@emurgo/cardano-serialization-lib-browser": "^13.2.0", + "@emurgo/cardano-serialization-lib-nodejs": "13.2.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", - "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", + "node_modules/@fractalwagmi/popup-connection": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@fractalwagmi/popup-connection/-/popup-connection-1.1.1.tgz", + "integrity": "sha512-hYL+45iYwNbwjvP2DxP3YzVsrAGtj/RV9LOgMpJyCxsfNoyyOoi2+YrnywKkiANingiG2kJ1nKsizbu1Bd4zZw==", + "license": "ISC", + "peerDependencies": { + "react": "^17.0.2 || ^18", + "react-dom": "^17.0.2 || ^18" + } + }, + "node_modules/@fractalwagmi/solana-wallet-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@fractalwagmi/solana-wallet-adapter/-/solana-wallet-adapter-0.1.1.tgz", + "integrity": "sha512-oTZLEuD+zLKXyhZC5tDRMPKPj8iaxKLxXiCjqRfOo4xmSbS2izGRWLJbKMYYsJysn/OI3UJ3P6CWP8WUWi0dZg==", + "license": "ISC", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.0", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "es-toolkit": "1.33.0", - "events": "3.3.0" + "@fractalwagmi/popup-connection": "^1.0.18", + "@solana/wallet-adapter-base": "^0.9.17", + "bs58": "^5.0.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", - "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", + "node_modules/@fractalwagmi/solana-wallet-adapter/node_modules/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT" + }, + "node_modules/@fractalwagmi/solana-wallet-adapter/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", "dependencies": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" + "base-x": "^4.0.0" } }, - "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@gemini-wallet/core": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@gemini-wallet/core/-/core-0.2.0.tgz", + "integrity": "sha512-vv9aozWnKrrPWQ3vIFcWk7yta4hQW1Ie0fsNNPeXnjAxkbXr2hqMagEptLuMxpEP2W3mnRu05VDNKzcvAuuZDw==", + "license": "MIT", "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "@metamask/rpc-errors": "7.0.2", + "eventemitter3": "5.0.1" }, "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "viem": ">=2.0.0" } }, - "node_modules/@reown/appkit/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" + "node_modules/@hpke/chacha20poly1305": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@hpke/chacha20poly1305/-/chacha20poly1305-1.7.1.tgz", + "integrity": "sha512-Zp8IwRIkdCucu877wCNqDp3B8yOhAnAah/YDDkO94pPr/KKV7IGnBbpwIjDB3BsAySWBMrhhdE0JKYw3N4FCag==", + "license": "MIT", + "dependencies": { + "@hpke/common": "^1.8.1" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@reown/appkit/node_modules/isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "peerDependencies": { - "ws": "*" + "node_modules/@hpke/common": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@hpke/common/-/common-1.8.1.tgz", + "integrity": "sha512-PSI4QSxH8XDli0TqAsWycVfrLLCM/bBe+hVlJwtuJJiKIvCaFS3CXX/WtRfJceLJye9NHc2J7GvHVCY9B1BEbA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@reown/appkit/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@hpke/core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@hpke/core/-/core-1.7.5.tgz", + "integrity": "sha512-4xfckZuPaIodeu0HpuTRIdtmajhRHXM/6rjS2N62Ns9aOCkGbbeYRwktqR3bUScuhCwyEBsEQqtIh9f0iLP3WQ==", + "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" + "@hpke/common": "^1.8.1" }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@reown/appkit/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "node_modules/@hpke/dhkem-x25519": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@hpke/dhkem-x25519/-/dhkem-x25519-1.6.4.tgz", + "integrity": "sha512-TTkZ3hjMDO6TweSTSAN/qL30WubOXJXTe/1eNL4cprlGokcjJq3SldcePI2BbC1eOYq903N1X6zwDjVG5OelfA==", + "license": "MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - }, - "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" + "@hpke/common": "^1.8.1" }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/functions": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { - "optional": true - } + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@reown/appkit/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "node_modules/@hpke/dhkem-x448": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@hpke/dhkem-x448/-/dhkem-x448-1.6.4.tgz", + "integrity": "sha512-xyR4SqS4MjDmQIrIQmqPWLNgwM6Ul6G8UWQsFKZw6PLv8pxVk1nYj2WJrdZ+Ecs9+qY/NYQItv8KVMXge3gFKQ==", + "license": "MIT", + "dependencies": { + "@hpke/common": "^1.8.1" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@rushstack/eslint-patch": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", - "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", - "dev": true - }, - "node_modules/@safe-global/safe-apps-provider": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.6.tgz", - "integrity": "sha512-4LhMmjPWlIO8TTDC2AwLk44XKXaK6hfBTWyljDm0HQ6TWlOEijVWNrt2s3OCVMSxlXAcEzYfqyu1daHZooTC2Q==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "@safe-global/safe-apps-sdk": "^9.1.0", - "events": "^3.3.0" + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "node_modules/@safe-global/safe-apps-sdk": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", - "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", "dependencies": { - "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", - "viem": "^2.1.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/@safe-global/safe-gateway-typescript-sdk": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.23.1.tgz", - "integrity": "sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw==", + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=16" + "node": "*" } }, - "node_modules/@scure/base": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", - "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", - "dependencies": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" }, "funding": { - "url": "https://paulmillr.com/funding/" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@scure/bip32/node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", - "dependencies": { - "@noble/hashes": "1.4.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" } }, - "node_modules/@scure/bip32/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 16" + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" } }, - "node_modules/@scure/bip32/node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], "funding": { - "url": "https://paulmillr.com/funding/" + "url": "https://opencollective.com/libvips" } }, - "node_modules/@scure/bip39": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", - "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@scure/bip39/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=6.0.0" } }, - "node_modules/@scure/bip39/node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + "node_modules/@keystonehq/alias-sampling": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@keystonehq/alias-sampling/-/alias-sampling-0.1.2.tgz", + "integrity": "sha512-5ukLB3bcgltgaFfQfYKYwHDUbwHicekYo53fSEa7xhVkAEqsA74kxdIwoBIURmGUtXe3EVIRm4SYlgcrt2Ri0w==", + "license": "MIT" }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "node_modules/@keystonehq/bc-ur-registry": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/@keystonehq/bc-ur-registry/-/bc-ur-registry-0.5.4.tgz", + "integrity": "sha512-z7bZe10I5k0zz9znmDTXh+o3Rzb5XsRVpwAzexubOaLxVdZ0F7aMbe2LoEsw766Hpox/7zARi7UGmLz5C8BAzA==", "license": "Apache-2.0", "dependencies": { - "tslib": "^2.8.0" + "@ngraveio/bc-ur": "^1.1.5", + "bs58check": "^2.1.2", + "tslib": "^2.3.0" } }, - "node_modules/@tanstack/query-core": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.45.0.tgz", - "integrity": "sha512-RVfIZQmFUTdjhSAAblvueimfngYyfN6HlwaJUPK71PKd7yi43Vs1S/rdimmZedPWX/WGppcq/U1HOj7O7FwYxw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" + "node_modules/@keystonehq/bc-ur-registry-sol": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@keystonehq/bc-ur-registry-sol/-/bc-ur-registry-sol-0.9.5.tgz", + "integrity": "sha512-HZeeph9297ZHjAziE9wL/u2W1dmV0p1H9Bu9g1bLJazP4F6W2fjCK9BAoCiKEsMBqadk6KI6r6VD67fmDzWyug==", + "license": "ISC", + "dependencies": { + "@keystonehq/bc-ur-registry": "^0.7.0", + "bs58check": "^2.1.2", + "uuid": "^8.3.2" } }, - "node_modules/@tanstack/react-query": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.45.0.tgz", - "integrity": "sha512-y272cKRJp1BvehrWG4ashOBuqBj1Qm2O6fgYJ9LYSHrLdsCXl74GbSVjUQTReUdHuRIl9cEOoyPa6HYag400lw==", + "node_modules/@keystonehq/bc-ur-registry-sol/node_modules/@keystonehq/bc-ur-registry": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@keystonehq/bc-ur-registry/-/bc-ur-registry-0.7.1.tgz", + "integrity": "sha512-6eVIjNt/P+BmuwcYccbPYVS85473SFNplkqWF/Vb3ePCzLX00tn0WZBO1FGpS4X4nfXtceTfvUeNvQKoTGtXrw==", + "license": "Apache-2.0", "dependencies": { - "@tanstack/query-core": "5.45.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^18.0.0" + "@ngraveio/bc-ur": "^1.1.5", + "bs58check": "^2.1.2", + "tslib": "^2.3.0" } }, - "node_modules/@tweenjs/tween.js": { - "version": "23.1.3", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", - "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - "dev": true + "node_modules/@keystonehq/bc-ur-registry-sol/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "node_modules/@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" + "node_modules/@keystonehq/sdk": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@keystonehq/sdk/-/sdk-0.19.2.tgz", + "integrity": "sha512-ilA7xAhPKvpHWlxjzv3hjMehD6IKYda4C1TeG2/DhFgX9VSffzv77Eebf8kVwzPLdYV4LjX1KQ2ZDFoN1MsSFQ==", + "license": "ISC", + "dependencies": { + "@ngraveio/bc-ur": "^1.0.0", + "qrcode.react": "^1.0.1", + "react-modal": "^3.12.1", + "react-qr-reader": "^2.2.1", + "rxjs": "^6.6.3" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" + "node_modules/@keystonehq/sol-keyring": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@keystonehq/sol-keyring/-/sol-keyring-0.20.0.tgz", + "integrity": "sha512-UBeMlecybTDQaFMI951LBEVRyZarqKHOcwWqqvphV+x7WquYz0SZ/wf/PhizV0MWoGTQwt2m5aqROzksi6svqw==", + "license": "ISC", + "dependencies": { + "@keystonehq/bc-ur-registry": "0.5.4", + "@keystonehq/bc-ur-registry-sol": "^0.9.2", + "@keystonehq/sdk": "^0.19.2", + "@solana/web3.js": "^1.36.0", + "bs58": "^5.0.0", + "uuid": "^8.3.2" + } }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" + "node_modules/@keystonehq/sol-keyring/node_modules/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT" }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "node_modules/@keystonehq/sol-keyring/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", "dependencies": { - "@types/d3-color": "*" + "base-x": "^4.0.0" } }, - "node_modules/@types/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==" + "node_modules/@keystonehq/sol-keyring/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "node_modules/@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", + "node_modules/@ledgerhq/devices": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-8.8.0.tgz", + "integrity": "sha512-ZFRAQQaESxIK/8SYrrHyqb7pQjLPO8f62PI6H16SP0/uC9fdZKR8NqOGMvIf7I6K442SkiQATnC/kxUeUTfuHA==", + "license": "Apache-2.0", "dependencies": { - "@types/d3-time": "*" + "@ledgerhq/errors": "^6.28.0", + "@ledgerhq/logs": "^6.13.0", + "rxjs": "7.8.2", + "semver": "^7.3.5" } }, - "node_modules/@types/d3-shape": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", - "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", + "node_modules/@ledgerhq/devices/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", "dependencies": { - "@types/d3-path": "*" + "tslib": "^2.1.0" } }, - "node_modules/@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" + "node_modules/@ledgerhq/errors": { + "version": "6.28.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.28.0.tgz", + "integrity": "sha512-Rx6GN801GP/3gCfVmmiXFVZWmiaEGMuXVwjM6WOCX0dzw4v7KcB1nj4vrNC1plDI/xkPt/clYJPG7LgSt0mxlw==", + "license": "Apache-2.0" }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" + "node_modules/@ledgerhq/hw-transport": { + "version": "6.31.15", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.31.15.tgz", + "integrity": "sha512-I+hzH9XGFPaYq9K+iw+qWJUyVdhN9fdO00Df9zAkOCzju1W5Gc+cDJxbYnZApmY8oMd8mNoXTstEW3Ih5ikaVg==", + "license": "Apache-2.0", + "dependencies": { + "@ledgerhq/devices": "8.8.0", + "@ledgerhq/errors": "^6.28.0", + "@ledgerhq/logs": "^6.13.0", + "events": "^3.3.0" + } }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "node_modules/@ledgerhq/hw-transport-webhid": { + "version": "6.30.11", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.30.11.tgz", + "integrity": "sha512-VIzJsTWsZFmizSMuRjb60qbrm7ETymBQafID93rTFL+TDabrS7WsVzxuOa69LR47CXjf7GpKpDyhzAZQoCbmwA==", + "license": "Apache-2.0", "dependencies": { - "@types/ms": "*" + "@ledgerhq/devices": "8.8.0", + "@ledgerhq/errors": "^6.28.0", + "@ledgerhq/hw-transport": "6.31.15", + "@ledgerhq/logs": "^6.13.0" } }, - "node_modules/@types/geojson": { - "version": "7946.0.14", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", - "dev": true + "node_modules/@ledgerhq/logs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.13.0.tgz", + "integrity": "sha512-4+qRW2Pc8V+btL0QEmdB2X+uyx0kOWMWE1/LWsq5sZy3Q5tpi4eItJS6mB0XL3wGW59RQ+8bchNQQ1OW/va8Og==", + "license": "Apache-2.0" }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "license": "MIT" }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "node_modules/@libp2p/autonat": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/autonat/-/autonat-3.0.10.tgz", + "integrity": "sha512-JGU2+sKU/6J4lxjNePjfcpus7fw1zf9STFr1MFHp0K8suyb3y3wvMPULNOPEVL4HlQqTkEH7J0PD3LWRnedtOQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/peer-collections": "^7.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "any-signal": "^4.1.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/autonat/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } }, - "node_modules/@types/leaflet": { - "version": "1.9.12", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.12.tgz", - "integrity": "sha512-BK7XS+NyRI291HIo0HCfE18Lp8oA30H1gpi1tf0mF3TgiCEzanQjOqNZ4x126SXzzi2oNSZhZ5axJp1k0iM6jg==", - "dev": true, + "node_modules/@libp2p/autonat/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@types/geojson": "*" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@types/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==" + "node_modules/@libp2p/autonat/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } }, - "node_modules/@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" + "node_modules/@libp2p/bootstrap": { + "version": "12.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-12.0.11.tgz", + "integrity": "sha512-ZIG8QKS+4w7ugK7a1ftdopjIA+NvOPKUq7JY1OsRxaiLdCdxgghPTiNIbinYsVv5iHULBnFZe4o5l+5L7+Hssw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/peer-id": "^6.0.4", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "main-event": "^1.0.1" + } }, - "node_modules/@types/node": { - "version": "20.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", - "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", - "dev": true, + "node_modules/@libp2p/bootstrap/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "undici-types": "~5.26.4" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + "node_modules/@libp2p/bootstrap/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } }, - "node_modules/@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "node_modules/@types/react": { - "version": "18.3.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", - "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "node_modules/@libp2p/bootstrap/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "multiformats": "^13.0.0" } }, - "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, + "node_modules/@libp2p/circuit-relay-v2": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@libp2p/circuit-relay-v2/-/circuit-relay-v2-4.1.3.tgz", + "integrity": "sha512-XDgzXu/zMjwHyRSh8xiWlsQk3vGDVSdlukFxb0Eg1VXB2c0ytWgIF5JoynyrNpwXa6Pe0SgGEcUMt9wMaF6/HQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/peer-collections": "^7.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/peer-record": "^9.0.5", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "any-signal": "^4.1.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "nanoid": "^5.1.5", + "progress-events": "^1.0.1", + "protons-runtime": "^5.6.0", + "retimeable-signal": "^1.0.1", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/circuit-relay-v2/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@types/react": "*" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@types/react-leaflet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/react-leaflet/-/react-leaflet-3.0.0.tgz", - "integrity": "sha512-p8R9mVKbCDDqOdW+M6GyJJuFn6q+IgDFYavFiOIvaWHuOe5kIHZEtCy1pfM43JIA6JiB3D/aDoby7C51eO+XSg==", - "deprecated": "This is a stub types definition. react-leaflet provides its own type definitions, so you do not need this installed.", - "dev": true, + "node_modules/@libp2p/circuit-relay-v2/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "react-leaflet": "*" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@types/react-transition-group": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", - "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", - "peerDependencies": { - "@types/react": "*" + "node_modules/@libp2p/circuit-relay-v2/node_modules/nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" } }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, - "node_modules/@types/stats.js": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", - "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", - "dev": true - }, - "node_modules/@types/stylis": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", - "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==" + "node_modules/@libp2p/circuit-relay-v2/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } }, - "node_modules/@types/three": { - "version": "0.169.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.169.0.tgz", - "integrity": "sha512-oan7qCgJBt03wIaK+4xPWclYRPG9wzcg7Z2f5T8xYTNEF95kh0t0lklxLLYBDo7gQiGLYzE6iF4ta7nXF2bcsw==", - "dev": true, + "node_modules/@libp2p/crypto": { + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.13.tgz", + "integrity": "sha512-8NN9cQP3jDn+p9+QE9ByiEoZ2lemDFf/unTgiKmS3JF93ph240EUVdbCyyEgOMfykzb0okTM4gzvwfx9osJebQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@tweenjs/tween.js": "~23.1.3", - "@types/stats.js": "*", - "@types/webxr": "*", - "@webgpu/types": "*", - "fflate": "~0.8.2", - "meshoptimizer": "~0.18.1" + "@libp2p/interface": "^3.1.0", + "@noble/curves": "^2.0.1", + "@noble/hashes": "^2.0.1", + "multiformats": "^13.4.0", + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" } }, - "node_modules/@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + "node_modules/@libp2p/crypto/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } }, - "node_modules/@types/webxr": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.20.tgz", - "integrity": "sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==", - "dev": true + "node_modules/@libp2p/crypto/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", - "dev": true, + "node_modules/@libp2p/crypto/node_modules/@noble/curves": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.0.1.tgz", + "integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==", + "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "@noble/hashes": "2.0.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 20.19.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" - }, + "node_modules/@libp2p/crypto/node_modules/@noble/hashes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": ">= 20.19.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, + "node_modules/@libp2p/crypto/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "multiformats": "^13.0.0" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", - "dev": true, + "node_modules/@libp2p/dcutr": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/dcutr/-/dcutr-3.0.10.tgz", + "integrity": "sha512-rMBstMznxLgIGNvHFlEHo9Lvx0/+wD2RXB+H7VU58ov1CRQNwlSix38BaQ6PI94LOmVzDPHKl8x3mG6YKp5GEw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "delay": "^7.0.0", + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node_modules/@libp2p/dcutr/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, + "node_modules/@libp2p/dcutr/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, + "node_modules/@libp2p/dcutr/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/identify": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-4.0.10.tgz", + "integrity": "sha512-DROyV+bZIlz9czCCHJdeVtm1+hEOKUigJHyTzzA/cuwwyvtm8Dco8F+VRYcrwpafuVtjv7yN7CskN4oIys56jw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/peer-record": "^9.0.5", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "it-drain": "^3.0.10", + "it-parallel": "^3.0.13", + "main-event": "^1.0.1", + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/identify/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "balanced-match": "^1.0.0" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, + "node_modules/@libp2p/identify/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, + "node_modules/@libp2p/identify/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "multiformats": "^13.0.0" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, + "node_modules/@libp2p/interface": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-1.7.0.tgz", + "integrity": "sha512-/zFyaIaIGW0aihhsH7/93vQdpWInUzFocxF11RO/029Y6h0SVjs24HHbils+DqaFDTqN+L7oNlBx2rM2MnmTjA==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@multiformats/multiaddr": "^12.2.3", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.1", + "multiformats": "^13.1.0", + "progress-events": "^1.0.0", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vanilla-extract/css": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.14.0.tgz", - "integrity": "sha512-rYfm7JciWZ8PFzBM/HDiE2GLnKI3xJ6/vdmVJ5BSgcCZ5CxRlM9Cjqclni9lGzF3eMOijnUhCd/KV8TOzyzbMA==", - "dependencies": { - "@emotion/hash": "^0.9.0", - "@vanilla-extract/private": "^1.0.3", - "chalk": "^4.1.1", - "css-what": "^6.1.0", - "cssesc": "^3.0.0", - "csstype": "^3.0.7", - "deep-object-diff": "^1.1.9", - "deepmerge": "^4.2.2", - "media-query-parser": "^2.0.2", - "modern-ahocorasick": "^1.0.0", - "outdent": "^0.8.0" + "node_modules/@libp2p/interface-internal": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-3.0.10.tgz", + "integrity": "sha512-Gd/eQAoAlXqeCRJ6wOwcnTQ/SDe95bQow8osY8zq0nbfFBu26aChQHjAd+CjcCADJRh+Sd+7+dYG7BrhpxGt1A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^3.1.0", + "@libp2p/peer-collections": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "progress-events": "^1.0.1" } }, - "node_modules/@vanilla-extract/dynamic": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.0.tgz", - "integrity": "sha512-8zl0IgBYRtgD1h+56Zu13wHTiMTJSVEa4F7RWX9vTB/5Xe2KtjoiqApy/szHPVFA56c+ex6A4GpCQjT1bKXbYw==", + "node_modules/@libp2p/interface-internal/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@vanilla-extract/private": "^1.0.3" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@vanilla-extract/private": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz", - "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==" + "node_modules/@libp2p/interface-internal/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } }, - "node_modules/@vanilla-extract/sprinkles": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vanilla-extract/sprinkles/-/sprinkles-1.6.1.tgz", - "integrity": "sha512-N/RGKwGAAidBupZ436RpuweRQHEFGU+mvAqBo8PRMAjJEmHoPDttV8RObaMLrJHWLqvX+XUMinHUnD0hFRQISw==", - "peerDependencies": { - "@vanilla-extract/css": "^1.0.0" + "node_modules/@libp2p/interface-internal/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/kad-dht": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-16.1.3.tgz", + "integrity": "sha512-yM9UumHkN8Dd+nFUllOio3/0uuzzpPgc/+PouDAABWs2ut36VfizhWVWAiqlLpzkpCquIzPUd0doRu0GKztdXA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/peer-collections": "^7.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/ping": "^3.0.10", + "@libp2p/record": "^4.0.9", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "any-signal": "^4.1.1", + "interface-datastore": "^9.0.1", + "it-all": "^3.0.9", + "it-drain": "^3.0.10", + "it-length": "^3.0.9", + "it-map": "^3.1.4", + "it-merge": "^3.0.12", + "it-parallel": "^3.0.13", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.3", + "it-take": "^3.0.9", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "p-defer": "^4.0.1", + "p-event": "^7.0.0", + "progress-events": "^1.0.1", + "protons-runtime": "^5.6.0", + "race-signal": "^2.0.0", + "uint8-varint": "^2.0.4", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/kad-dht/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@wagmi/connectors": { - "version": "5.9.9", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.9.9.tgz", - "integrity": "sha512-6+eqU7P2OtxU2PkIw6kHojfYYUJykYG2K5rSkzVh29RDCAjhJqGEZW5f1b8kV5rUBORip1NpST8QTBNi96JHGQ==", + "node_modules/@libp2p/kad-dht/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@base-org/account": "1.1.1", - "@coinbase/wallet-sdk": "4.3.6", - "@gemini-wallet/core": "0.2.0", - "@metamask/sdk": "0.32.0", - "@safe-global/safe-apps-provider": "0.18.6", - "@safe-global/safe-apps-sdk": "9.1.0", - "@walletconnect/ethereum-provider": "2.21.1", - "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3" - }, - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "@wagmi/core": "2.20.3", - "typescript": ">=5.0.4", - "viem": "2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@wagmi/core": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.20.3.tgz", - "integrity": "sha512-gsbuHnWxf0AYZISvR8LvF/vUCIq6/ZwT5f5/FKd6wLA7Wq05NihCvmQpIgrcVbpSJPL67wb6S8fXm3eJGJA1vQ==", + "node_modules/@libp2p/kad-dht/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "eventemitter3": "5.0.1", - "mipd": "0.0.7", - "zustand": "5.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "@tanstack/query-core": ">=5.0.0", - "typescript": ">=5.0.4", - "viem": "2.x" - }, - "peerDependenciesMeta": { - "@tanstack/query-core": { - "optional": true - }, - "typescript": { - "optional": true - } + "multiformats": "^13.0.0" } }, - "node_modules/@wagmi/core/node_modules/zustand": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz", - "integrity": "sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==", + "node_modules/@libp2p/keychain": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-6.0.10.tgz", + "integrity": "sha512-f80yJSzKb3Vh8KtdNCxiPUu8qjyT6b+nQlS+jSmSDnMGXI8z49wdtfKuigQsKft64qt2mKMNq/9OBWyhUMYPFQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@noble/hashes": "^2.0.1", + "asn1js": "^3.0.6", + "interface-datastore": "^9.0.1", + "multiformats": "^13.4.0", + "sanitize-filename": "^1.6.3", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/keychain/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/keychain/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/keychain/node_modules/@noble/hashes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "license": "MIT", "engines": { - "node": ">=12.20.0" + "node": ">= 20.19.0" }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/@walletconnect/core": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.1.tgz", - "integrity": "sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ==", + "node_modules/@libp2p/keychain/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.1", - "@walletconnect/utils": "2.21.1", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" - }, - "engines": { - "node": ">=18" + "multiformats": "^13.0.0" } }, - "node_modules/@walletconnect/core/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/@libp2p/logger": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-6.2.2.tgz", + "integrity": "sha512-XtanXDT+TuMuZoCK760HGV1AmJsZbwAw5AiRUxWDbsZPwAroYq64nb41AHRu9Gyc0TK9YD+p72+5+FIxbw0hzw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "@libp2p/interface": "^3.1.0", + "@multiformats/multiaddr": "^13.0.1", + "interface-datastore": "^9.0.1", + "multiformats": "^13.4.0", + "weald": "^1.1.0" } }, - "node_modules/@walletconnect/core/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "node_modules/@libp2p/logger/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - }, - "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" - }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/functions": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { - "optional": true - } + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@walletconnect/environment": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", - "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==", + "node_modules/@libp2p/logger/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "tslib": "1.14.1" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@walletconnect/environment/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@libp2p/logger/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } }, - "node_modules/@walletconnect/ethereum-provider": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.21.1.tgz", - "integrity": "sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==", + "node_modules/@libp2p/mdns": { + "version": "12.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-12.0.11.tgz", + "integrity": "sha512-OB6am5A21Yc5c7KBZONQhTao4BHRDc3MurZ1qHzqU4FQidi719cNRw4ac6TVk4dcdtOYx+1ef8pvvLX+57hXAQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@reown/appkit": "1.7.8", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/sign-client": "2.21.1", - "@walletconnect/types": "2.21.1", - "@walletconnect/universal-provider": "2.21.1", - "@walletconnect/utils": "2.21.1", - "events": "3.3.0" + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@types/multicast-dns": "^7.2.4", + "dns-packet": "^5.6.1", + "main-event": "^1.0.1", + "multicast-dns": "^7.2.5" } }, - "node_modules/@walletconnect/ethereum-provider/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/@libp2p/mdns/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@walletconnect/ethereum-provider/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "node_modules/@libp2p/mdns/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - }, - "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" - }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/functions": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { - "optional": true - } + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@walletconnect/events": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz", - "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==", + "node_modules/@libp2p/mdns/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "keyvaluestorage-interface": "^1.0.0", - "tslib": "1.14.1" + "multiformats": "^13.0.0" } }, - "node_modules/@walletconnect/events/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@libp2p/multistream-select": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-7.0.10.tgz", + "integrity": "sha512-6RAFctqWzwQ/qPaN3CxoueSs1b7pBVMZ+0n6G0kcsqVBj0wc4eB+dcJyUNrTV1NGgMCAl6tVAGztZaE8XZc9lw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^3.1.0", + "@libp2p/utils": "^7.0.10", + "it-length-prefixed": "^10.0.1", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } }, - "node_modules/@walletconnect/heartbeat": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", - "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", + "node_modules/@libp2p/multistream-select/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "events": "^3.3.0" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@walletconnect/jsonrpc-http-connection": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz", - "integrity": "sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==", + "node_modules/@libp2p/multistream-select/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.1", - "cross-fetch": "^3.1.4", - "events": "^3.3.0" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@walletconnect/jsonrpc-http-connection/node_modules/cross-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "node_modules/@libp2p/multistream-select/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "node-fetch": "^2.7.0" + "multiformats": "^13.0.0" } }, - "node_modules/@walletconnect/jsonrpc-provider": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", - "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", + "node_modules/@libp2p/peer-collections": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-7.0.10.tgz", + "integrity": "sha512-OvlSY5N3J6q8U+EbTrQGbW8zdyOa3y7nz9Y3IbuE55tIiMd7pwm1U3Lknfb6IPkOWkHNfQDfCGGfGVQcMRodvQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.8", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0" + "@libp2p/interface": "^3.1.0", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/utils": "^7.0.10", + "multiformats": "^13.4.0" } }, - "node_modules/@walletconnect/jsonrpc-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", - "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", + "node_modules/@libp2p/peer-collections/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "events": "^3.3.0", - "keyvaluestorage-interface": "^1.0.0" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@walletconnect/jsonrpc-utils": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", - "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", + "node_modules/@libp2p/peer-collections/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/environment": "^1.0.1", - "@walletconnect/jsonrpc-types": "^1.0.3", - "tslib": "1.14.1" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@libp2p/peer-collections/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } }, - "node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", - "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", + "node_modules/@libp2p/peer-id": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-6.0.4.tgz", + "integrity": "sha512-Z3xK0lwwKn4bPg3ozEpPr1HxsRi2CxZdghOL+MXoFah/8uhJJHxHFA8A/jxtKn4BB8xkk6F8R5vKNIS05yaCYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0", - "ws": "^7.5.1" + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "multiformats": "^13.4.0", + "uint8arrays": "^5.1.0" } }, - "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node_modules/@libp2p/peer-id-factory": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id-factory/-/peer-id-factory-4.2.4.tgz", + "integrity": "sha512-NDQ/qIWpcAG/6xQjyut6xCkrYYAoCaI/33Z+7yzo5qFODwLfNonLzSTasnA6jhuvHn33aHnD1qhdpFkmstxtNQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^4.1.9", + "@libp2p/interface": "^1.7.0", + "@libp2p/peer-id": "^4.2.4", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/crypto": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-4.1.9.tgz", + "integrity": "sha512-8Cf2VKh0uC/rQLvTLSloIOMqUvf4jsSTHXgjWQRf47lDNJlNNI0wSv2S6gakT72GZsRV/jCjYwKPqRlsa5S0iA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^1.7.0", + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0", + "asn1js": "^3.0.5", + "multiformats": "^13.1.0", + "protons-runtime": "^5.4.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/peer-id-factory/node_modules/@libp2p/peer-id": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-4.2.4.tgz", + "integrity": "sha512-mvvsVxt4HkF14BrTNKbqr14VObW+KBJBWu1Oe6BFCoDttGMQLaI+PdduE1r6Tquntv5IONBqoITgD7ow5dQ+vQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^1.7.0", + "multiformats": "^13.1.0", + "uint8arrays": "^5.1.0" } }, - "node_modules/@walletconnect/logger": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz", - "integrity": "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==", + "node_modules/@libp2p/peer-id-factory/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/safe-json": "^1.0.2", - "pino": "7.11.0" + "multiformats": "^13.0.0" } }, - "node_modules/@walletconnect/relay-api": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", - "integrity": "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==", + "node_modules/@libp2p/peer-id/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/jsonrpc-types": "^1.0.2" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@walletconnect/relay-auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", - "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", + "node_modules/@libp2p/peer-id/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@noble/curves": "1.8.0", - "@noble/hashes": "1.7.0", - "@walletconnect/safe-json": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "uint8arrays": "^3.0.0" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@walletconnect/relay-auth/node_modules/@noble/curves": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", - "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "node_modules/@libp2p/peer-id/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@noble/hashes": "1.7.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "multiformats": "^13.0.0" } }, - "node_modules/@walletconnect/relay-auth/node_modules/@noble/hashes": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", - "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node_modules/@libp2p/peer-record": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-9.0.5.tgz", + "integrity": "sha512-disk23OO00yD52O4VmItbDkjJZ/YZJsKbMsqNgVhr+D3PcM+KRpu9VVbiCnN5Tzn9XvFEHhrMJY7BPE+rvT5MQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/peer-id": "^6.0.4", + "@multiformats/multiaddr": "^13.0.1", + "multiformats": "^13.4.0", + "protons-runtime": "^5.6.0", + "uint8-varint": "^2.0.4", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" } }, - "node_modules/@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "node_modules/@libp2p/peer-record/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "tslib": "1.14.1" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@walletconnect/safe-json/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@libp2p/peer-record/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } }, - "node_modules/@walletconnect/sign-client": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.1.tgz", - "integrity": "sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg==", + "node_modules/@libp2p/peer-record/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/peer-store": { + "version": "12.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-12.0.10.tgz", + "integrity": "sha512-fe/6m0vXny9pvCyaSjg2GisdSVgxtHYZtp6op1WNm8dBvYqRXLuqSYi0QGEbLtSDSL4SeE8BKZyadyk/tYAqfg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/peer-collections": "^7.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/peer-record": "^9.0.5", + "@multiformats/multiaddr": "^13.0.1", + "interface-datastore": "^9.0.1", + "it-all": "^3.0.9", + "main-event": "^1.0.1", + "mortice": "^3.3.1", + "multiformats": "^13.4.0", + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/peer-store/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/core": "2.21.1", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.1", - "@walletconnect/utils": "2.21.1", - "events": "3.3.0" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "node_modules/@walletconnect/time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", - "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==", + "node_modules/@libp2p/peer-store/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "tslib": "1.14.1" + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "node_modules/@walletconnect/time/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@libp2p/peer-store/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } }, - "node_modules/@walletconnect/types": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.1.tgz", - "integrity": "sha512-UeefNadqP6IyfwWC1Yi7ux+ljbP2R66PLfDrDm8izmvlPmYlqRerJWJvYO4t0Vvr9wrG4Ko7E0c4M7FaPKT/sQ==", + "node_modules/@libp2p/ping": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-3.0.10.tgz", + "integrity": "sha512-XkwQOOrmIa1/9t2xq0+Zm3rWkyO+Q0SavlM3t6WkDjxC4F3h0MaYep2CX5BBWD2mZWyy8YdeQTF3N9YhRr4irg==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@multiformats/multiaddr": "^13.0.1", + "p-event": "^7.0.0", + "race-signal": "^2.0.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" } }, - "node_modules/@walletconnect/types/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/@libp2p/ping/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/ping/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/ping/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/pubsub": { + "version": "10.1.18", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub/-/pubsub-10.1.18.tgz", + "integrity": "sha512-Bxa0cwkaQvadyJNlJlzH0m1eo7m03G2nCpuKbcv+i0qNbyyTOydBcuoslG/UWFYhRBB9Js9R6zNIsaIgpo+iGw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.8", + "@libp2p/interface": "^2.11.0", + "@libp2p/interface-internal": "^2.3.19", + "@libp2p/peer-collections": "^6.0.35", + "@libp2p/peer-id": "^5.1.9", + "@libp2p/utils": "^6.7.2", + "it-length-prefixed": "^10.0.1", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.3", + "main-event": "^1.0.1", + "multiformats": "^13.3.6", + "p-queue": "^8.1.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/pubsub-peer-discovery": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@libp2p/pubsub-peer-discovery/-/pubsub-peer-discovery-12.0.0.tgz", + "integrity": "sha512-72sZwTDBH/iowRumycPLjSlaUd3cwQcjSN2xUagdzNtMt9ryWt7dL4fDGM+VsktSdYmzzOHhL9ZftNfUk7XG7A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.0.0", + "@libp2p/interface": "^3.0.0", + "@libp2p/interface-internal": "^3.0.1", + "@libp2p/peer-id": "^6.0.1", + "@multiformats/multiaddr": "^13.0.1", + "protons-runtime": "^5.0.0", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^5.0.2" + } + }, + "node_modules/@libp2p/pubsub-peer-discovery/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/pubsub-peer-discovery/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/pubsub-peer-discovery/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.11.0.tgz", + "integrity": "sha512-0MUFKoXWHTQW3oWIgSHApmYMUKWO/Y02+7Hpyp+n3z+geD4Xo2Rku2gYWmxcq+Pyjkz6Q9YjDWz3Yb2SoV2E8Q==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^12.4.4", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.2", + "main-event": "^1.0.1", + "multiformats": "^13.3.6", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/interface-internal": { + "version": "2.3.19", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-2.3.19.tgz", + "integrity": "sha512-v335EB0i5CaNF+0SqT01CTBp0VyjJizpy46KprcshFFjX16UQ8+/QzoTZqmot9WiAmAzwR0b87oKmlAE9cpxzQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.11.0", + "@libp2p/peer-collections": "^6.0.35", + "@multiformats/multiaddr": "^12.4.4", + "progress-events": "^1.0.1" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/logger": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.2.0.tgz", + "integrity": "sha512-OEFS529CnIKfbWEHmuCNESw9q0D0hL8cQ8klQfjIVPur15RcgAEgc1buQ7Y6l0B6tCYg120bp55+e9tGvn8c0g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.11.0", + "@multiformats/multiaddr": "^12.4.4", + "interface-datastore": "^8.3.1", + "multiformats": "^13.3.6", + "weald": "^1.0.4" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/peer-collections": { + "version": "6.0.35", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.35.tgz", + "integrity": "sha512-QiloK3T7DXW7R2cpL38dBnALCHf5pMzs/TyFzlEK33WezA2YFVoj7CtOJKqbn29bmV9uspWOxMgfmLUXf8ALvA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^2.11.0", + "@libp2p/peer-id": "^5.1.9", + "@libp2p/utils": "^6.7.2", + "multiformats": "^13.3.6" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/peer-id": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.1.9.tgz", + "integrity": "sha512-cVDp7lX187Epmi/zr0Qq2RsEMmueswP9eIxYSFoMcHL/qcvRFhsxOfUGB8361E26s2WJvC9sXZ0oJS9XVueJhQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.8", + "@libp2p/interface": "^2.11.0", + "multiformats": "^13.3.6", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/pubsub/node_modules/@libp2p/utils": { + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.7.2.tgz", + "integrity": "sha512-yglVPcYErb4al3MMTdedVLLsdUvr5KaqrrxohxTl/FXMFBvBs0o3w8lo29nfnTUpnNSHFhWZ9at0ZGNnpT/C/w==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.1.0", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.1.8", + "@libp2p/interface": "^2.11.0", + "@libp2p/logger": "^5.2.0", + "@multiformats/multiaddr": "^12.4.4", + "@sindresorhus/fnv1a": "^3.1.0", + "any-signal": "^4.1.1", + "delay": "^6.0.0", + "get-iterator": "^2.0.1", + "is-loopback-addr": "^2.0.2", + "is-plain-obj": "^4.1.0", + "it-foreach": "^2.1.3", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.2", + "main-event": "^1.0.1", + "netmask": "^2.0.2", + "p-defer": "^4.0.1", + "race-event": "^1.3.0", + "race-signal": "^1.1.3", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/pubsub/node_modules/delay": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-6.0.0.tgz", + "integrity": "sha512-2NJozoOHQ4NuZuVIr5CWd0iiLVIRSDepakaovIN+9eIDHEhdCAEvSy2cuf1DCrPPQLvHmbqTHODlhHg8UCy4zw==", + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/pubsub/node_modules/interface-datastore": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-8.3.2.tgz", + "integrity": "sha512-R3NLts7pRbJKc3qFdQf+u40hK8XWc0w4Qkx3OFEstC80VoaDUABY/dXA2EJPhtNC+bsrf41Ehvqb6+pnIclyRA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "interface-store": "^6.0.0", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/pubsub/node_modules/interface-store": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-6.0.3.tgz", + "integrity": "sha512-+WvfEZnFUhRwFxgz+QCQi7UC6o9AM0EHM9bpIe2Nhqb100NHCsTvNAn4eJgvgV2/tmLo1MP9nGxQKEcZTAueLA==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/pubsub/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@libp2p/pubsub/node_modules/race-signal": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-1.1.3.tgz", + "integrity": "sha512-Mt2NznMgepLfORijhQMncE26IhkmjEphig+/1fKC0OtaKwys/gpvpmswSjoN01SS+VO951mj0L4VIDXdXsjnfA==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/@libp2p/pubsub/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/record": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/record/-/record-4.0.9.tgz", + "integrity": "sha512-ITxntqQ2GDK/yA1NhzEQc2dXpxgox96xZ1cqO507choY5z5Czhz2BxfyElVO/XYjOXvylu1XN66uh3VuGHrfkQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/record/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/tcp": { + "version": "11.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-11.0.10.tgz", + "integrity": "sha512-vp1XvbRUU6JyVZMDfrr8UX+xs1sybT2r3PFoN5m07r3GSrMMPOKpWN2HkhT2pCBZWJG6ADQOy5+K0tBRE782oA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^3.1.0", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "@types/sinon": "^20.0.0", + "main-event": "^1.0.1", + "p-event": "^7.0.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/tcp/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/tcp/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/tcp/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/tls": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/tls/-/tls-3.0.10.tgz", + "integrity": "sha512-O/e/kEzXZPgHb1asyN1P4hCcECQnFEiGAQCgjkKU/nTjHYCvWG0CAU5uJuJkj9RXLpDFPVZ38FMN3dSzx0Ny7Q==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/utils": "^7.0.10", + "@peculiar/asn1-schema": "^2.4.0", + "@peculiar/asn1-x509": "^2.4.0", + "@peculiar/webcrypto": "^1.5.0", + "@peculiar/x509": "^1.13.0", + "asn1js": "^3.0.6", + "p-event": "^7.0.0", + "protons-runtime": "^5.6.0", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/tls/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/tls/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/tls/node_modules/@peculiar/x509": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.14.3.tgz", + "integrity": "sha512-C2Xj8FZ0uHWeCXXqX5B4/gVFQmtSkiuOolzAgutjTfseNOHT3pUjljDZsTSxXFGgio54bCzVFqmEOUrIVk8RDA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-csr": "^2.6.0", + "@peculiar/asn1-ecc": "^2.6.0", + "@peculiar/asn1-pkcs9": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "pvtsutils": "^1.3.6", + "reflect-metadata": "^0.2.2", + "tslib": "^2.8.1", + "tsyringe": "^4.10.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@libp2p/tls/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/upnp-nat": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/upnp-nat/-/upnp-nat-4.0.10.tgz", + "integrity": "sha512-pEVLzDI7hY37vxjQyPvY6naWavUB5icTTLUtu/mHLvlb79jYX/NspIhUlbPcYFGH5dTD4NBaqHn6k3otOHssiw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@achingbrain/nat-port-mapper": "^4.0.4", + "@chainsafe/is-ip": "^2.1.0", + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "main-event": "^1.0.1", + "p-defer": "^4.0.1", + "race-signal": "^2.0.0" + } + }, + "node_modules/@libp2p/upnp-nat/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/upnp-nat/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/upnp-nat/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/utils": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-7.0.10.tgz", + "integrity": "sha512-+mzD+7yLMoZ8+34y/iS9d1CnwHjJJ/qEsao9FckHf9T9tnVXEyLLu9TpzBCcGRm4fUK/QCSHK2AcZH50kkAFkw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.1.0", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/logger": "^6.2.2", + "@multiformats/multiaddr": "^13.0.1", + "@sindresorhus/fnv1a": "^3.1.0", + "any-signal": "^4.1.1", + "cborg": "^4.2.14", + "delay": "^7.0.0", + "is-loopback-addr": "^2.0.2", + "it-length-prefixed": "^10.0.1", + "it-pipe": "^3.0.1", + "it-pushable": "^3.2.3", + "it-stream-types": "^2.0.2", + "main-event": "^1.0.1", + "netmask": "^2.0.2", + "p-defer": "^4.0.1", + "p-event": "^7.0.0", + "race-signal": "^2.0.0", + "uint8-varint": "^2.0.4", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/@libp2p/utils/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/utils/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/utils/node_modules/cborg": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-4.4.1.tgz", + "integrity": "sha512-mJ6KJfhqHQm5A6nVWBsqUdhDUek2apbF7PhhETwZCJIrgX/xVuR0AIGoGbmAIC86WOwCZmRDaGMz2gOtcPntuw==", + "license": "Apache-2.0", + "bin": { + "cborg": "lib/bin.js" + } + }, + "node_modules/@libp2p/utils/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@libp2p/websockets": { + "version": "10.1.3", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-10.1.3.tgz", + "integrity": "sha512-TzH7ja1Ay7zIXif5eYSRUAupqtRotUyNegumRPFV+DjiqOYK2DiZd8Z6QTG1iVUsUXMXrWihbFkR96zyQ9eajw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/interface": "^3.1.0", + "@libp2p/utils": "^7.0.10", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "@multiformats/multiaddr-to-uri": "^12.0.0", + "main-event": "^1.0.1", + "p-event": "^7.0.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8", + "uint8arrays": "^5.1.0", + "ws": "^8.18.3" + } + }, + "node_modules/@libp2p/websockets/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" + } + }, + "node_modules/@libp2p/websockets/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@libp2p/websockets/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@lit-labs/ssr-dom-shim": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.5.1.tgz", + "integrity": "sha512-Aou5UdlSpr5whQe8AA/bZG0jMj96CoJIWbGfZ91qieWu5AWUMKw8VR/pAkQkJYvBNhmCcWnZlyyk5oze8JIqYA==", + "license": "BSD-3-Clause" + }, + "node_modules/@lit/reactive-element": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.2.tgz", + "integrity": "sha512-pbCDiVMnne1lYUIaYNN5wrwQXDtHaYtg7YEFPeW+hws6U47WeFvISGUWekPGKWOP1ygrs0ef0o1VJMk1exos5A==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0" + } + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@lukeed/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@lukeed/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha512-qC72D4+CDdjGqJvkFMMEAtancHUQ7/d/tAiHf64z8MopFDmcrtbcJuerDtFceuAfQJ2pDSfCKCtbqoGBNnwg0w==", + "license": "MIT", + "dependencies": { + "@lukeed/csprng": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@metamask/eth-json-rpc-provider": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-1.0.1.tgz", + "integrity": "sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==", + "dependencies": { + "@metamask/json-rpc-engine": "^7.0.0", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@ethereumjs/common": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", + "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", + "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", + "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", + "license": "ISC", + "dependencies": { + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/json-rpc-engine/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/rpc-errors": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", + "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", + "license": "MIT", + "dependencies": { + "@metamask/utils": "^9.0.0", + "fast-safe-stringify": "^2.0.6" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", + "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.1.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/@metamask/utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", + "integrity": "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.1.2", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "semver": "^7.3.8", + "superstruct": "^1.0.3" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@metamask/eth-json-rpc-provider/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/json-rpc-engine": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", + "license": "ISC", + "dependencies": { + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/@ethereumjs/common": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", + "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", + "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/rpc-errors": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", + "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", + "license": "MIT", + "dependencies": { + "@metamask/utils": "^9.0.0", + "fast-safe-stringify": "^2.0.6" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", + "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.1.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-engine/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", + "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", + "license": "ISC", + "dependencies": { + "@metamask/json-rpc-engine": "^8.0.2", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0", + "readable-stream": "^3.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@ethereumjs/common": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", + "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", + "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/object-multiplex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz", + "integrity": "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==", + "license": "ISC", + "dependencies": { + "once": "^1.4.0", + "readable-stream": "^3.6.2" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@metamask/object-multiplex/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/onboarding": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz", + "integrity": "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==", + "license": "MIT", + "dependencies": { + "bowser": "^2.9.0" + } + }, + "node_modules/@metamask/providers": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", + "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", + "license": "MIT", + "dependencies": { + "@metamask/json-rpc-engine": "^8.0.1", + "@metamask/json-rpc-middleware-stream": "^7.0.1", + "@metamask/object-multiplex": "^2.0.0", + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.1.1", + "@metamask/utils": "^8.3.0", + "detect-browser": "^5.2.0", + "extension-port-stream": "^3.0.0", + "fast-deep-equal": "^3.1.3", + "is-stream": "^2.0.0", + "readable-stream": "^3.6.2", + "webextension-polyfill": "^0.10.0" + }, + "engines": { + "node": "^18.18 || >=20" + } + }, + "node_modules/@metamask/providers/node_modules/@ethereumjs/common": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", + "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@metamask/providers/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/providers/node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", + "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/providers/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/providers/node_modules/@metamask/rpc-errors": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", + "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", + "license": "MIT", + "dependencies": { + "@metamask/utils": "^9.0.0", + "fast-safe-stringify": "^2.0.6" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/providers/node_modules/@metamask/rpc-errors/node_modules/@metamask/utils": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", + "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.1.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/providers/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/providers/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/providers/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/rpc-errors": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-7.0.2.tgz", + "integrity": "sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw==", + "license": "MIT", + "dependencies": { + "@metamask/utils": "^11.0.1", + "fast-safe-stringify": "^2.0.6" + }, + "engines": { + "node": "^18.20 || ^20.17 || >=22" + } + }, + "node_modules/@metamask/safe-event-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz", + "integrity": "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==", + "license": "ISC", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/sdk": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.33.1.tgz", + "integrity": "sha512-1mcOQVGr9rSrVcbKPNVzbZ8eCl1K0FATsYH3WJ/MH4WcZDWGECWrXJPNMZoEAkLxWiMe8jOQBumg2pmcDa9zpQ==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@metamask/onboarding": "^1.0.1", + "@metamask/providers": "16.1.0", + "@metamask/sdk-analytics": "0.0.5", + "@metamask/sdk-communication-layer": "0.33.1", + "@metamask/sdk-install-modal-web": "0.32.1", + "@paulmillr/qr": "^0.2.1", + "bowser": "^2.9.0", + "cross-fetch": "^4.0.0", + "debug": "4.3.4", + "eciesjs": "^0.4.11", + "eth-rpc-errors": "^4.0.3", + "eventemitter2": "^6.4.9", + "obj-multiplex": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1", + "tslib": "^2.6.0", + "util": "^0.12.4", + "uuid": "^8.3.2" + } + }, + "node_modules/@metamask/sdk-analytics": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@metamask/sdk-analytics/-/sdk-analytics-0.0.5.tgz", + "integrity": "sha512-fDah+keS1RjSUlC8GmYXvx6Y26s3Ax1U9hGpWb6GSY5SAdmTSIqp2CvYy6yW0WgLhnYhW+6xERuD0eVqV63QIQ==", + "license": "MIT", + "dependencies": { + "openapi-fetch": "^0.13.5" + } + }, + "node_modules/@metamask/sdk-communication-layer": { + "version": "0.33.1", + "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.33.1.tgz", + "integrity": "sha512-0bI9hkysxcfbZ/lk0T2+aKVo1j0ynQVTuB3sJ5ssPWlz+Z3VwveCkP1O7EVu1tsVVCb0YV5WxK9zmURu2FIiaA==", + "dependencies": { + "@metamask/sdk-analytics": "0.0.5", + "bufferutil": "^4.0.8", + "date-fns": "^2.29.3", + "debug": "4.3.4", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "cross-fetch": "^4.0.0", + "eciesjs": "*", + "eventemitter2": "^6.4.9", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1" + } + }, + "node_modules/@metamask/sdk-communication-layer/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@metamask/sdk-communication-layer/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/@metamask/sdk-communication-layer/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/sdk-install-modal-web": { + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.1.tgz", + "integrity": "sha512-MGmAo6qSjf1tuYXhCu2EZLftq+DSt5Z7fsIKr2P+lDgdTPWgLfZB1tJKzNcwKKOdf6q9Qmmxn7lJuI/gq5LrKw==", + "dependencies": { + "@paulmillr/qr": "^0.2.1" + } + }, + "node_modules/@metamask/sdk/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@metamask/sdk/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/@metamask/sdk/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/sdk/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/superstruct": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.2.1.tgz", + "integrity": "sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/utils": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-11.9.0.tgz", + "integrity": "sha512-wRnoSDD9jTWOge/+reFviJQANhS+uy8Y+OEwRanp5mQeGTjBFmK1r2cTOnei2UCZRV1crXHzeJVSFEoDDcgRbA==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.1.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "@types/lodash": "^4.17.20", + "debug": "^4.3.4", + "lodash": "^4.17.21", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": "^18.18 || ^20.14 || >=22" + } + }, + "node_modules/@metamask/utils/node_modules/@ethereumjs/common": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", + "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" + } + }, + "node_modules/@metamask/utils/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/utils/node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", + "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/utils/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@metamask/utils/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@mobily/ts-belt": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/@mobily/ts-belt/-/ts-belt-3.13.1.tgz", + "integrity": "sha512-K5KqIhPI/EoCTbA6CGbrenM9s41OouyK8A03fGJJcla/zKucsgLbz8HNbeseoLarRPgyWJsUyCYqFhI7t3Ra9Q==", + "license": "MIT", + "engines": { + "node": ">= 10.*" + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-7.3.7.tgz", + "integrity": "sha512-8jWwS6FweMkpyRkrJooamUGe1CQfO1yJ+lM43IyUJbrhHW/ObES+6ry4vfGi8EKaldHL3t3BG1bcLcERuJPcjg==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-7.3.7.tgz", + "integrity": "sha512-3Q+ulAqG+A1+R4ebgoIs7AccaJhIGy+Xi/9OnvX376jQ6wcy+rz4geDGrxQxCGzdjOQr4Z3NgyFSZCz4T999lA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^7.3.7", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-7.3.7.tgz", + "integrity": "sha512-6bdIxqzeOtBAj2wAsfhWCYyMKPLkRO9u/2o5yexcL0C3APqyy91iGSWgT3H7hg+zR2XgE61+WAu12wXPON8b6A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/core-downloads-tracker": "^7.3.7", + "@mui/system": "^7.3.7", + "@mui/types": "^7.4.10", + "@mui/utils": "^7.3.7", + "@popperjs/core": "^2.11.8", + "@types/react-transition-group": "^4.4.12", + "clsx": "^2.1.1", + "csstype": "^3.2.3", + "prop-types": "^15.8.1", + "react-is": "^19.2.3", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@mui/material-pigment-css": "^7.3.7", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@mui/material-pigment-css": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/private-theming": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-7.3.7.tgz", + "integrity": "sha512-w7r1+CYhG0syCAQUWAuV5zSaU2/67WA9JXUderdb7DzCIJdp/5RmJv6L85wRjgKCMsxFF0Kfn0kPgPbPgw/jdw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.7", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-7.3.7.tgz", + "integrity": "sha512-y/QkNXv6cF6dZ5APztd/dFWfQ6LHKPx3skyYO38YhQD4+Cxd6sFAL3Z38WMSSC8LQz145Mpp3CcLrSCLKPwYAg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@emotion/cache": "^11.14.0", + "@emotion/serialize": "^1.3.3", + "@emotion/sheet": "^1.4.0", + "csstype": "^3.2.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-7.3.7.tgz", + "integrity": "sha512-DovL3k+FBRKnhmatzUMyO5bKkhMLlQ9L7Qw5qHrre3m8zCZmE+31NDVBFfqrbrA7sq681qaEIHdkWD5nmiAjyQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/private-theming": "^7.3.7", + "@mui/styled-engine": "^7.3.7", + "@mui/types": "^7.4.10", + "@mui/utils": "^7.3.7", + "clsx": "^2.1.1", + "csstype": "^3.2.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.4.10", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.10.tgz", + "integrity": "sha512-0+4mSjknSu218GW3isRqoxKRTOrTLd/vHi/7UC4+wZcUrOAqD9kRk7UQRL1mcrzqRoe7s3UT6rsRpbLkW5mHpQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-7.3.7.tgz", + "integrity": "sha512-+YjnjMRnyeTkWnspzoxRdiSOgkrcpTikhNPoxOZW0APXx+urHtUoXJ9lbtCZRCA5a4dg5gSbd19alL1DvRs5fg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/types": "^7.4.10", + "@types/prop-types": "^15.7.15", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-is": "^19.2.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/x-data-grid": { + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-8.24.0.tgz", + "integrity": "sha512-OCTrskRlxwJZ+vYWbgQnQPXWNMA/nY/RIkoESjbCG38N9fJicVCdyjszjcQn9V1NQH4fwkMlIN+DVU6zzbqJxQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.5", + "@mui/x-internals": "8.24.0", + "@mui/x-virtualizer": "0.3.1", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "use-sync-external-store": "^1.6.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0", + "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/x-internals": { + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-8.24.0.tgz", + "integrity": "sha512-tHPk8eUcuwvhNsAc4zcia8y+issjC+bLGssrQQSdLLeLIf9ewFbcwAURNTSnNhreyj/4RJOemVrSxKXpjkdVvQ==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.5", + "reselect": "^5.1.1", + "use-sync-external-store": "^1.6.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@mui/x-virtualizer": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@mui/x-virtualizer/-/x-virtualizer-0.3.1.tgz", + "integrity": "sha512-MhQ7U/zmSofBxeCRMiolhZWJ80RUJMFFMRqeehJu5GqscnudiVcplZb0eNsAkz9IjnJTyrjyLS0PY+kn78enOw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.28.4", + "@mui/utils": "^7.3.5", + "@mui/x-internals": "8.24.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@multiformats/dns": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.11.tgz", + "integrity": "sha512-KnT4gX71zas8br5OO2mArwBgRqTx78FvK193VL8/bP8T1ydDuWUilevZlPug9Azufos+ioHd8pHAVY3v7U41tQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "buffer": "^6.0.3", + "dns-packet": "^5.6.1", + "hashlru": "^2.3.0", + "p-queue": "^9.0.0", + "progress-events": "^1.0.0", + "uint8arrays": "^5.0.2" + } + }, + "node_modules/@multiformats/dns/node_modules/p-queue": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.1.0.tgz", + "integrity": "sha512-O/ZPaXuQV29uSLbxWBGGZO1mCQXV2BLIwUr59JUU9SoH76mnYvtms7aafH/isNSNGwuEfP6W/4xD0/TJXxrizw==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^7.0.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@multiformats/dns/node_modules/p-timeout": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz", + "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@multiformats/dns/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@multiformats/multiaddr": { + "version": "12.5.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-12.5.1.tgz", + "integrity": "sha512-+DDlr9LIRUS8KncI1TX/FfUn8F2dl6BIxJgshS/yFQCNB5IAF0OGzcwB39g5NLE22s4qqDePv0Qof6HdpJ/4aQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "@chainsafe/netmask": "^2.0.0", + "@multiformats/dns": "^1.0.3", + "abort-error": "^1.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@multiformats/multiaddr-matcher": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-matcher/-/multiaddr-matcher-3.0.1.tgz", + "integrity": "sha512-jvjwzCPysVTQ53F4KqwmcqZw73BqHMk0UUZrMP9P4OtJ/YHrfs122ikTqhVA2upe0P/Qz9l8HVlhEifVYB2q9A==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^13.0.0" + } + }, + "node_modules/@multiformats/multiaddr-matcher/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@multiformats/multiaddr-matcher/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@multiformats/multiaddr-to-uri": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-12.0.0.tgz", + "integrity": "sha512-3uIEBCiy8tfzxYYBl81x1tISiNBQ7mHU4pGjippbJRoQYHzy/ZdZM/7JvTldr8pc/dzpkaNJxnsuxxlhsPOJsA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/multiaddr": "^13.0.0" + } + }, + "node_modules/@multiformats/multiaddr-to-uri/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, + "node_modules/@multiformats/multiaddr-to-uri/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, + "node_modules/@next/env": { + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.9.tgz", + "integrity": "sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.4.tgz", + "integrity": "sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "15.5.7", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.5.7.tgz", + "integrity": "sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@ngraveio/bc-ur": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/@ngraveio/bc-ur/-/bc-ur-1.1.13.tgz", + "integrity": "sha512-j73akJMV4+vLR2yQ4AphPIT5HZmxVjn/LxpL7YHoINnXoH6ccc90Zzck6/n6a3bCXOVZwBxq+YHwbAKRV+P8Zg==", + "license": "MIT", + "dependencies": { + "@keystonehq/alias-sampling": "^0.1.1", + "assert": "^2.0.0", + "bignumber.js": "^9.0.1", + "cbor-sync": "^1.0.4", + "crc": "^3.8.0", + "jsbi": "^3.1.5", + "sha.js": "^2.4.11" + } + }, + "node_modules/@noble/ciphers": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-2.1.1.tgz", + "integrity": "sha512-bysYuiVfhxNJuldNXlFEitTVdNnYUc+XNJZd7Qm2a5j1vZHgY+fazadNFWFaMK/2vye0JVlxV3gHmC0WDfAOQw==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", + "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", + "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/secp256k1": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-2.3.0.tgz", + "integrity": "sha512-0TQed2gcBbIrh7Ccyw+y/uZQvbJwm7Ao4scBUxqpBCcsOlZG0O4KGfjtNAy/li4W8n1xt3dxrwJ0beZ2h2G6Kw==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@oasisprotocol/deoxysii": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/@oasisprotocol/deoxysii/-/deoxysii-0.0.5.tgz", + "integrity": "sha512-a6wYPjk8ALDIiQW/971AKOTSTY1qSdld+Y05F44gVZvlb3FOyHfgbIxXm7CZnUG1A+jK49g5SCWYP+V3/Tc75Q==", + "license": "MIT", + "dependencies": { + "bsaes": "0.0.2", + "uint32": "^0.2.1" + } + }, + "node_modules/@oasisprotocol/sapphire-paratime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@oasisprotocol/sapphire-paratime/-/sapphire-paratime-1.3.2.tgz", + "integrity": "sha512-98EQ2BrT0942B0VY50PKcJ6xmUAcz71y8OBMizP6oBJIh0+ogw/z3r5z4veJitMXM4zQbh5wOFaS9eOcKWX5FA==", + "license": "Apache-2.0", + "dependencies": { + "@noble/hashes": "1.3.2", + "@oasisprotocol/deoxysii": "0.0.5", + "cborg": "1.10.2", + "ethers": "6.10.0", + "tweetnacl": "1.0.3", + "type-fest": "2.19.0" + } + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/@adraffy/ens-normalize": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz", + "integrity": "sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==", + "license": "MIT" + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/@types/node": { + "version": "18.15.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", + "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==", + "license": "MIT" + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/ethers": { + "version": "6.10.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.10.0.tgz", + "integrity": "sha512-nMNwYHzs6V1FR3Y4cdfxSQmNgZsRj1RiTU25JwvnJLmyzw9z3SKxNc2XKDuiXXo/v9ds5Mp9m6HBabgYQQ26tA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "1.10.0", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "18.15.13", + "aes-js": "4.0.0-beta.5", + "tslib": "2.4.0", + "ws": "8.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "license": "0BSD" + }, + "node_modules/@oasisprotocol/sapphire-paratime/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@oceanprotocol/contracts": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@oceanprotocol/contracts/-/contracts-2.5.0.tgz", + "integrity": "sha512-w7YwpmqvQRBmdY/4LMLmsFDFPt+dpNZGmqxfhq9mOHSSFKg0G9cYoVZ+GV6yyp8tdUNHs9IteQooPO2kg3HCXA==", + "license": "Apache-2.0" + }, + "node_modules/@oceanprotocol/ddo-js": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@oceanprotocol/ddo-js/-/ddo-js-0.1.4.tgz", + "integrity": "sha512-+9nOslJCYMiIldIQ8dixdSjBjrrlqzb9q+nRQXqn60ZIi45AoR4ajv1LdqPwScCmoeLZgMxiZsnUXq/suDSLNg==", + "license": "Apache-2.0", + "dependencies": { + "@rdfjs/formats-common": "^3.1.0", + "@types/rdfjs__formats-common": "^3.1.5", + "@zazuko/env-node": "^2.1.4", + "chai": "^5.1.2", + "ethers": "^6.15.0", + "rdf-literal": "^2.0.0", + "rdf-validate-shacl": "^0.5.6" + } + }, + "node_modules/@oceanprotocol/lib": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@oceanprotocol/lib/-/lib-5.0.1.tgz", + "integrity": "sha512-aOcNLo2W7ZW7l6QJ3NtbaqLNzNI4xr+HTpABGXoRpKbVyTQeNbMEP5r6RUQNL16V+VBVo7CjWwaZSfunJHwYYQ==", + "license": "Apache-2.0", + "dependencies": { + "@oasisprotocol/sapphire-paratime": "^1.3.2", + "@oceanprotocol/contracts": "^2.4.0", + "@oceanprotocol/ddo-js": "^0.1.3", + "@rdfjs/dataset": "^2.0.2", + "@rdfjs/formats-common": "^3.1.0", + "@zazuko/env-node": "^2.1.4", + "bignumber.js": "^9.3.1", + "cross-fetch": "^4.0.0", + "crypto-js": "^4.1.1", + "decimal.js": "^10.4.1", + "ethers": "^6.15.0", + "form-data": "^2.3.3", + "jsonwebtoken": "^9.0.2" + }, + "peerDependencies": { + "web3": "^1.8.0" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "4.9.6", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.6.tgz", + "integrity": "sha512-xSmezSupL+y9VkHZJGDoCBpmnB2ogM13ccaYDWqJTfS3dbuHkgjuwDFUmaFauBCboQMGB/S5UqUl2y54X99BmA==", + "license": "MIT" + }, + "node_modules/@particle-network/analytics": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@particle-network/analytics/-/analytics-1.0.2.tgz", + "integrity": "sha512-E4EpTRYcfNOkxj+bgNdQydBrvdLGo4HfVStZCuOr3967dYek30r6L7Nkaa9zJXRE2eGT4lPvcAXDV2WxDZl/Xg==", + "license": "Apache-2.0", + "dependencies": { + "hash.js": "^1.1.7", + "uuidv4": "^6.2.13" + } + }, + "node_modules/@particle-network/auth": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@particle-network/auth/-/auth-1.3.1.tgz", + "integrity": "sha512-hu6ie5RjjN4X+6y/vfjyCsSX3pQuS8k8ZoMb61QWwhWsnZXKzpBUVeAEk55aGfxxXY+KfBkSmZosyaZHGoHnfw==", + "license": "Apache-2.0", + "dependencies": { + "@particle-network/analytics": "^1.0.1", + "@particle-network/chains": "*", + "@particle-network/crypto": "^1.0.1", + "buffer": "^6.0.3", + "draggabilly": "^3.0.0" + } + }, + "node_modules/@particle-network/chains": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@particle-network/chains/-/chains-1.8.3.tgz", + "integrity": "sha512-WgzY2Hp3tpQYBKXF0pOFdCyJ4yekTTOCzBvBt2tvt7Wbzti2bLyRlfGZAoP57TvIMiy1S1oUfasVfM0Dqd6k5w==", + "license": "Apache-2.0" + }, + "node_modules/@particle-network/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@particle-network/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-GgvHmHcFiNkCLZdcJOgctSbgvs251yp+EAdUydOE3gSoIxN6KEr/Snu9DebENhd/nFb7FDk5ap0Hg49P7pj1fg==", + "license": "Apache-2.0", + "dependencies": { + "crypto-js": "^4.1.1", + "uuidv4": "^6.2.13" + } + }, + "node_modules/@particle-network/solana-wallet": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@particle-network/solana-wallet/-/solana-wallet-1.3.2.tgz", + "integrity": "sha512-KviKVP87OtWq813y8IumM3rIQMNkTjHBaQmCUbTWGebz3csFOv54JIoy1r+3J3NnA+mBxBdZeRedZ5g+07v75w==", + "license": "Apache-2.0", + "dependencies": { + "@particle-network/auth": "^1.3.1" + }, + "peerDependencies": { + "@solana/web3.js": "^1.50.1", + "bs58": "^4.0.1" + } + }, + "node_modules/@paulmillr/qr": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@paulmillr/qr/-/qr-0.2.1.tgz", + "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==", + "deprecated": "The package is now available as \"qr\": npm install qr", + "license": "(MIT OR Apache-2.0)", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@peculiar/asn1-cms": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.6.0.tgz", + "integrity": "sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "@peculiar/asn1-x509-attr": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-csr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.6.0.tgz", + "integrity": "sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-ecc": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.6.0.tgz", + "integrity": "sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pfx": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.6.0.tgz", + "integrity": "sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-pkcs8": "^2.6.0", + "@peculiar/asn1-rsa": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs8": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.0.tgz", + "integrity": "sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-pkcs9": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.0.tgz", + "integrity": "sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.6.0", + "@peculiar/asn1-pfx": "^2.6.0", + "@peculiar/asn1-pkcs8": "^2.6.0", + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "@peculiar/asn1-x509-attr": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-rsa": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.6.0.tgz", + "integrity": "sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz", + "integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==", + "license": "MIT", + "dependencies": { + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.6.0.tgz", + "integrity": "sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "asn1js": "^3.0.6", + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/asn1-x509-attr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.0.tgz", + "integrity": "sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.6.0", + "@peculiar/asn1-x509": "^2.6.0", + "asn1js": "^3.0.6", + "tslib": "^2.8.1" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.5.0.tgz", + "integrity": "sha512-BRs5XUAwiyCDQMsVA9IDvDa7UBR9gAvPHgugOeGng3YN6vJ9JYonyDc0lNczErgtCWtucjR5N7VtaonboD/ezg==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.8", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.5", + "tslib": "^2.6.2", + "webcrypto-core": "^1.8.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@peculiar/x509": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/@peculiar/x509/-/x509-1.12.3.tgz", + "integrity": "sha512-+Mzq+W7cNEKfkNZzyLl6A6ffqc3r21HGZUezgfKxpZrkORfOqgRXnS80Zu0IV6a9Ue9QBJeKD7kN0iWfc3bhRQ==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-cms": "^2.3.13", + "@peculiar/asn1-csr": "^2.3.13", + "@peculiar/asn1-ecc": "^2.3.14", + "@peculiar/asn1-pkcs9": "^2.3.13", + "@peculiar/asn1-rsa": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-x509": "^2.3.13", + "pvtsutils": "^1.3.5", + "reflect-metadata": "^0.2.2", + "tslib": "^2.7.0", + "tsyringe": "^4.8.0" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@project-serum/sol-wallet-adapter": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.2.6.tgz", + "integrity": "sha512-cpIb13aWPW8y4KzkZAPDgw+Kb+DXjCC6rZoH74MGm3I/6e/zKyGnfAuW5olb2zxonFqsYgnv7ev8MQnvSgJ3/g==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^4.0.1", + "eventemitter3": "^4.0.7" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.5.0" + } + }, + "node_modules/@project-serum/sol-wallet-adapter/node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@project-serum/sol-wallet-adapter/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@project-serum/sol-wallet-adapter/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, + "node_modules/@rdfjs/data-model": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-2.1.1.tgz", + "integrity": "sha512-6mcOI4DjIPS6MOZw23H8oAdujHCk5gippVNQ7mKwliYTvTNh+uqRM91B9OLqhoAoNcQ3t49Dx2ooIMRG9/6ooA==", + "license": "MIT", + "bin": { + "rdfjs-data-model-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/dataset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-2.0.2.tgz", + "integrity": "sha512-6YJx+5n5Uxzq9dd9I0GGcIo6eopZOPfcsAfxSGX5d+YBzDgVa1cbtEBFnaPyPKiQsOm4+Cr3nwypjpg02YKPlA==", + "license": "MIT", + "bin": { + "rdfjs-dataset-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/environment": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@rdfjs/environment/-/environment-1.0.0.tgz", + "integrity": "sha512-+S5YjSvfoQR5r7YQCRCCVHvIEyrWia7FJv2gqM3s5EDfotoAQmFeBagApa9c/eQFi5EiNhmBECE5nB8LIxTaHg==", + "license": "MIT" + }, + "node_modules/@rdfjs/fetch-lite": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@rdfjs/fetch-lite/-/fetch-lite-3.3.0.tgz", + "integrity": "sha512-K3hZC4+Ch0UmYA1w0Xv/8cCVPD5ulKwRa6A/iTn3BFbZpVAb5KoBfOfnOhe6VJEa50raUvTHR1gp1YdvUnYt9g==", + "license": "MIT", + "dependencies": { + "is-stream": "^4.0.1", + "nodeify-fetch": "^3.1.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/fetch-lite/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@rdfjs/formats": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/formats/-/formats-4.0.1.tgz", + "integrity": "sha512-Rg53vP+x1bnGAqJNKgEzJEUPDhj+tCpzb6wdmfLoVFq4XoZ589+cg2ScFDUMMyAVsgKXvSWjDhQ9f9ab254ZxA==", + "license": "MIT", + "dependencies": { + "@rdfjs/parser-jsonld": "^2.1.0", + "@rdfjs/parser-n3": "^2.0.1", + "@rdfjs/serializer-jsonld": "^2.0.0", + "@rdfjs/serializer-jsonld-ext": "^4.0.0", + "@rdfjs/serializer-ntriples": "^2.0.0", + "@rdfjs/serializer-turtle": "^1.1.1", + "@rdfjs/sink-map": "^2.0.0", + "rdfxml-streaming-parser": "^3.0.1" + } + }, + "node_modules/@rdfjs/formats-common": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rdfjs/formats-common/-/formats-common-3.1.0.tgz", + "integrity": "sha512-wgz5za/Uls+pttLdLl/aH0m0LQNgjqpWwk9exNs2Smmb2CosynRo4S0+CxeNOVZh4zeUm7oAlr1CK/tyg4Ff6g==", + "license": "MIT", + "dependencies": { + "@rdfjs/parser-jsonld": "^2.0.0", + "@rdfjs/parser-n3": "^2.0.0", + "@rdfjs/serializer-jsonld": "^2.0.0", + "@rdfjs/serializer-ntriples": "^2.0.0", + "@rdfjs/sink-map": "^2.0.0", + "rdfxml-streaming-parser": "^2.2.0" + } + }, + "node_modules/@rdfjs/formats/node_modules/rdfxml-streaming-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-3.2.0.tgz", + "integrity": "sha512-SgQGK0EkbXd0jQ1PZk7dEpfDxf4CZpezkO6cTuGWesa9twdWaaW5elMoNBcbMT+2tOZC1EYZjs0JaXx0HnifcQ==", + "license": "MIT", + "dependencies": { + "@rubensworks/saxes": "^6.0.1", + "@types/readable-stream": "^4.0.18", + "buffer": "^6.0.3", + "rdf-data-factory": "^2.0.2", + "readable-stream": "^4.4.2", + "relative-to-absolute-iri": "^1.0.0", + "validate-iri": "^1.0.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/rubensworks/" + } + }, + "node_modules/@rdfjs/namespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/namespace/-/namespace-2.0.1.tgz", + "integrity": "sha512-U85NWVGnL3gWvOZ4eXwUcv3/bom7PAcutSBQqmVWvOaslPy+kDzAJCH1WYBLpdQd4yMmJ+bpJcDl9rcHtXeixg==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1" + } + }, + "node_modules/@rdfjs/parser-jsonld": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@rdfjs/parser-jsonld/-/parser-jsonld-2.1.3.tgz", + "integrity": "sha512-VYnPEwVdqFAPTo9F8XIN4UpGPdNzhBaCFv5b5OT74pA7H8so4aTno3Yd6M5I9bhTrUoCQjpjgr+ugYlvWxdBIA==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.2", + "@rdfjs/sink": "^2.0.1", + "duplex-to": "^2.0.0", + "jsonld-streaming-parser": "^5.0.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/parser-n3": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@rdfjs/parser-n3/-/parser-n3-2.1.0.tgz", + "integrity": "sha512-/DiosB+0vPzgAs1WXcCB8MbA5hqq0fIh9VhMg7fBmoJ/I8Xl6Op/AOxVu9x1XZCHSNwO/VsJT/HYKEctZVRKSQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.2", + "@rdfjs/sink": "^2.0.1", + "duplex-to": "^2.0.0", + "n3": "^1.17.2", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/prefix-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/prefix-map/-/prefix-map-0.1.2.tgz", + "integrity": "sha512-qapFYVPYyYepg0sFy7T512667iZsN9a3RNcyNBTBV+O8wrU3v/URQZOipCTNrEm1BXzZ7KCK1Yi8HrE1y+uRuQ==", + "license": "MIT", + "dependencies": { + "readable-stream": "^4.3.0" + } + }, + "node_modules/@rdfjs/serializer-jsonld": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-jsonld/-/serializer-jsonld-2.0.1.tgz", + "integrity": "sha512-O8WzdY7THsse/nMsrMLd2e51ADHO2SIUrkiZ9Va/8W3lXeeeiwDRPMppWy/i9yL4q6EM8iMW1riV7E0mK3fsBQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/sink": "^2.0.1", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/serializer-jsonld-ext": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-jsonld-ext/-/serializer-jsonld-ext-4.0.2.tgz", + "integrity": "sha512-l/A6gQgKWYYGOPbcVZWnaamqWPtShL4FDrEqh5F85Fw0PdSca7q0YOBpB8ihxKmiGmfXa+SB4M8l9iyEegcp7Q==", + "license": "MIT", + "dependencies": { + "@rdfjs/sink": "^2.0.1", + "jsonld": "^9.0.0", + "readable-stream": "^4.7.0", + "stream-chunks": "^1.0.0" + } + }, + "node_modules/@rdfjs/serializer-ntriples": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-ntriples/-/serializer-ntriples-2.0.1.tgz", + "integrity": "sha512-G1ZI0qaN/MUHxeCwr59JscO2LdyIb6MNQdXOv7NFBZuodyHsxxhJRFmMVn+3SEXeNJbVeEEbWBrLglCUgJ8XjQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/sink": "^2.0.1", + "@rdfjs/to-ntriples": "^3.0.1", + "duplex-to": "^2.0.0", + "readable-stream": "^4.5.2" + } + }, + "node_modules/@rdfjs/serializer-turtle": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@rdfjs/serializer-turtle/-/serializer-turtle-1.1.5.tgz", + "integrity": "sha512-uvIFUOuMuk8JrJnng/tWKIQ+8XI6YLEms75YdvZ49LtIyyfbDqKz76EybgnD/zZYfMhVVkguKtheBC9h08g1PQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/prefix-map": "^0.1.1", + "@rdfjs/sink": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/to-ntriples": "^3.0.1", + "@rdfjs/tree": "^0.2.1", + "readable-stream": "^4.3.0", + "stream-chunks": "^1.0.0" + } + }, + "node_modules/@rdfjs/sink": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/sink/-/sink-2.0.1.tgz", + "integrity": "sha512-smzIFGF6EH1sLAJR9F3p2wMNrN44JjPeYAoITTJLqtuNC319K7IXaJ+qNLBGTtapZ/jvpx2Tks0TjcH9KrAvEA==", + "license": "MIT" + }, + "node_modules/@rdfjs/sink-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/sink-map/-/sink-map-2.0.1.tgz", + "integrity": "sha512-BwCTTsMN/tfQl6QzD2oHn9A08e4af+hlzAz/d5XXrlOkYMEDUAqFuh2Odj9EbayhAEeN4wA743Mj2yC0/s69rg==", + "license": "MIT" + }, + "node_modules/@rdfjs/term-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@rdfjs/term-map/-/term-map-2.0.2.tgz", + "integrity": "sha512-EJ2FmmdEUsSR/tU1nrizRLWzH24YzhuvesrbUWxC3Fs0ilYNdtTbg0RaFJDUnJF3HkbNBQe8Zrt/uvU/hcKnHg==", + "license": "MIT", + "dependencies": { + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/@rdfjs/term-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@rdfjs/term-set/-/term-set-2.0.3.tgz", + "integrity": "sha512-DyXrKWEx+mtAFUZVU7bc3Va6/KZ8PsIp0RVdyWT9jfDgI/HCvNisZaBtAcm+SYTC45o+7WLkbudkk1bfaKVB0A==", + "license": "MIT", + "dependencies": { + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/@rdfjs/to-ntriples": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/to-ntriples/-/to-ntriples-3.0.1.tgz", + "integrity": "sha512-gjoPAvh4j7AbGMjcDn/8R4cW+d/FPtbfbMM0uQXkyfBFtNUW2iVgrqsgJ65roLc54Y9A2TTFaeeTGSvY9a0HCQ==", + "license": "MIT" + }, + "node_modules/@rdfjs/traverser": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@rdfjs/traverser/-/traverser-0.1.4.tgz", + "integrity": "sha512-53QYlxiQIxH8k4jutjet1EjdZfyKCDSsfqnj2YejAJ1X8mLDMSOsneMM5savBwBR0ROfAhKVtZVb+pego+JLiw==", + "license": "MIT", + "dependencies": { + "@rdfjs/to-ntriples": "^3.0.1" + } + }, + "node_modules/@rdfjs/tree": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rdfjs/tree/-/tree-0.2.1.tgz", + "integrity": "sha512-J70CQ7R8Ivfs1FFUxtFN7ADb5wTMgbhn0O558NXSXQHItmSavT6cXmQlIokbmboU+grhu56iR/8Bl9do8LCq+w==", + "license": "MIT", + "dependencies": { + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/term-set": "^2.0.1" + } + }, + "node_modules/@rdfjs/types": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-2.0.1.tgz", + "integrity": "sha512-uyAzpugX7KekAXAHq26m3JlUIZJOC0uSBhpnefGV5i15bevDyyejoB7I+9MKeUrzXD8OOUI3+4FeV1wwQr5ihA==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@react-native-async-storage/async-storage": { + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/@react-native-async-storage/async-storage/-/async-storage-1.24.0.tgz", + "integrity": "sha512-W4/vbwUOYOjco0x3toB8QCr7EjIP6nE9G7o8PMguvvjYT5Awg09lyV4enACRx4s++PPulBiBSjL0KTFx2u0Z/g==", + "license": "MIT", + "optional": true, + "dependencies": { + "merge-options": "^3.0.4" + }, + "peerDependencies": { + "react-native": "^0.0.0-0 || >=0.60 <1.0" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", + "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@standard-schema/utils": "^0.3.0", + "immer": "^11.0.0", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "11.1.3", + "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.3.tgz", + "integrity": "sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@remix-run/node": { + "version": "2.17.4", + "resolved": "https://registry.npmjs.org/@remix-run/node/-/node-2.17.4.tgz", + "integrity": "sha512-9A29JaYiGHDEmaiQuD1IlO/TrQxnnkj98GpytihU+Nz6yTt6RwzzyMMqTAoasRd1dPD4OeSaSqbwkcim/eE76Q==", + "license": "MIT", + "dependencies": { + "@remix-run/server-runtime": "2.17.4", + "@remix-run/web-fetch": "^4.4.2", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie-signature": "^1.1.0", + "source-map-support": "^0.5.21", + "stream-slice": "^0.1.2", + "undici": "^6.21.2" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/router": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.23.2.tgz", + "integrity": "sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@remix-run/server-runtime": { + "version": "2.17.4", + "resolved": "https://registry.npmjs.org/@remix-run/server-runtime/-/server-runtime-2.17.4.tgz", + "integrity": "sha512-oCsFbPuISgh8KpPKsfBChzjcntvTz5L+ggq9VNYWX8RX3yA7OgQpKspRHOSxb05bw7m0Hx+L1KRHXjf3juKX8w==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.23.2", + "@types/cookie": "^0.6.0", + "@web3-storage/multipart-parser": "^1.0.0", + "cookie": "^0.7.2", + "set-cookie-parser": "^2.4.8", + "source-map": "^0.7.3", + "turbo-stream": "2.4.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "typescript": "^5.1.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@remix-run/server-runtime/node_modules/source-map": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.6.tgz", + "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 12" + } + }, + "node_modules/@remix-run/web-blob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-blob/-/web-blob-3.1.0.tgz", + "integrity": "sha512-owGzFLbqPH9PlKb8KvpNJ0NO74HWE2euAn61eEiyCXX/oteoVzTVSN8mpLgDjaxBf2btj5/nUllSUgpyd6IH6g==", + "license": "MIT", + "dependencies": { + "@remix-run/web-stream": "^1.1.0", + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-fetch": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@remix-run/web-fetch/-/web-fetch-4.4.2.tgz", + "integrity": "sha512-jgKfzA713/4kAW/oZ4bC3MoLWyjModOVDjFPNseVqcJKSafgIscrYL9G50SurEYLswPuoU3HzSbO0jQCMYWHhA==", + "license": "MIT", + "dependencies": { + "@remix-run/web-blob": "^3.1.0", + "@remix-run/web-file": "^3.1.0", + "@remix-run/web-form-data": "^3.1.0", + "@remix-run/web-stream": "^1.1.0", + "@web3-storage/multipart-parser": "^1.0.0", + "abort-controller": "^3.0.0", + "data-uri-to-buffer": "^3.0.1", + "mrmime": "^1.0.0" + }, + "engines": { + "node": "^10.17 || >=12.3" + } + }, + "node_modules/@remix-run/web-file": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-file/-/web-file-3.1.0.tgz", + "integrity": "sha512-dW2MNGwoiEYhlspOAXFBasmLeYshyAyhIdrlXBi06Duex5tDr3ut2LFKVj7tyHLmn8nnNwFf1BjNbkQpygC2aQ==", + "license": "MIT", + "dependencies": { + "@remix-run/web-blob": "^3.1.0" + } + }, + "node_modules/@remix-run/web-form-data": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-form-data/-/web-form-data-3.1.0.tgz", + "integrity": "sha512-NdeohLMdrb+pHxMQ/Geuzdp0eqPbea+Ieo8M8Jx2lGC6TBHsgHzYcBvr0LyPdPVycNRDEpWpiDdCOdCryo3f9A==", + "license": "MIT", + "dependencies": { + "web-encoding": "1.1.5" + } + }, + "node_modules/@remix-run/web-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@remix-run/web-stream/-/web-stream-1.1.0.tgz", + "integrity": "sha512-KRJtwrjRV5Bb+pM7zxcTJkhIqWWSy+MYsIxHK+0m5atcznsf15YwUBWHWulZerV2+vvHH1Lp1DD7pw6qKW8SgA==", + "license": "MIT", + "dependencies": { + "web-streams-polyfill": "^3.1.1" + } + }, + "node_modules/@reown/appkit": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.8.tgz", + "integrity": "sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.8", + "@reown/appkit-controllers": "1.7.8", + "@reown/appkit-pay": "1.7.8", + "@reown/appkit-polyfills": "1.7.8", + "@reown/appkit-scaffold-ui": "1.7.8", + "@reown/appkit-ui": "1.7.8", + "@reown/appkit-utils": "1.7.8", + "@reown/appkit-wallet": "1.7.8", + "@walletconnect/types": "2.21.0", + "@walletconnect/universal-provider": "2.21.0", + "bs58": "6.0.0", + "valtio": "1.13.2", + "viem": ">=2.29.0" + } + }, + "node_modules/@reown/appkit-common": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.8.tgz", + "integrity": "sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ==", + "license": "Apache-2.0", + "dependencies": { + "big.js": "6.2.2", + "dayjs": "1.11.13", + "viem": ">=2.29.0" + } + }, + "node_modules/@reown/appkit-controllers": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.8.tgz", + "integrity": "sha512-IdXlJlivrlj6m63VsGLsjtPHHsTWvKGVzWIP1fXZHVqmK+rZCBDjCi9j267Rb9/nYRGHWBtlFQhO8dK35WfeDA==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.8", + "@reown/appkit-wallet": "1.7.8", + "@walletconnect/universal-provider": "2.21.0", + "valtio": "1.13.2", + "viem": ">=2.29.0" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/core": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", + "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/sign-client": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", + "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.21.0", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/types": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", + "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/universal-provider": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", + "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.21.0", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "es-toolkit": "1.33.0", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", + "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", + "license": "Apache-2.0", + "dependencies": { + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-controllers/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-controllers/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/@reown/appkit-controllers/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-controllers/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/@reown/appkit-controllers/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-pay": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-pay/-/appkit-pay-1.7.8.tgz", + "integrity": "sha512-OSGQ+QJkXx0FEEjlpQqIhT8zGJKOoHzVnyy/0QFrl3WrQTjCzg0L6+i91Ad5Iy1zb6V5JjqtfIFpRVRWN4M3pw==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.8", + "@reown/appkit-controllers": "1.7.8", + "@reown/appkit-ui": "1.7.8", + "@reown/appkit-utils": "1.7.8", + "lit": "3.3.0", + "valtio": "1.13.2" + } + }, + "node_modules/@reown/appkit-polyfills": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.8.tgz", + "integrity": "sha512-W/kq786dcHHAuJ3IV2prRLEgD/2iOey4ueMHf1sIFjhhCGMynMkhsOhQMUH0tzodPqUgAC494z4bpIDYjwWXaA==", + "license": "Apache-2.0", + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/@reown/appkit-scaffold-ui": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.8.tgz", + "integrity": "sha512-RCeHhAwOrIgcvHwYlNWMcIDibdI91waaoEYBGw71inE0kDB8uZbE7tE6DAXJmDkvl0qPh+DqlC4QbJLF1FVYdQ==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.8", + "@reown/appkit-controllers": "1.7.8", + "@reown/appkit-ui": "1.7.8", + "@reown/appkit-utils": "1.7.8", + "@reown/appkit-wallet": "1.7.8", + "lit": "3.3.0" + } + }, + "node_modules/@reown/appkit-ui": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.8.tgz", + "integrity": "sha512-1hjCKjf6FLMFzrulhl0Y9Vb9Fu4royE+SXCPSWh4VhZhWqlzUFc7kutnZKx8XZFVQH4pbBvY62SpRC93gqoHow==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.8", + "@reown/appkit-controllers": "1.7.8", + "@reown/appkit-wallet": "1.7.8", + "lit": "3.3.0", + "qrcode": "1.5.3" + } + }, + "node_modules/@reown/appkit-ui/node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@reown/appkit-utils": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.8.tgz", + "integrity": "sha512-8X7UvmE8GiaoitCwNoB86pttHgQtzy4ryHZM9kQpvjQ0ULpiER44t1qpVLXNM4X35O0v18W0Dk60DnYRMH2WRw==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.8", + "@reown/appkit-controllers": "1.7.8", + "@reown/appkit-polyfills": "1.7.8", + "@reown/appkit-wallet": "1.7.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/universal-provider": "2.21.0", + "valtio": "1.13.2", + "viem": ">=2.29.0" + }, + "peerDependencies": { + "valtio": "1.13.2" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", + "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/sign-client": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", + "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.21.0", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/types": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", + "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/universal-provider": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", + "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.21.0", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "es-toolkit": "1.33.0", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", + "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", + "license": "Apache-2.0", + "dependencies": { + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" + } + }, + "node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-utils/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-utils/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/@reown/appkit-utils/node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/@reown/appkit-utils/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-utils/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/@reown/appkit-utils/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@reown/appkit-wallet": { + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.8.tgz", + "integrity": "sha512-kspz32EwHIOT/eg/ZQbFPxgXq0B/olDOj3YMu7gvLEFz4xyOFd/wgzxxAXkp5LbG4Cp++s/elh79rVNmVFdB9A==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.8", + "@reown/appkit-polyfills": "1.7.8", + "@walletconnect/logger": "2.1.2", + "zod": "3.22.4" + } + }, + "node_modules/@reown/appkit-wallet/node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/@reown/appkit/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@reown/appkit/node_modules/@walletconnect/core": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", + "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@reown/appkit/node_modules/@walletconnect/sign-client": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", + "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.21.0", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit/node_modules/@walletconnect/types": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", + "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", + "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.21.0", + "@walletconnect/types": "2.21.0", + "@walletconnect/utils": "2.21.0", + "es-toolkit": "1.33.0", + "events": "3.3.0" + } + }, + "node_modules/@reown/appkit/node_modules/@walletconnect/utils": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", + "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", + "license": "Apache-2.0", + "dependencies": { + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.0", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" + } + }, + "node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } + }, + "node_modules/@reown/appkit/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/@reown/appkit/node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/@reown/appkit/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@reown/appkit/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } + }, + "node_modules/@reown/appkit/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rubensworks/saxes": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@rubensworks/saxes/-/saxes-6.0.1.tgz", + "integrity": "sha512-UW4OTIsOtJ5KSXo2Tchi4lhZqu+tlHrOAs4nNti7CrtB53kAZl3/hyrTi6HkMihxdbDM6m2Zc3swc/ZewEe1xw==", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.12" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.15.0.tgz", + "integrity": "sha512-ojSshQPKwVvSMR8yT2L/QtUkV5SXi/IfDiJ4/8d6UbTPjiHVmxZzUAzGD8Tzks1b9+qQkZa0isUOvYObedITaw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@safe-global/safe-apps-provider": { + "version": "0.18.6", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.6.tgz", + "integrity": "sha512-4LhMmjPWlIO8TTDC2AwLk44XKXaK6hfBTWyljDm0HQ6TWlOEijVWNrt2s3OCVMSxlXAcEzYfqyu1daHZooTC2Q==", + "license": "MIT", + "dependencies": { + "@safe-global/safe-apps-sdk": "^9.1.0", + "events": "^3.3.0" + } + }, + "node_modules/@safe-global/safe-apps-sdk": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", + "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", + "license": "MIT", + "dependencies": { + "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", + "viem": "^2.1.1" + } + }, + "node_modules/@safe-global/safe-gateway-typescript-sdk": { + "version": "3.23.1", + "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.23.1.tgz", + "integrity": "sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw==", + "license": "MIT", + "engines": { + "node": ">=16" + } + }, + "node_modules/@scure/base": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", + "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", + "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.4.0", + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip32/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", + "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/bip39/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@sec-ant/readable-stream": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@sec-ant/readable-stream/-/readable-stream-0.4.1.tgz", + "integrity": "sha512-831qok9r2t8AlxLko40y2ebgSDhenenCatLVeW/uBtnHPyhHOvG0C7TvfgecV+wHzIm5KUICgzmVpWS+IMEAeg==", + "license": "MIT" + }, + "node_modules/@segment/analytics-core": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@segment/analytics-core/-/analytics-core-1.8.0.tgz", + "integrity": "sha512-6CrccsYRY33I3mONN2ZW8SdBpbLtu1Ict3xR+n0FemYF5RB/jG7pW6jOvDXULR8kuYMzMmGOP4HvlyUmf3qLpg==", + "license": "MIT", + "dependencies": { + "@lukeed/uuid": "^2.0.0", + "@segment/analytics-generic-utils": "1.2.0", + "dset": "^3.1.4", + "tslib": "^2.4.1" + } + }, + "node_modules/@segment/analytics-generic-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@segment/analytics-generic-utils/-/analytics-generic-utils-1.2.0.tgz", + "integrity": "sha512-DfnW6mW3YQOLlDQQdR89k4EqfHb0g/3XvBXkovH1FstUN93eL1kfW9CsDcVQyH3bAC5ZsFyjA/o/1Q2j0QeoWw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.1" + } + }, + "node_modules/@segment/analytics-next": { + "version": "1.74.0", + "resolved": "https://registry.npmjs.org/@segment/analytics-next/-/analytics-next-1.74.0.tgz", + "integrity": "sha512-dhSwm+kahwnsHZmhcInu6wTJZFCLtG1VDCw0uiQRuKL5SDRRNEMORvKErV6bycXHWLelaYQVIMRcHH2Y9lk48A==", + "license": "MIT", + "dependencies": { + "@lukeed/uuid": "^2.0.0", + "@segment/analytics-core": "1.8.0", + "@segment/analytics-generic-utils": "1.2.0", + "@segment/analytics.js-video-plugins": "^0.2.1", + "@segment/facade": "^3.4.9", + "dset": "^3.1.4", + "js-cookie": "3.0.1", + "node-fetch": "^2.6.7", + "tslib": "^2.4.1", + "unfetch": "^4.1.0" + } + }, + "node_modules/@segment/analytics-next/node_modules/js-cookie": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.1.tgz", + "integrity": "sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==", + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/@segment/analytics.js-video-plugins": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@segment/analytics.js-video-plugins/-/analytics.js-video-plugins-0.2.1.tgz", + "integrity": "sha512-lZwCyEXT4aaHBLNK433okEKdxGAuyrVmop4BpQqQSJuRz0DglPZgd9B/XjiiWs1UyOankg2aNYMN3VcS8t4eSQ==", + "license": "ISC", + "dependencies": { + "unfetch": "^3.1.1" + } + }, + "node_modules/@segment/analytics.js-video-plugins/node_modules/unfetch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-3.1.2.tgz", + "integrity": "sha512-L0qrK7ZeAudGiKYw6nzFjnJ2D5WHblUBwmHIqtPS6oKUd+Hcpk7/hKsSmcHsTlpd1TbTNsiRBUKRq3bHLNIqIw==", + "license": "MIT" + }, + "node_modules/@segment/facade": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/@segment/facade/-/facade-3.4.10.tgz", + "integrity": "sha512-xVQBbB/lNvk/u8+ey0kC/+g8pT3l0gCT8O2y9Z+StMMn3KAFAQ9w8xfgef67tJybktOKKU7pQGRPolRM1i1pdA==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@segment/isodate-traverse": "^1.1.1", + "inherits": "^2.0.4", + "new-date": "^1.0.3", + "obj-case": "0.2.1" + } + }, + "node_modules/@segment/isodate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@segment/isodate/-/isodate-1.0.3.tgz", + "integrity": "sha512-BtanDuvJqnACFkeeYje7pWULVv8RgZaqKHWwGFnL/g/TH/CcZjkIVTfGDp/MAxmilYHUkrX70SqwnYSTNEaN7A==", + "license": "SEE LICENSE IN LICENSE" + }, + "node_modules/@segment/isodate-traverse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@segment/isodate-traverse/-/isodate-traverse-1.1.1.tgz", + "integrity": "sha512-+G6e1SgAUkcq0EDMi+SRLfT48TNlLPF3QnSgFGVs0V9F3o3fq/woQ2rHFlW20W0yy5NnCUH0QGU3Am2rZy/E3w==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@segment/isodate": "^1.0.3" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.33.22", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.33.22.tgz", + "integrity": "sha512-auUj4k+f4pyrIVf4GW5UKquSZFHJWri06QgARy9C0t9ZTjJLIuNIrr1yl9bWcJWJ1Gz1vOvYN1D+QPaIlNMVkQ==", + "license": "MIT" + }, + "node_modules/@sindresorhus/fnv1a": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/fnv1a/-/fnv1a-3.1.0.tgz", + "integrity": "sha512-KV321z5m/0nuAg83W1dPLy85HpHDk7Sdi4fJbwvacWsEhAh+rZUW4ZfGcXmUIvjZg4ss2bcwNlRhJ7GBEUG08w==", + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "license": "MIT" + }, + "node_modules/@solana-mobile/mobile-wallet-adapter-protocol": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@solana-mobile/mobile-wallet-adapter-protocol/-/mobile-wallet-adapter-protocol-2.2.5.tgz", + "integrity": "sha512-kCI+0/umWm98M9g12ndpS56U6wBzq4XdhobCkDPF8qRDYX/iTU8CD+QMcalh7VgRT7GWEmySQvQdaugM0Chf0g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/codecs-strings": "^4.0.0", + "@solana/wallet-standard": "^1.1.2", + "@solana/wallet-standard-util": "^1.1.1", + "@wallet-standard/core": "^1.0.3", + "js-base64": "^3.7.5" + }, + "peerDependencies": { + "react-native": ">0.69" + } + }, + "node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@solana-mobile/mobile-wallet-adapter-protocol-web3js/-/mobile-wallet-adapter-protocol-web3js-2.2.5.tgz", + "integrity": "sha512-xfQl6Kee0ZXagUG5mpy+bMhQTNf2LAzF65m5SSgNJp47y/nP9GdXWi9blVH8IPP+QjF/+DnCtURaXS14bk3WJw==", + "license": "Apache-2.0", + "dependencies": { + "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.5", + "bs58": "^5.0.0", + "js-base64": "^3.7.5" + }, + "peerDependencies": { + "@solana/web3.js": "^1.58.0" + } + }, + "node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/node_modules/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT" + }, + "node_modules/@solana-mobile/mobile-wallet-adapter-protocol-web3js/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@solana-mobile/wallet-adapter-mobile": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@solana-mobile/wallet-adapter-mobile/-/wallet-adapter-mobile-2.2.5.tgz", + "integrity": "sha512-Zpzfwm3N4FfI63ZMs2qZChQ1j0z+p2prkZbSU51NyTnE+K9l9sDAl8RmRCOWnE29y+/AN10WuQZQoIAccHVOFg==", + "license": "Apache-2.0", + "dependencies": { + "@solana-mobile/mobile-wallet-adapter-protocol-web3js": "^2.2.5", + "@solana-mobile/wallet-standard-mobile": "^0.4.3", + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-standard-features": "^1.2.0", + "js-base64": "^3.7.5" + }, + "optionalDependencies": { + "@react-native-async-storage/async-storage": "^1.17.7" + }, + "peerDependencies": { + "@solana/web3.js": "^1.58.0" + } + }, + "node_modules/@solana-mobile/wallet-standard-mobile": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@solana-mobile/wallet-standard-mobile/-/wallet-standard-mobile-0.4.4.tgz", + "integrity": "sha512-LMvqkS5/aEH+EiDje9Dk351go6wO3POysgmobM4qm8RsG5s6rDAW3U0zA+5f2coGCTyRx8BKE1I/9nHlwtBuow==", + "license": "Apache-2.0", + "dependencies": { + "@solana-mobile/mobile-wallet-adapter-protocol": "^2.2.5", + "@solana/wallet-standard-chains": "^1.1.0", + "@solana/wallet-standard-features": "^1.2.0", + "@wallet-standard/base": "^1.0.1", + "@wallet-standard/features": "^1.0.3", + "bs58": "^5.0.0", + "js-base64": "^3.7.5", + "qrcode": "^1.5.4" + } + }, + "node_modules/@solana-mobile/wallet-standard-mobile/node_modules/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT" + }, + "node_modules/@solana-mobile/wallet-standard-mobile/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@solana-program/compute-budget": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@solana-program/compute-budget/-/compute-budget-0.8.0.tgz", + "integrity": "sha512-qPKxdxaEsFxebZ4K5RPuy7VQIm/tfJLa1+Nlt3KNA8EYQkz9Xm8htdoEaXVrer9kpgzzp9R3I3Bh6omwCM06tQ==", + "license": "Apache-2.0", + "peerDependencies": { + "@solana/kit": "^2.1.0" + } + }, + "node_modules/@solana-program/stake": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@solana-program/stake/-/stake-0.2.1.tgz", + "integrity": "sha512-ssNPsJv9XHaA+L7ihzmWGYcm/+XYURQ8UA3wQMKf6ccEHyHOUgoglkkDU/BoA0+wul6HxZUN0tHFymC0qFw6sg==", + "license": "MIT", + "peerDependencies": { + "@solana/kit": "^2.1.0" + } + }, + "node_modules/@solana-program/system": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@solana-program/system/-/system-0.7.0.tgz", + "integrity": "sha512-FKTBsKHpvHHNc1ATRm7SlC5nF/VdJtOSjldhcyfMN9R7xo712Mo2jHIzvBgn8zQO5Kg0DcWuKB7268Kv1ocicw==", + "license": "Apache-2.0", + "peerDependencies": { + "@solana/kit": "^2.1.0" + } + }, + "node_modules/@solana-program/token": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@solana-program/token/-/token-0.5.1.tgz", + "integrity": "sha512-bJvynW5q9SFuVOZ5vqGVkmaPGA0MCC+m9jgJj1nk5m20I389/ms69ASnhWGoOPNcie7S9OwBX0gTj2fiyWpfag==", + "license": "Apache-2.0", + "peerDependencies": { + "@solana/kit": "^2.1.0" + } + }, + "node_modules/@solana-program/token-2022": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@solana-program/token-2022/-/token-2022-0.4.2.tgz", + "integrity": "sha512-zIpR5t4s9qEU3hZKupzIBxJ6nUV5/UVyIT400tu9vT1HMs5JHxaTTsb5GUhYjiiTvNwU0MQavbwc4Dl29L0Xvw==", + "license": "Apache-2.0", + "peerDependencies": { + "@solana/kit": "^2.1.0", + "@solana/sysvars": "^2.1.0" + } + }, + "node_modules/@solana/accounts": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/accounts/-/accounts-2.3.0.tgz", + "integrity": "sha512-QgQTj404Z6PXNOyzaOpSzjgMOuGwG8vC66jSDB+3zHaRcEPRVRd2sVSrd1U6sHtnV3aiaS6YyDuPQMheg4K2jw==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/rpc-spec": "2.3.0", + "@solana/rpc-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/accounts/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/accounts/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/accounts/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/accounts/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/addresses": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/addresses/-/addresses-2.3.0.tgz", + "integrity": "sha512-ypTNkY2ZaRFpHLnHAgaW8a83N0/WoqdFvCqf4CQmnMdFsZSdC7qOwcbd7YzdaQn9dy+P2hybewzB+KP7LutxGA==", + "license": "MIT", + "dependencies": { + "@solana/assertions": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/nominal-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/addresses/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/addresses/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/addresses/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/addresses/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/assertions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/assertions/-/assertions-2.3.0.tgz", + "integrity": "sha512-Ekoet3khNg3XFLN7MIz8W31wPQISpKUGDGTylLptI+JjCDWx3PIa88xjEMqFo02WJ8sBj2NLV64Xg1sBcsHjZQ==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/assertions/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "license": "MIT", + "dependencies": { + "buffer": "~6.0.3" + }, + "engines": { + "node": ">=5.10" + } + }, + "node_modules/@solana/codecs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs/-/codecs-2.3.0.tgz", + "integrity": "sha512-JVqGPkzoeyU262hJGdH64kNLH0M+Oew2CIPOa/9tR3++q2pEd4jU2Rxdfye9sd0Ce3XJrR5AIa8ZfbyQXzjh+g==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-data-structures": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/options": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs-core": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-4.0.0.tgz", + "integrity": "sha512-28kNUsyIlhU3MO3/7ZLDqeJf2YAm32B4tnTjl5A9HrbBqsTZ+upT/RzxZGP1MMm7jnPuIKCMwmTpsyqyR6IUpw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "4.0.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs-data-structures": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-data-structures/-/codecs-data-structures-2.3.0.tgz", + "integrity": "sha512-qvU5LE5DqEdYMYgELRHv+HMOx73sSoV1ZZkwIrclwUmwTbTaH8QAJURBj0RhQ/zCne7VuLLOZFFGv6jGigWhSw==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs-data-structures/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs-data-structures/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs-data-structures/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs-numbers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-4.0.0.tgz", + "integrity": "sha512-z9zpjtcwzqT9rbkKVZpkWB5/0V7+6YRKs6BccHkGJlaDx8Pe/+XOvPi2rEdXPqrPd9QWb5Xp1iBfcgaDMyiOiA==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "4.0.0", + "@solana/errors": "4.0.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs-strings": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-4.0.0.tgz", + "integrity": "sha512-XvyD+sQ1zyA0amfxbpoFZsucLoe+yASQtDiLUGMDg5TZ82IHE3B7n82jE8d8cTAqi0HgqQiwU13snPhvg1O0Ow==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "4.0.0", + "@solana/codecs-numbers": "4.0.0", + "@solana/errors": "4.0.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/codecs/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/errors": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-4.0.0.tgz", + "integrity": "sha512-3YEtvcMvtcnTl4HahqLt0VnaGVf7vVWOnt6/uPky5e0qV6BlxDSbGkbBzttNjxLXHognV0AQi3pjvrtfUnZmbg==", + "license": "MIT", + "dependencies": { + "chalk": "5.6.2", + "commander": "14.0.1" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/fast-stable-stringify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/fast-stable-stringify/-/fast-stable-stringify-2.3.0.tgz", + "integrity": "sha512-KfJPrMEieUg6D3hfQACoPy0ukrAV8Kio883llt/8chPEG3FVTX9z/Zuf4O01a15xZmBbmQ7toil2Dp0sxMJSxw==", + "license": "MIT", + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/functional": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/functional/-/functional-2.3.0.tgz", + "integrity": "sha512-AgsPh3W3tE+nK3eEw/W9qiSfTGwLYEvl0rWaxHht/lRcuDVwfKRzeSa5G79eioWFFqr+pTtoCr3D3OLkwKz02Q==", + "license": "MIT", + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/instructions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/instructions/-/instructions-2.3.0.tgz", + "integrity": "sha512-PLMsmaIKu7hEAzyElrk2T7JJx4D+9eRwebhFZpy2PXziNSmFF929eRHKUsKqBFM3cYR1Yy3m6roBZfA+bGE/oQ==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/instructions/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/instructions/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/keys": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/keys/-/keys-2.3.0.tgz", + "integrity": "sha512-ZVVdga79pNH+2pVcm6fr2sWz9HTwfopDVhYb0Lh3dh+WBmJjwkabXEIHey2rUES7NjFa/G7sV8lrUn/v8LDCCQ==", + "license": "MIT", + "dependencies": { + "@solana/assertions": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/nominal-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/keys/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/keys/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/keys/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/keys/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/kit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/kit/-/kit-2.3.0.tgz", + "integrity": "sha512-sb6PgwoW2LjE5oTFu4lhlS/cGt/NB3YrShEyx7JgWFWysfgLdJnhwWThgwy/4HjNsmtMrQGWVls0yVBHcMvlMQ==", + "license": "MIT", + "dependencies": { + "@solana/accounts": "2.3.0", + "@solana/addresses": "2.3.0", + "@solana/codecs": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/functional": "2.3.0", + "@solana/instructions": "2.3.0", + "@solana/keys": "2.3.0", + "@solana/programs": "2.3.0", + "@solana/rpc": "2.3.0", + "@solana/rpc-parsed-types": "2.3.0", + "@solana/rpc-spec-types": "2.3.0", + "@solana/rpc-subscriptions": "2.3.0", + "@solana/rpc-types": "2.3.0", + "@solana/signers": "2.3.0", + "@solana/sysvars": "2.3.0", + "@solana/transaction-confirmation": "2.3.0", + "@solana/transaction-messages": "2.3.0", + "@solana/transactions": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/kit/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/nominal-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/nominal-types/-/nominal-types-2.3.0.tgz", + "integrity": "sha512-uKlMnlP4PWW5UTXlhKM8lcgIaNj8dvd8xO4Y9l+FVvh9RvW2TO0GwUO6JCo7JBzCB0PSqRJdWWaQ8pu1Ti/OkA==", + "license": "MIT", + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/options": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/options/-/options-2.3.0.tgz", + "integrity": "sha512-PPnnZBRCWWoZQ11exPxf//DRzN2C6AoFsDI/u2AsQfYih434/7Kp4XLpfOMT/XESi+gdBMFNNfbES5zg3wAIkw==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-data-structures": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/options/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/options/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/options/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/options/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/programs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/programs/-/programs-2.3.0.tgz", + "integrity": "sha512-UXKujV71VCI5uPs+cFdwxybtHZAIZyQkqDiDnmK+DawtOO9mBn4Nimdb/6RjR2CXT78mzO9ZCZ3qfyX+ydcB7w==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/programs/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/promises": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/promises/-/promises-2.3.0.tgz", + "integrity": "sha512-GjVgutZKXVuojd9rWy1PuLnfcRfqsaCm7InCiZc8bqmJpoghlyluweNc7ml9Y5yQn1P2IOyzh9+p/77vIyNybQ==", + "license": "MIT", + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc/-/rpc-2.3.0.tgz", + "integrity": "sha512-ZWN76iNQAOCpYC7yKfb3UNLIMZf603JckLKOOLTHuy9MZnTN8XV6uwvDFhf42XvhglgUjGCEnbUqWtxQ9pa/pQ==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0", + "@solana/fast-stable-stringify": "2.3.0", + "@solana/functional": "2.3.0", + "@solana/rpc-api": "2.3.0", + "@solana/rpc-spec": "2.3.0", + "@solana/rpc-spec-types": "2.3.0", + "@solana/rpc-transformers": "2.3.0", + "@solana/rpc-transport-http": "2.3.0", + "@solana/rpc-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-api": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-api/-/rpc-api-2.3.0.tgz", + "integrity": "sha512-UUdiRfWoyYhJL9PPvFeJr4aJ554ob2jXcpn4vKmRVn9ire0sCbpQKYx6K8eEKHZWXKrDW8IDspgTl0gT/aJWVg==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/keys": "2.3.0", + "@solana/rpc-parsed-types": "2.3.0", + "@solana/rpc-spec": "2.3.0", + "@solana/rpc-transformers": "2.3.0", + "@solana/rpc-types": "2.3.0", + "@solana/transaction-messages": "2.3.0", + "@solana/transactions": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-api/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-api/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-api/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-api/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-parsed-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-parsed-types/-/rpc-parsed-types-2.3.0.tgz", + "integrity": "sha512-B5pHzyEIbBJf9KHej+zdr5ZNAdSvu7WLU2lOUPh81KHdHQs6dEb310LGxcpCc7HVE8IEdO20AbckewDiAN6OCg==", + "license": "MIT", + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-spec": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-spec/-/rpc-spec-2.3.0.tgz", + "integrity": "sha512-fA2LMX4BMixCrNB2n6T83AvjZ3oUQTu7qyPLyt8gHQaoEAXs8k6GZmu6iYcr+FboQCjUmRPgMaABbcr9j2J9Sw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0", + "@solana/rpc-spec-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-spec-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-spec-types/-/rpc-spec-types-2.3.0.tgz", + "integrity": "sha512-xQsb65lahjr8Wc9dMtP7xa0ZmDS8dOE2ncYjlvfyw/h4mpdXTUdrSMi6RtFwX33/rGuztQ7Hwaid5xLNSLvsFQ==", + "license": "MIT", + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-spec/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-subscriptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions/-/rpc-subscriptions-2.3.0.tgz", + "integrity": "sha512-Uyr10nZKGVzvCOqwCZgwYrzuoDyUdwtgQRefh13pXIrdo4wYjVmoLykH49Omt6abwStB0a4UL5gX9V4mFdDJZg==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0", + "@solana/fast-stable-stringify": "2.3.0", + "@solana/functional": "2.3.0", + "@solana/promises": "2.3.0", + "@solana/rpc-spec-types": "2.3.0", + "@solana/rpc-subscriptions-api": "2.3.0", + "@solana/rpc-subscriptions-channel-websocket": "2.3.0", + "@solana/rpc-subscriptions-spec": "2.3.0", + "@solana/rpc-transformers": "2.3.0", + "@solana/rpc-types": "2.3.0", + "@solana/subscribable": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-subscriptions-api": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-api/-/rpc-subscriptions-api-2.3.0.tgz", + "integrity": "sha512-9mCjVbum2Hg9KGX3LKsrI5Xs0KX390lS+Z8qB80bxhar6MJPugqIPH8uRgLhCW9GN3JprAfjRNl7our8CPvsPQ==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/keys": "2.3.0", + "@solana/rpc-subscriptions-spec": "2.3.0", + "@solana/rpc-transformers": "2.3.0", + "@solana/rpc-types": "2.3.0", + "@solana/transaction-messages": "2.3.0", + "@solana/transactions": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-subscriptions-channel-websocket": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-channel-websocket/-/rpc-subscriptions-channel-websocket-2.3.0.tgz", + "integrity": "sha512-2oL6ceFwejIgeWzbNiUHI2tZZnaOxNTSerszcin7wYQwijxtpVgUHiuItM/Y70DQmH9sKhmikQp+dqeGalaJxw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0", + "@solana/functional": "2.3.0", + "@solana/rpc-subscriptions-spec": "2.3.0", + "@solana/subscribable": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3", + "ws": "^8.18.0" + } + }, + "node_modules/@solana/rpc-subscriptions-channel-websocket/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-subscriptions-spec": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-subscriptions-spec/-/rpc-subscriptions-spec-2.3.0.tgz", + "integrity": "sha512-rdmVcl4PvNKQeA2l8DorIeALCgJEMSu7U8AXJS1PICeb2lQuMeaR+6cs/iowjvIB0lMVjYN2sFf6Q3dJPu6wWg==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0", + "@solana/promises": "2.3.0", + "@solana/rpc-spec-types": "2.3.0", + "@solana/subscribable": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-subscriptions-spec/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-subscriptions/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-transformers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-transformers/-/rpc-transformers-2.3.0.tgz", + "integrity": "sha512-UuHYK3XEpo9nMXdjyGKkPCOr7WsZsxs7zLYDO1A5ELH3P3JoehvrDegYRAGzBS2VKsfApZ86ZpJToP0K3PhmMA==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0", + "@solana/functional": "2.3.0", + "@solana/nominal-types": "2.3.0", + "@solana/rpc-spec-types": "2.3.0", + "@solana/rpc-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-transformers/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-transport-http": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-transport-http/-/rpc-transport-http-2.3.0.tgz", + "integrity": "sha512-HFKydmxGw8nAF5N+S0NLnPBDCe5oMDtI2RAmW8DMqP4U3Zxt2XWhvV1SNkAldT5tF0U1vP+is6fHxyhk4xqEvg==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0", + "@solana/rpc-spec": "2.3.0", + "@solana/rpc-spec-types": "2.3.0", + "undici-types": "^7.11.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-transport-http/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-types": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/rpc-types/-/rpc-types-2.3.0.tgz", + "integrity": "sha512-O09YX2hED2QUyGxrMOxQ9GzH1LlEwwZWu69QbL4oYmIf6P5dzEEHcqRY6L1LsDVqc/dzAdEs/E1FaPrcIaIIPw==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/nominal-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-types/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-types/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-types/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc-types/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/rpc/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/signers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/signers/-/signers-2.3.0.tgz", + "integrity": "sha512-OSv6fGr/MFRx6J+ZChQMRqKNPGGmdjkqarKkRzkwmv7v8quWsIRnJT5EV8tBy3LI4DLO/A8vKiNSPzvm1TdaiQ==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/instructions": "2.3.0", + "@solana/keys": "2.3.0", + "@solana/nominal-types": "2.3.0", + "@solana/transaction-messages": "2.3.0", + "@solana/transactions": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/signers/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/signers/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/subscribable": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/subscribable/-/subscribable-2.3.0.tgz", + "integrity": "sha512-DkgohEDbMkdTWiKAoatY02Njr56WXx9e/dKKfmne8/Ad6/2llUIrax78nCdlvZW9quXMaXPTxZvdQqo9N669Og==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/subscribable/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/sysvars": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/sysvars/-/sysvars-2.3.0.tgz", + "integrity": "sha512-LvjADZrpZ+CnhlHqfI5cmsRzX9Rpyb1Ox2dMHnbsRNzeKAMhu9w4ZBIaeTdO322zsTr509G1B+k2ABD3whvUBA==", + "license": "MIT", + "dependencies": { + "@solana/accounts": "2.3.0", + "@solana/codecs": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/rpc-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/sysvars/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-confirmation": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/transaction-confirmation/-/transaction-confirmation-2.3.0.tgz", + "integrity": "sha512-UiEuiHCfAAZEKdfne/XljFNJbsKAe701UQHKXEInYzIgBjRbvaeYZlBmkkqtxwcasgBTOmEaEKT44J14N9VZDw==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/keys": "2.3.0", + "@solana/promises": "2.3.0", + "@solana/rpc": "2.3.0", + "@solana/rpc-subscriptions": "2.3.0", + "@solana/rpc-types": "2.3.0", + "@solana/transaction-messages": "2.3.0", + "@solana/transactions": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-confirmation/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-confirmation/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-confirmation/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-confirmation/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-messages": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/transaction-messages/-/transaction-messages-2.3.0.tgz", + "integrity": "sha512-bgqvWuy3MqKS5JdNLH649q+ngiyOu5rGS3DizSnWwYUd76RxZl1kN6CoqHSrrMzFMvis6sck/yPGG3wqrMlAww==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/codecs-data-structures": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/functional": "2.3.0", + "@solana/instructions": "2.3.0", + "@solana/nominal-types": "2.3.0", + "@solana/rpc-types": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-messages/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-messages/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transaction-messages/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transactions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/transactions/-/transactions-2.3.0.tgz", + "integrity": "sha512-LnTvdi8QnrQtuEZor5Msje61sDpPstTVwKg4y81tNxDhiyomjuvnSNLAq6QsB9gIxUqbNzPZgOG9IU4I4/Uaug==", + "license": "MIT", + "dependencies": { + "@solana/addresses": "2.3.0", + "@solana/codecs-core": "2.3.0", + "@solana/codecs-data-structures": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/codecs-strings": "2.3.0", + "@solana/errors": "2.3.0", + "@solana/functional": "2.3.0", + "@solana/instructions": "2.3.0", + "@solana/keys": "2.3.0", + "@solana/nominal-types": "2.3.0", + "@solana/rpc-types": "2.3.0", + "@solana/transaction-messages": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transactions/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transactions/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transactions/node_modules/@solana/codecs-strings": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-strings/-/codecs-strings-2.3.0.tgz", + "integrity": "sha512-y5pSBYwzVziXu521hh+VxqUtp0hYGTl1eWGoc1W+8mdvBdC1kTqm/X7aYQw33J42hw03JjryvYOvmGgk3Qz/Ug==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/codecs-numbers": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "fastestsmallesttextencoderdecoder": "^1.0.22", + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/transactions/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/wallet-adapter-alpha": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-alpha/-/wallet-adapter-alpha-0.1.14.tgz", + "integrity": "sha512-ZSEvQmTdkiXPeHWIHbvdU4yDC5PfyTqG/1ZKIf2Uo6c+HslMkYer7mf9HUqJJ80dU68XqBbzBlIv34LCDVWijw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-avana": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-avana/-/wallet-adapter-avana-0.1.17.tgz", + "integrity": "sha512-I3h+dPWVTEylOWoY2qxyI7mhcn3QNL+tkYLrZLi3+PBaoz79CVIVFi3Yb4NTKYDP+hz7/Skm/ZsomSY5SJua5A==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-base": { + "version": "0.9.27", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.27.tgz", + "integrity": "sha512-kXjeNfNFVs/NE9GPmysBRKQ/nf+foSaq3kfVSeMcO/iVgigyRmB551OjU3WyAolLG/1jeEfKLqF9fKwMCRkUqg==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-standard-features": "^1.3.0", + "@wallet-standard/base": "^1.1.0", + "@wallet-standard/features": "^1.1.0", + "eventemitter3": "^5.0.1" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-bitkeep": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-0.3.24.tgz", + "integrity": "sha512-LQvS9pr/Qm95w8XFAvxqgYKVndgifwlQYV1+Exc0XMnbxpw40blMTMKxSfiiPq78e3Zi2XWRApQyqtFUafOK5g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-bitpie": { + "version": "0.5.22", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-bitpie/-/wallet-adapter-bitpie-0.5.22.tgz", + "integrity": "sha512-S1dSg041f8CKqzy7HQy/BPhY56ZZiZeanmdx4S6fMDpf717sgkCa7jBjLFtx8ugZzO/VpYQJtRXtKEtHpx0X0A==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-clover": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-clover/-/wallet-adapter-clover-0.4.23.tgz", + "integrity": "sha512-0PIAP0g1CmSLyphwXLHjePpKiB1dg+veWIbkziIdLHwSsLq6aBr2FimC/ljrbtqrduL1bH7sphNZOGE0IF0JtQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-coin98": { + "version": "0.5.24", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-coin98/-/wallet-adapter-coin98-0.5.24.tgz", + "integrity": "sha512-lEHk2L00PitymreyACv5ShGyyeG/NLhryohcke4r/8yDL3m2XTOeyzkhd1/6mDWavMhno1WNivHxByNHDSQhEw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27", + "bs58": "^6.0.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-coinbase": { + "version": "0.1.23", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-coinbase/-/wallet-adapter-coinbase-0.1.23.tgz", + "integrity": "sha512-vCJi/clbq1VVgydPFnHGAc2jdEhDAClYmhEAR4RJp9UHBg+MEQUl1WW8PVIREY5uOzJHma0qEiyummIfyt0b4A==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-coinhub": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-coinhub/-/wallet-adapter-coinhub-0.3.22.tgz", + "integrity": "sha512-an/0FyUIY5xWfPYcOxjaVV11IbCCeErURbw+nHyWV89kw/CuiaYwaWXxATGdj8XJjg/UPsPbiLAGyKkdOMjjfw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-fractal": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-fractal/-/wallet-adapter-fractal-0.1.12.tgz", + "integrity": "sha512-gu9deyHxwrRfBt6VqaCVIN7FmViZn47NwORuja4wc95OX2ZxsjGE6hEs1bJsfy7uf/CsUjwDe1V309r7PlKz8g==", + "license": "Apache-2.0", + "dependencies": { + "@fractalwagmi/solana-wallet-adapter": "^0.1.1", + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-huobi": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-huobi/-/wallet-adapter-huobi-0.1.19.tgz", + "integrity": "sha512-wLv2E/VEYhgVot7qyRop2adalHyw0Y+Rb1BG9RkFUa3paZUZEsIozBK3dBScTwSCJpmLCjzTVWZEvtHOfVLLSw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-hyperpay": { + "version": "0.1.18", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-hyperpay/-/wallet-adapter-hyperpay-0.1.18.tgz", + "integrity": "sha512-On95zV7Dq5UTqYAtLFvttwDgPVz0a2iWl1XZ467YYXbvXPWSxkQmvPD0jHPUvHepGw60Hf5p0qkylyYANIAgoQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-keystone": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-keystone/-/wallet-adapter-keystone-0.1.19.tgz", + "integrity": "sha512-u7YmrQCrdZHI2hwJpX3rAiYuUdK0UIFX6m8+LSDOlA2bijlPJuTeH416aqqjueJTpvuZHowOPmV/no46PBqG0Q==", + "license": "Apache-2.0", + "dependencies": { + "@keystonehq/sol-keyring": "^0.20.0", + "@solana/wallet-adapter-base": "^0.9.27", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-krystal": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-krystal/-/wallet-adapter-krystal-0.1.16.tgz", + "integrity": "sha512-crAVzzPzMo63zIH0GTHDqYjIrjGFhrAjCntOV2hMjebMGSAmaUPTJKRi+vgju2Ons2Ktva7tRwiVaJxD8370DA==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-ledger": { + "version": "0.9.29", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-ledger/-/wallet-adapter-ledger-0.9.29.tgz", + "integrity": "sha512-1feOHQGdMOPtXtXBCuUuHlsoco2iqDNcUTbHW+Bj+3ItXGJctwMicSSWgfATEAFNUanvOB+kKZ4N3B1MQrP/9w==", + "license": "Apache-2.0", + "dependencies": { + "@ledgerhq/devices": "^8.4.5", + "@ledgerhq/hw-transport": "^6.31.5", + "@ledgerhq/hw-transport-webhid": "^6.30.1", + "@solana/wallet-adapter-base": "^0.9.27", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-mathwallet": { + "version": "0.9.22", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-mathwallet/-/wallet-adapter-mathwallet-0.9.22.tgz", + "integrity": "sha512-5ePUe4lyTbwHlXQJwNrXRXDfyouAeIbfBTkJxcAWVivlVQcxcnE7BOwsCjImVaGNh4MumMLblxd2ywoSVDNf/g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-neko": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-neko/-/wallet-adapter-neko-0.2.16.tgz", + "integrity": "sha512-0l/s+NJUGkyVm24nHF0aPsTMo9lsdw21PO+obDszJziZZmiKrI1l1WmhCDwYwAllY0nQjaxQ0tJBYy066pmnVg==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-nightly": { + "version": "0.1.20", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-nightly/-/wallet-adapter-nightly-0.1.20.tgz", + "integrity": "sha512-37kRXzZ+54JhT21Cp3lC0O+hg9ZBC4epqkwNbev8piNnZUghKdsvsG5RjbsngVY6572jPlFGiuniDmb0vUSs3A==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-nufi": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-nufi/-/wallet-adapter-nufi-0.1.21.tgz", + "integrity": "sha512-up9V4BfWl/oR0rIDQio1JD2oic+isHPk5DI4sUUxBPmWF/BYlpDVxwEfL7Xjg+jBfeiYGn0sVjTvaHY4/qUZAw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-onto": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-onto/-/wallet-adapter-onto-0.1.11.tgz", + "integrity": "sha512-fyTJ5xFaYD8/Izu8q+oGD9iXZvg7ljLxi/JkVwN/HznVdac95ee1fvthkF3PPRmWGZeA7O/kYAxdQMXxlwy+xw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-particle": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-particle/-/wallet-adapter-particle-0.1.16.tgz", + "integrity": "sha512-uB2FFN2SqV0cJQTvQ+pyVL6OXwGMhbz5KuWU14pcZWqfrOxs+L4grksLwMCGw+yBw/+jydLGMTUWntuEm6r7ag==", + "license": "Apache-2.0", + "dependencies": { + "@particle-network/solana-wallet": "^1.3.2", + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-phantom": { + "version": "0.9.28", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-phantom/-/wallet-adapter-phantom-0.9.28.tgz", + "integrity": "sha512-g/hcuWwWjzo5l8I4vor9htniVhLxd/GhoVK52WSd0hy8IZ8/FBnV3u8ABVTheLqO13d0IVy+xTxoVBbDaMjLog==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-react": { + "version": "0.15.39", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-react/-/wallet-adapter-react-0.15.39.tgz", + "integrity": "sha512-WXtlo88ith5m22qB+qiGw301/Zb9r5pYr4QdXWmlXnRNqwST5MGmJWhG+/RVrzc+OG7kSb3z1gkVNv+2X/Y0Gg==", + "license": "Apache-2.0", + "dependencies": { + "@solana-mobile/wallet-adapter-mobile": "^2.2.0", + "@solana/wallet-adapter-base": "^0.9.27", + "@solana/wallet-standard-wallet-adapter-react": "^1.1.4" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0", + "react": "*" + } + }, + "node_modules/@solana/wallet-adapter-safepal": { + "version": "0.5.22", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-safepal/-/wallet-adapter-safepal-0.5.22.tgz", + "integrity": "sha512-K1LlQIPoKgg3rdDIVUtMV218+uUM1kCtmuVKq2N+e+ZC8zK05cW3w7++nakDtU97AOmg+y4nsSFRCFsWBWmhTw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-saifu": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-saifu/-/wallet-adapter-saifu-0.1.19.tgz", + "integrity": "sha512-RWguxtKSXTZUNlc7XTUuMi78QBjy5rWcg7Fis3R8rfMtCBZIUZ/0nPb/wZbRfTk3OqpvnwRQl89TC9d2P7/SvA==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-salmon": { + "version": "0.1.18", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-salmon/-/wallet-adapter-salmon-0.1.18.tgz", + "integrity": "sha512-YN2/j5MsaurrlVIijlYA7SfyJU6IClxfmbUjQKEuygq0eP6S7mIAB/LK7qK2Ut3ll5vyTq/5q9Gejy6zQEaTMg==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27", + "salmon-adapter-sdk": "^1.1.1" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-sky": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-sky/-/wallet-adapter-sky-0.1.19.tgz", + "integrity": "sha512-jJBAg5TQLyPUSFtjne3AGxUgGV8cxMicJCdDFG6HalNK6N9jAB9eWfPxwsGRKv2RijXVtzo3/ejzcKrGp3oAuQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-solflare": { + "version": "0.6.32", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-solflare/-/wallet-adapter-solflare-0.6.32.tgz", + "integrity": "sha512-FIqNyooif3yjPnw2gPNBZnsG6X9JYSrwCf1Oa0NN4/VxQcPjzGqvc+Tq1+js/nBOHju5roToeMFTbwNTdEOuZw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27", + "@solana/wallet-standard-chains": "^1.1.1", + "@solflare-wallet/metamask-sdk": "^1.0.3", + "@solflare-wallet/sdk": "^1.4.2", + "@wallet-standard/wallet": "^1.1.0" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-solong": { + "version": "0.9.22", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-solong/-/wallet-adapter-solong-0.9.22.tgz", + "integrity": "sha512-lGTwQmHQrSTQp3OkYUbfzeFCDGi60ScOpgfC0IOZNSfWl7jwG5tnRXAJ4A1RG9Val9XcVe5b2biur2hyEMJlSQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-spot": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-spot/-/wallet-adapter-spot-0.1.19.tgz", + "integrity": "sha512-p7UgT+4+2r82YIJ+NsniNrXKSaYNgrM43FHkjdVVmEw69ZGvSSXJ3x108bCE9pshy6ldl+sb7VhJGg+uQ/OF9g==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-tokenary": { + "version": "0.1.16", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-tokenary/-/wallet-adapter-tokenary-0.1.16.tgz", + "integrity": "sha512-7FrDcRrXogCn13Ni2vwA1K/74RMLq+n37+j5fW0KtU2AEA6QVPqPgl/o0rRRgwdaG1q6EM3BXfgscYkmMTlxQQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-tokenpocket": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-tokenpocket/-/wallet-adapter-tokenpocket-0.4.23.tgz", + "integrity": "sha512-5/sgNj+WK0I+0+pMB8CmTPhRbImXJ8ZcqfO8+i2uHbmKwU+zddPFDT4Fin/Gm9AX/n//M+5bxhhN4FpnA9oM8w==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-torus": { + "version": "0.11.32", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-torus/-/wallet-adapter-torus-0.11.32.tgz", + "integrity": "sha512-LHvCNIL3tvD3q3EVJ1VrcvqIz7JbLBJcvpi5+PwG6DQzrRLHJ7oxOHFwc1SUX41WwifQHKI+lXWlTrVpIOgDOA==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27", + "@toruslabs/solana-embed": "^2.1.0", + "assert": "^2.1.0", + "crypto-browserify": "^3.12.1", + "process": "^0.11.10", + "stream-browserify": "^3.0.0" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-trezor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-trezor/-/wallet-adapter-trezor-0.1.6.tgz", + "integrity": "sha512-jItXhzaNq/UxSSPKVxgrUamx4mr2voMDjcEBHVUqOQhcujmzoPpBSahWKgpsDIegeX6zDCmuTAULnTpLs6YuzA==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27", + "@trezor/connect-web": "^9.5.5", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-trust": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-trust/-/wallet-adapter-trust-0.1.17.tgz", + "integrity": "sha512-raVtYoemFxrmsq8xtxhp3mD1Hke7CJuPqZsYr20zODjM1H2N+ty6zQa7z9ApJtosYNHAGek5S1/+n4/gnrC4nQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-unsafe-burner": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-unsafe-burner/-/wallet-adapter-unsafe-burner-0.1.11.tgz", + "integrity": "sha512-VyRQ2xRbVcpRSPTv+qyxOYFtWHxrVlLiH2nIuqIRCZcmGkFmxr+egwMjCCIURS6KCX7Ye3AbHK8IWJX6p9yuFQ==", + "license": "Apache-2.0", + "dependencies": { + "@noble/curves": "^1.9.1", + "@solana/wallet-adapter-base": "^0.9.27", + "@solana/wallet-standard-features": "^1.3.0", + "@solana/wallet-standard-util": "^1.1.2" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-walletconnect": { + "version": "0.1.21", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-walletconnect/-/wallet-adapter-walletconnect-0.1.21.tgz", + "integrity": "sha512-OE2ZZ60RbeobRsCa2gTD7IgXqofSa5B+jBLUu0DO8TVeRWro40JKYJuUedthALjO5oLelWSpcds+i7PRL+RQcQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27", + "@walletconnect/solana-adapter": "^0.0.8" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-wallets": { + "version": "0.19.37", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-wallets/-/wallet-adapter-wallets-0.19.37.tgz", + "integrity": "sha512-LUHK2Zh6gELt0+kt+viIMxqc/bree65xZgTPXXBzjhbJNKJaV4D4wanYG2LM9O35/avehZ5BTLMHltbkibE+GA==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-alpha": "^0.1.14", + "@solana/wallet-adapter-avana": "^0.1.17", + "@solana/wallet-adapter-bitkeep": "^0.3.24", + "@solana/wallet-adapter-bitpie": "^0.5.22", + "@solana/wallet-adapter-clover": "^0.4.23", + "@solana/wallet-adapter-coin98": "^0.5.24", + "@solana/wallet-adapter-coinbase": "^0.1.23", + "@solana/wallet-adapter-coinhub": "^0.3.22", + "@solana/wallet-adapter-fractal": "^0.1.12", + "@solana/wallet-adapter-huobi": "^0.1.19", + "@solana/wallet-adapter-hyperpay": "^0.1.18", + "@solana/wallet-adapter-keystone": "^0.1.19", + "@solana/wallet-adapter-krystal": "^0.1.16", + "@solana/wallet-adapter-ledger": "^0.9.29", + "@solana/wallet-adapter-mathwallet": "^0.9.22", + "@solana/wallet-adapter-neko": "^0.2.16", + "@solana/wallet-adapter-nightly": "^0.1.20", + "@solana/wallet-adapter-nufi": "^0.1.21", + "@solana/wallet-adapter-onto": "^0.1.11", + "@solana/wallet-adapter-particle": "^0.1.16", + "@solana/wallet-adapter-phantom": "^0.9.28", + "@solana/wallet-adapter-safepal": "^0.5.22", + "@solana/wallet-adapter-saifu": "^0.1.19", + "@solana/wallet-adapter-salmon": "^0.1.18", + "@solana/wallet-adapter-sky": "^0.1.19", + "@solana/wallet-adapter-solflare": "^0.6.32", + "@solana/wallet-adapter-solong": "^0.9.22", + "@solana/wallet-adapter-spot": "^0.1.19", + "@solana/wallet-adapter-tokenary": "^0.1.16", + "@solana/wallet-adapter-tokenpocket": "^0.4.23", + "@solana/wallet-adapter-torus": "^0.11.32", + "@solana/wallet-adapter-trezor": "^0.1.6", + "@solana/wallet-adapter-trust": "^0.1.17", + "@solana/wallet-adapter-unsafe-burner": "^0.1.11", + "@solana/wallet-adapter-walletconnect": "^0.1.21", + "@solana/wallet-adapter-xdefi": "^0.1.11" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-adapter-xdefi": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/@solana/wallet-adapter-xdefi/-/wallet-adapter-xdefi-0.1.11.tgz", + "integrity": "sha512-WzhzhNtA4ECX9ZMyAyZV8TciuwvbW8VoJWwF+hdts5xHfnitRJDR/17Br6CQH0CFKkqymVHCMWOBIWEjmp+3Rw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.27" + }, + "engines": { + "node": ">=20" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0" + } + }, + "node_modules/@solana/wallet-standard": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard/-/wallet-standard-1.1.4.tgz", + "integrity": "sha512-NF+MI5tOxyvfTU4A+O5idh/gJFmjm52bMwsPpFGRSL79GECSN0XLmpVOO/jqTKJgac2uIeYDpQw/eMaQuWuUXw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-standard-core": "^1.1.2", + "@solana/wallet-standard-wallet-adapter": "^1.1.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/wallet-standard-chains": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-chains/-/wallet-standard-chains-1.1.1.tgz", + "integrity": "sha512-Us3TgL4eMVoVWhuC4UrePlYnpWN+lwteCBlhZDUhFZBJ5UMGh94mYPXno3Ho7+iHPYRtuCi/ePvPcYBqCGuBOw==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/wallet-standard-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-core/-/wallet-standard-core-1.1.2.tgz", + "integrity": "sha512-FaSmnVsIHkHhYlH8XX0Y4TYS+ebM+scW7ZeDkdXo3GiKge61Z34MfBPinZSUMV08hCtzxxqH2ydeU9+q/KDrLA==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-standard-chains": "^1.1.1", + "@solana/wallet-standard-features": "^1.3.0", + "@solana/wallet-standard-util": "^1.1.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/wallet-standard-features": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-features/-/wallet-standard-features-1.3.0.tgz", + "integrity": "sha512-ZhpZtD+4VArf6RPitsVExvgkF+nGghd1rzPjd97GmBximpnt1rsUxMOEyoIEuH3XBxPyNB6Us7ha7RHWQR+abg==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.1.0", + "@wallet-standard/features": "^1.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/wallet-standard-util": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-util/-/wallet-standard-util-1.1.2.tgz", + "integrity": "sha512-rUXFNP4OY81Ddq7qOjQV4Kmkozx4wjYAxljvyrqPx8Ycz0FYChG/hQVWqvgpK3sPsEaO/7ABG1NOACsyAKWNOA==", + "license": "Apache-2.0", + "dependencies": { + "@noble/curves": "^1.8.0", + "@solana/wallet-standard-chains": "^1.1.1", + "@solana/wallet-standard-features": "^1.3.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/wallet-standard-wallet-adapter": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter/-/wallet-standard-wallet-adapter-1.1.4.tgz", + "integrity": "sha512-YSBrxwov4irg2hx9gcmM4VTew3ofNnkqsXQ42JwcS6ykF1P1ecVY8JCbrv75Nwe6UodnqeoZRbN7n/p3awtjNQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", + "@solana/wallet-standard-wallet-adapter-react": "^1.1.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@solana/wallet-standard-wallet-adapter-base": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter-base/-/wallet-standard-wallet-adapter-base-1.1.4.tgz", + "integrity": "sha512-Q2Rie9YaidyFA4UxcUIxUsvynW+/gE2noj/Wmk+IOwDwlVrJUAXCvFaCNsPDSyKoiYEKxkSnlG13OA1v08G4iw==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-standard-chains": "^1.1.1", + "@solana/wallet-standard-features": "^1.3.0", + "@solana/wallet-standard-util": "^1.1.2", + "@wallet-standard/app": "^1.1.0", + "@wallet-standard/base": "^1.1.0", + "@wallet-standard/features": "^1.1.0", + "@wallet-standard/wallet": "^1.1.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.98.0", + "bs58": "^6.0.0" + } + }, + "node_modules/@solana/wallet-standard-wallet-adapter-react": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@solana/wallet-standard-wallet-adapter-react/-/wallet-standard-wallet-adapter-react-1.1.4.tgz", + "integrity": "sha512-xa4KVmPgB7bTiWo4U7lg0N6dVUtt2I2WhEnKlIv0jdihNvtyhOjCKMjucWet6KAVhir6I/mSWrJk1U9SvVvhCg==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-standard-wallet-adapter-base": "^1.1.4", + "@wallet-standard/app": "^1.1.0", + "@wallet-standard/base": "^1.1.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/wallet-adapter-base": "*", + "react": "*" + } + }, + "node_modules/@solana/web3.js": { + "version": "1.98.4", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.98.4.tgz", + "integrity": "sha512-vv9lfnvjUsRiq//+j5pBdXig0IQdtzA0BRZ3bXEP4KaIyF1CcaydWqgyzQgfZMNIsWNWmG+AUHwPy4AHOD6gpw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.25.0", + "@noble/curves": "^1.4.2", + "@noble/hashes": "^1.4.0", + "@solana/buffer-layout": "^4.0.1", + "@solana/codecs-numbers": "^2.1.0", + "agentkeepalive": "^4.5.0", + "bn.js": "^5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^4.1.1", + "node-fetch": "^2.7.0", + "rpc-websockets": "^9.0.2", + "superstruct": "^2.0.2" + } + }, + "node_modules/@solana/web3.js/node_modules/@solana/codecs-core": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-core/-/codecs-core-2.3.0.tgz", + "integrity": "sha512-oG+VZzN6YhBHIoSKgS5ESM9VIGzhWjEHEGNPSibiDTxFhsFWxNaz8LbMDPjBUE69r9wmdGLkrQ+wVPbnJcZPvw==", + "license": "MIT", + "dependencies": { + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/web3.js/node_modules/@solana/codecs-numbers": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/codecs-numbers/-/codecs-numbers-2.3.0.tgz", + "integrity": "sha512-jFvvwKJKffvG7Iz9dmN51OGB7JBcy2CJ6Xf3NqD/VP90xak66m/Lg48T01u5IQ/hc15mChVHiBm+HHuOFDUrQg==", + "license": "MIT", + "dependencies": { + "@solana/codecs-core": "2.3.0", + "@solana/errors": "2.3.0" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/web3.js/node_modules/@solana/errors": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@solana/errors/-/errors-2.3.0.tgz", + "integrity": "sha512-66RI9MAbwYV0UtP7kGcTBVLxJgUxoZGm8Fbc0ah+lGiAw17Gugco6+9GrJCV83VyF2mDWyYnYM9qdI3yjgpnaQ==", + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^14.0.0" + }, + "bin": { + "errors": "bin/cli.mjs" + }, + "engines": { + "node": ">=20.18.0" + }, + "peerDependencies": { + "typescript": ">=5.3.3" + } + }, + "node_modules/@solana/web3.js/node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/@solana/web3.js/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/@solflare-wallet/metamask-sdk": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@solflare-wallet/metamask-sdk/-/metamask-sdk-1.0.3.tgz", + "integrity": "sha512-os5Px5PTMYKGS5tzOoyjDxtOtj0jZKnbI1Uwt8+Jsw1HHIA+Ib2UACCGNhQ/un2f8sIbTfLD1WuucNMOy8KZpQ==", + "license": "Apache-2.0", + "dependencies": { + "@solana/wallet-standard-features": "^1.1.0", + "@wallet-standard/base": "^1.0.1", + "bs58": "^5.0.0", + "eventemitter3": "^5.0.1", + "uuid": "^9.0.0" + }, + "peerDependencies": { + "@solana/web3.js": "*" + } + }, + "node_modules/@solflare-wallet/metamask-sdk/node_modules/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT" + }, + "node_modules/@solflare-wallet/metamask-sdk/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@solflare-wallet/metamask-sdk/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@solflare-wallet/sdk": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@solflare-wallet/sdk/-/sdk-1.4.2.tgz", + "integrity": "sha512-jrseNWipwl9xXZgrzwZF3hhL0eIVxuEtoZOSLmuPuef7FgHjstuTtNJAeT4icA7pzdDV4hZvu54pI2r2f7SmrQ==", + "license": "Apache-2.0", + "dependencies": { + "bs58": "^5.0.0", + "eventemitter3": "^5.0.1", + "uuid": "^9.0.0" + }, + "peerDependencies": { + "@solana/web3.js": "*" + } + }, + "node_modules/@solflare-wallet/sdk/node_modules/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-uAZ8x6r6S3aUM9rbHGVOIsR15U/ZSc82b3ymnCPsT45Gk1DDvhDPdIgB5MrhirZWt+5K0EEPQH985kNqZgNPFw==", + "license": "MIT" + }, + "node_modules/@solflare-wallet/sdk/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "license": "MIT", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@solflare-wallet/sdk/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@standard-schema/spec": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", + "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", + "license": "MIT" + }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, + "node_modules/@stellar/js-xdr": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@stellar/js-xdr/-/js-xdr-3.1.2.tgz", + "integrity": "sha512-VVolPL5goVEIsvuGqDc5uiKxV03lzfWdvYg1KikvwheDmTBO68CKDji3bAZ/kppZrx5iTA8z3Ld5yuytcvhvOQ==", + "license": "Apache-2.0" + }, + "node_modules/@stellar/stellar-base": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@stellar/stellar-base/-/stellar-base-14.0.4.tgz", + "integrity": "sha512-UbNW6zbdOBXJwLAV2mMak0bIC9nw3IZVlQXkv2w2dk1jgCbJjy3oRVC943zeGE5JAm0Z9PHxrIjmkpGhayY7kw==", + "license": "Apache-2.0", + "dependencies": { + "@noble/curves": "^1.9.6", + "@stellar/js-xdr": "^3.1.2", + "base32.js": "^0.1.0", + "bignumber.js": "^9.3.1", + "buffer": "^6.0.3", + "sha.js": "^2.4.12" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@stellar/stellar-sdk": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@stellar/stellar-sdk/-/stellar-sdk-14.2.0.tgz", + "integrity": "sha512-7nh2ogzLRMhfkIC0fGjn1LHUzk3jqVw8tjAuTt5ADWfL9CSGBL18ILucE9igz2L/RU2AZgeAvhujAnW91Ut/oQ==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@stellar/stellar-base": "^14.0.1", + "axios": "^1.12.2", + "bignumber.js": "^9.3.1", + "eventsource": "^2.0.2", + "feaxios": "^0.0.23", + "randombytes": "^2.1.0", + "toml": "^3.0.0", + "urijs": "^1.19.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@walletconnect/types/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@tanstack/form-core": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@tanstack/form-core/-/form-core-0.33.0.tgz", + "integrity": "sha512-ouu1JVwLZgfPkIdIq3TWIZs++KpLOo8Bx4tXYOc/1KwA9qUQ0Iv/+Y6GfiC4wMcUzGCtLKOww84eZ8Qdge3ZmQ==", + "license": "MIT", + "dependencies": { + "@tanstack/store": "^0.5.5" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-core": { + "version": "5.90.16", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.90.16.tgz", + "integrity": "sha512-MvtWckSVufs/ja463/K4PyJeqT+HMlJWtw6PrCpywznd2NSgO3m4KwO9RqbFqGg6iDE8vVMFWMeQI4Io3eEYww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-form": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-form/-/react-form-0.33.0.tgz", + "integrity": "sha512-+292gWfP67uAu3zYeIQAQYEk6T7IvQUiuKwanCyATROG92FsxQrYeJdqDk4Bkh0MB8uy13CilrdxZOoEMdEKSQ==", + "license": "MIT", + "dependencies": { + "@remix-run/node": "^2.12.0", + "@tanstack/form-core": "0.33.0", + "@tanstack/react-store": "^0.5.5", + "decode-formdata": "^0.8.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/start": "^1.43.13", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/functions": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { + "@tanstack/start": { "optional": true } } }, - "node_modules/@walletconnect/universal-provider": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.1.tgz", - "integrity": "sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg==", + "node_modules/@tanstack/react-query": { + "version": "5.90.16", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.90.16.tgz", + "integrity": "sha512-bpMGOmV4OPmif7TNMteU/Ehf/hoC0Kf98PDc0F4BZkFrEapRMEqI/V6YS0lyzwSV6PQpY1y4xxArUIfBW5LVxQ==", + "license": "MIT", "dependencies": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.1", - "@walletconnect/types": "2.21.1", - "@walletconnect/utils": "2.21.1", - "es-toolkit": "1.33.0", - "events": "3.3.0" + "@tanstack/query-core": "5.90.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" } }, - "node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/@tanstack/react-store": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/@tanstack/react-store/-/react-store-0.5.8.tgz", + "integrity": "sha512-G8TFpT/QJv2B2vro4QOUypvMjjSrbLRR8VKNoBByr6gpXAhU7y7mkrsn55Ra6svplVuvF+rAPTvHcUJKtU6geQ==", + "license": "MIT", "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" + "@tanstack/store": "0.5.5", + "use-sync-external-store": "^1.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + } + }, + "node_modules/@tanstack/store": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@tanstack/store/-/store-0.5.5.tgz", + "integrity": "sha512-EOSrgdDAJExbvRZEQ/Xhh9iZchXpMN+ga1Bnk8Nmygzs8TfiE6hbzThF+Pr2G19uHL6+DTDTHhJ8VQiOd7l4tA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/zod-form-adapter": { + "version": "0.33.0", + "resolved": "https://registry.npmjs.org/@tanstack/zod-form-adapter/-/zod-form-adapter-0.33.0.tgz", + "integrity": "sha512-vttDPKRb647UdOR3qUSN8bscj8wZibdYE6DR1eUbTmGdDT4OiwA1rDKOEpzmLQSsDbY1vLDAAfANQ1nApHoUFw==", + "license": "MIT", + "dependencies": { + "@tanstack/form-core": "0.33.0" }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "zod": "^3.x" } }, - "node_modules/@walletconnect/universal-provider/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "node_modules/@toruslabs/base-controllers": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-5.11.0.tgz", + "integrity": "sha512-5AsGOlpf3DRIsd6PzEemBoRq+o2OhgSFXj5LZD6gXcBlfe0OpF+ydJb7Q8rIt5wwpQLNJCs8psBUbqIv7ukD2w==", + "license": "ISC", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" + "@ethereumjs/util": "^9.0.3", + "@toruslabs/broadcast-channel": "^10.0.2", + "@toruslabs/http-helpers": "^6.1.1", + "@toruslabs/openlogin-jrpc": "^8.3.0", + "@toruslabs/openlogin-utils": "^8.2.1", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" }, "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/broadcast-channel": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@toruslabs/broadcast-channel/-/broadcast-channel-10.0.2.tgz", + "integrity": "sha512-aZbKNgV/OhiTKSdxBTGO86xRdeR7Ct1vkB8yeyXRX32moARhZ69uJQL49jKh4cWKV3VeijrL9XvKdn5bzgHQZg==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.24.0", + "@toruslabs/eccrypto": "^4.0.0", + "@toruslabs/metadata-helpers": "^5.1.0", + "loglevel": "^1.9.1", + "oblivious-set": "1.4.0", + "socket.io-client": "^4.7.5", + "unload": "^2.4.1" }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/functions": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { - "optional": true - } + "engines": { + "node": ">=18.x", + "npm": ">=9.x" } }, - "node_modules/@walletconnect/utils": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.1.tgz", - "integrity": "sha512-VPZvTcrNQCkbGOjFRbC24mm/pzbRMUq2DSQoiHlhh0X1U7ZhuIrzVtAoKsrzu6rqjz0EEtGxCr3K1TGRqDG4NA==", + "node_modules/@toruslabs/constants": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-13.4.0.tgz", + "integrity": "sha512-CjmnMQ5Oj0bqSBGkhv7Xm3LciGJDHwe4AJ1LF6mijlP+QcCnUM5I6kVp60j7zZ/r0DT7nIEiuHHHczGpCZor0A==", + "license": "MIT", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@toruslabs/eccrypto": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/eccrypto/-/eccrypto-4.0.0.tgz", + "integrity": "sha512-Z3EINkbsgJx1t6jCDVIJjLSUEGUtNIeDjhMWmeDGOWcP/+v/yQ1hEvd1wfxEz4q5WqIHhevacmPiVxiJ4DljGQ==", + "license": "CC0-1.0", "dependencies": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.1", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" + "elliptic": "^6.5.4" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + } + }, + "node_modules/@toruslabs/http-helpers": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/http-helpers/-/http-helpers-6.1.1.tgz", + "integrity": "sha512-bJYOaltRzklzObhRdutT1wau17vXyrCCBKJOeN46F1t99MUXi5udQNeErFOcr9qBsvrq2q67eVBkU5XOeBMX5A==", + "license": "MIT", + "dependencies": { + "lodash.merge": "^4.6.2", + "loglevel": "^1.9.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x", + "@sentry/types": "^7.x" + }, + "peerDependenciesMeta": { + "@sentry/types": { + "optional": true + } } }, - "node_modules/@walletconnect/utils/node_modules/@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "node_modules/@toruslabs/metadata-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/metadata-helpers/-/metadata-helpers-5.1.0.tgz", + "integrity": "sha512-7fdqKuWUaJT/ng+PlqrA4XKkn8Dij4JJozfv/4gHTi0f/6JFncpzIces09jTV70hCf0JIsTCvIDlzKOdJ+aeZg==", + "license": "MIT", "dependencies": { - "@noble/hashes": "1.7.1" + "@toruslabs/eccrypto": "^4.0.0", + "@toruslabs/http-helpers": "^6.1.0", + "elliptic": "^6.5.5", + "ethereum-cryptography": "^2.1.3", + "json-stable-stringify": "^1.1.1" }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=18.x", + "npm": ">=9.x" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@babel/runtime": "7.x" } }, - "node_modules/@walletconnect/utils/node_modules/@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==", + "node_modules/@toruslabs/openlogin-jrpc": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@toruslabs/openlogin-jrpc/-/openlogin-jrpc-8.3.0.tgz", + "integrity": "sha512-1OdSkUXGXJobkkMIJHuf+XzwmUB4ROy6uQfPEJ3NXvNj84+N4hNpvC4JPg7VoWBHdfCba9cv6QnQsVArlwai4A==", + "license": "ISC", + "dependencies": { + "end-of-stream": "^1.4.4", + "events": "^3.3.0", + "fast-safe-stringify": "^2.1.1", + "once": "^1.4.0", + "pump": "^3.0.0", + "readable-stream": "^4.5.2" + }, "engines": { - "node": "^14.21.3 || >=16" + "node": ">=18.x", + "npm": ">=9.x" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "peerDependencies": { + "@babel/runtime": "7.x" } }, - "node_modules/@walletconnect/utils/node_modules/@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "node_modules/@toruslabs/openlogin-utils": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@toruslabs/openlogin-utils/-/openlogin-utils-8.2.1.tgz", + "integrity": "sha512-NSOtj61NZe7w9qbd92cYwMlE/1UwPGtDH02NfUjoEEc3p1yD5U2cLZjdSwsnAgjGNgRqVomXpND4hii12lI/ew==", + "license": "ISC", "dependencies": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" + "@toruslabs/constants": "^13.2.0", + "base64url": "^3.0.1", + "color": "^4.2.3" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" } }, - "node_modules/@walletconnect/utils/node_modules/@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", - "dependencies": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" + "node_modules/@toruslabs/solana-embed": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/solana-embed/-/solana-embed-2.1.0.tgz", + "integrity": "sha512-rgZniKy+yuqJp8/Z/RcqzhTL4iCH+4nP55XD5T2nEIajAClsmonsGp24AUqYwEqu+7x2hjumZEh+12rUv+Ippw==", + "deprecated": "This sdk is now deprecated. Please use @web3auth/ws-embed instead", + "license": "ISC", + "dependencies": { + "@solana/web3.js": "^1.91.4", + "@toruslabs/base-controllers": "^5.5.5", + "@toruslabs/http-helpers": "^6.1.1", + "@toruslabs/openlogin-jrpc": "^8.1.1", + "eth-rpc-errors": "^4.0.3", + "fast-deep-equal": "^3.1.3", + "lodash-es": "^4.17.21", + "loglevel": "^1.9.1", + "pump": "^3.0.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" } }, - "node_modules/@walletconnect/utils/node_modules/@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "node_modules/@tpluscode/rdf-ns-builders": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@tpluscode/rdf-ns-builders/-/rdf-ns-builders-4.3.0.tgz", + "integrity": "sha512-x3uh9mYwAU+PrALaDKhVjml1TCCWWduo6J8rybd9SMEEAoooXq1MYb13MRputjRT/kYaFyCND7LMobzhxZ/+bg==", + "license": "MIT", "dependencies": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" + "@rdfjs/data-model": "^2", + "@rdfjs/namespace": "^2", + "@rdfjs/types": "*", + "@types/rdfjs__namespace": "^2.0.2", + "@zazuko/prefixes": "^2.0.1" + } + }, + "node_modules/@trezor/analytics": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@trezor/analytics/-/analytics-1.5.0.tgz", + "integrity": "sha512-evILW5XJEmfPlf0TY1duOLtGJ47pdGeSKVE3P75ODEUsRNxtPVqlkOUBPmYpCxPnzS8XDmkatT8lf9/DF0G6nA==", + "license": "See LICENSE.md in repo root", + "dependencies": { + "@trezor/env-utils": "1.5.0", + "@trezor/utils": "9.5.0" }, "peerDependencies": { - "@react-native-async-storage/async-storage": "1.x" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - } + "tslib": "^2.6.2" } }, - "node_modules/@walletconnect/utils/node_modules/abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "funding": { - "url": "https://github.com/sponsors/wevm" + "node_modules/@trezor/blockchain-link": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/@trezor/blockchain-link/-/blockchain-link-2.6.1.tgz", + "integrity": "sha512-SPwxkihOMI0o79BOy0RkfgVL2meuJhIe1yWHCeR8uoqf5KGblUyeXxvNCy6w8ckJ9LRpM1+bZhsUODuNs3083Q==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@solana-program/compute-budget": "^0.8.0", + "@solana-program/stake": "^0.2.1", + "@solana-program/token": "^0.5.1", + "@solana-program/token-2022": "^0.4.2", + "@solana/kit": "^2.3.0", + "@solana/rpc-types": "^2.3.0", + "@stellar/stellar-sdk": "14.2.0", + "@trezor/blockchain-link-types": "1.5.0", + "@trezor/blockchain-link-utils": "1.5.1", + "@trezor/env-utils": "1.5.0", + "@trezor/utils": "9.5.0", + "@trezor/utxo-lib": "2.5.0", + "@trezor/websocket-client": "1.3.0", + "@types/web": "^0.0.197", + "crypto-browserify": "3.12.0", + "socks-proxy-agent": "8.0.5", + "stream-browserify": "^3.0.0", + "xrpl": "4.4.3" }, "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } + "tslib": "^2.6.2" } }, - "node_modules/@walletconnect/utils/node_modules/isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@trezor/blockchain-link-types": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-types/-/blockchain-link-types-1.5.0.tgz", + "integrity": "sha512-wD6FKKxNr89MTWYL+NikRkBcWXhiWNFR0AuDHW6GHmlCEHhKu/hAvQtcER8X5jt/Wd0hSKNZqtHBXJ1ZkpJ6rg==", + "license": "See LICENSE.md in repo root", + "dependencies": { + "@trezor/utils": "9.5.0", + "@trezor/utxo-lib": "2.5.0" + }, "peerDependencies": { - "ws": "*" + "tslib": "^2.6.2" } }, - "node_modules/@walletconnect/utils/node_modules/ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@trezor/blockchain-link-utils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@trezor/blockchain-link-utils/-/blockchain-link-utils-1.5.1.tgz", + "integrity": "sha512-2tDGLEj5jzydjsJQONGTWVmCDDy6FTZ4ytr1/2gE6anyYEJU8MbaR+liTt3UvcP5jwZTNutwYLvZixRfrb8JpA==", + "license": "See LICENSE.md in repo root", "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" + "@mobily/ts-belt": "^3.13.1", + "@stellar/stellar-sdk": "14.2.0", + "@trezor/env-utils": "1.5.0", + "@trezor/protobuf": "1.5.1", + "@trezor/utils": "9.5.0", + "xrpl": "4.4.3" }, "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "tslib": "^2.6.2" } }, - "node_modules/@walletconnect/utils/node_modules/unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", + "node_modules/@trezor/blockchain-link/node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "license": "MIT", "dependencies": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" }, - "peerDependencies": { - "@azure/app-configuration": "^1.8.0", - "@azure/cosmos": "^4.2.0", - "@azure/data-tables": "^13.3.0", - "@azure/identity": "^4.6.0", - "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.26.0", - "@capacitor/preferences": "^6.0.3 || ^7.0.0", - "@deno/kv": ">=0.9.0", - "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", - "@planetscale/database": "^1.19.0", - "@upstash/redis": "^1.34.3", - "@vercel/blob": ">=0.27.1", - "@vercel/functions": "^2.2.12 || ^3.0.0", - "@vercel/kv": "^1.0.1", - "aws4fetch": "^1.0.20", - "db0": ">=0.2.1", - "idb-keyval": "^6.2.1", - "ioredis": "^5.4.2", - "uploadthing": "^7.4.4" + "engines": { + "node": "*" + } + }, + "node_modules/@trezor/connect": { + "version": "9.7.1", + "resolved": "https://registry.npmjs.org/@trezor/connect/-/connect-9.7.1.tgz", + "integrity": "sha512-W2ym0bs4FVmXByEr9gANBp+bRErzNcmqqqYzSJLOVkawxikqYXag2aCpdiXU3LlZbFbhFhIsT/fpDLfwiLRySA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@ethereumjs/common": "^10.1.0", + "@ethereumjs/tx": "^10.1.0", + "@fivebinaries/coin-selection": "3.0.0", + "@mobily/ts-belt": "^3.13.1", + "@noble/hashes": "^1.6.1", + "@scure/bip39": "^1.5.1", + "@solana-program/compute-budget": "^0.8.0", + "@solana-program/system": "^0.7.0", + "@solana-program/token": "^0.5.1", + "@solana-program/token-2022": "^0.4.2", + "@solana/kit": "^2.3.0", + "@trezor/blockchain-link": "2.6.1", + "@trezor/blockchain-link-types": "1.5.0", + "@trezor/blockchain-link-utils": "1.5.1", + "@trezor/connect-analytics": "1.4.0", + "@trezor/connect-common": "0.5.0", + "@trezor/crypto-utils": "1.2.0", + "@trezor/device-authenticity": "1.1.1", + "@trezor/device-utils": "1.2.0", + "@trezor/env-utils": "^1.5.0", + "@trezor/protobuf": "1.5.1", + "@trezor/protocol": "1.3.0", + "@trezor/schema-utils": "1.4.0", + "@trezor/transport": "1.6.1", + "@trezor/type-utils": "1.2.0", + "@trezor/utils": "9.5.0", + "@trezor/utxo-lib": "2.5.0", + "blakejs": "^1.2.1", + "bs58": "^6.0.0", + "bs58check": "^4.0.0", + "cbor": "^10.0.10", + "cross-fetch": "^4.0.0", + "jws": "^4.0.0" }, - "peerDependenciesMeta": { - "@azure/app-configuration": { - "optional": true - }, - "@azure/cosmos": { - "optional": true - }, - "@azure/data-tables": { - "optional": true - }, - "@azure/identity": { - "optional": true - }, - "@azure/keyvault-secrets": { - "optional": true - }, - "@azure/storage-blob": { - "optional": true - }, - "@capacitor/preferences": { - "optional": true - }, - "@deno/kv": { - "optional": true - }, - "@netlify/blobs": { - "optional": true - }, - "@planetscale/database": { - "optional": true - }, - "@upstash/redis": { - "optional": true - }, - "@vercel/blob": { - "optional": true - }, - "@vercel/functions": { - "optional": true - }, - "@vercel/kv": { - "optional": true - }, - "aws4fetch": { - "optional": true - }, - "db0": { - "optional": true - }, - "idb-keyval": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "uploadthing": { - "optional": true - } + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/@walletconnect/utils/node_modules/viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/@trezor/connect-analytics": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@trezor/connect-analytics/-/connect-analytics-1.4.0.tgz", + "integrity": "sha512-hy2J2oeIhRC/e1bOWXo5dsVMVnDwO2UKnxhR6FD8PINR3jgM6PWAXc6k33WJsBcyiTzwMP7/xPysLcgNJH5o4w==", + "license": "See LICENSE.md in repo root", "dependencies": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" + "@trezor/analytics": "1.5.0" }, "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "tslib": "^2.6.2" + } + }, + "node_modules/@trezor/connect-common": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@trezor/connect-common/-/connect-common-0.5.0.tgz", + "integrity": "sha512-WE71iaFcWmfQxDCiTUNynj2DccRgUiLBJ+g3nrqCBJqEYzu+cD6eZ5k/OLtZ3hfh5gyB5EQwXdGvRT07iNdxAA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@trezor/env-utils": "1.5.0", + "@trezor/type-utils": "1.2.0", + "@trezor/utils": "9.5.0" + }, + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/@walletconnect/utils/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "engines": { - "node": ">=10.0.0" + "node_modules/@trezor/connect-web": { + "version": "9.7.1", + "resolved": "https://registry.npmjs.org/@trezor/connect-web/-/connect-web-9.7.1.tgz", + "integrity": "sha512-L9rv8R4bOwXoZlbWr8NnsdR2bYjehNY+eEog7fhOPzcRqW30+P06Ari1ZzOMeg469s4GlwvkVA34wqSGxLeelQ==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@trezor/connect": "9.7.1", + "@trezor/connect-common": "0.5.0", + "@trezor/utils": "9.5.0", + "@trezor/websocket-client": "1.3.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "tslib": "^2.6.2" } }, - "node_modules/@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "node_modules/@trezor/connect/node_modules/bs58check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", + "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", + "license": "MIT", "dependencies": { - "tslib": "1.14.1" + "@noble/hashes": "^1.2.0", + "bs58": "^6.0.0" } }, - "node_modules/@walletconnect/window-getters/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "node_modules/@trezor/crypto-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@trezor/crypto-utils/-/crypto-utils-1.2.0.tgz", + "integrity": "sha512-9i1NrfW1IE6JO910ut7xrx4u5LxE++GETbpJhWLj4P5xpuGDDSDLEn/MXaYisls2DpE897aOrGPaa1qyt8V6tw==", + "license": "SEE LICENSE IN LICENSE.md", + "peerDependencies": { + "tslib": "^2.6.2" + } }, - "node_modules/@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "node_modules/@trezor/device-authenticity": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@trezor/device-authenticity/-/device-authenticity-1.1.1.tgz", + "integrity": "sha512-WlYbQgc5l0pWUVP9GkMp+Oj3rVAqMKsWF0HyxujoymNjEB7rLTl2hXs+GFjlz7VnldaSslECc6EBex/eQiNOnA==", + "license": "See LICENSE.md in repo root", "dependencies": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" + "@noble/curves": "^2.0.1", + "@trezor/crypto-utils": "1.2.0", + "@trezor/protobuf": "1.5.1", + "@trezor/schema-utils": "1.4.0", + "@trezor/utils": "9.5.0" } }, - "node_modules/@walletconnect/window-metadata/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@webgpu/types": { - "version": "0.1.49", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.49.tgz", - "integrity": "sha512-NMmS8/DofhH/IFeW+876XrHVWel+J/vdcFCHLDqeJgkH9x0DeiwjVd8LcBdaxdG/T7Rf8VUAYsA8X1efMzLjRQ==", - "dev": true + "node_modules/@trezor/device-authenticity/node_modules/@noble/curves": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-2.0.1.tgz", + "integrity": "sha512-vs1Az2OOTBiP4q0pwjW5aF0xp9n4MxVrmkFBxc6EKZc6ddYx5gaZiAsZoq0uRRXWbi3AT/sBqn05eRPtn1JCPw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "2.0.1" + }, + "engines": { + "node": ">= 20.19.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/abitype": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz", - "integrity": "sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==", + "node_modules/@trezor/device-authenticity/node_modules/@noble/hashes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-2.0.1.tgz", + "integrity": "sha512-XlOlEbQcE9fmuXxrVTXCTlG2nlRXa9Rj3rr5Ue/+tX+nmkgbX720YHh0VR3hBF9xDvwnb8D2shVGOwNx+ulArw==", + "license": "MIT", + "engines": { + "node": ">= 20.19.0" + }, "funding": { - "url": "https://github.com/sponsors/wevm" + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@trezor/device-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@trezor/device-utils/-/device-utils-1.2.0.tgz", + "integrity": "sha512-Aqp7pIooFTx21zRUtTI6i1AS4d9Lrx7cclvksh2nJQF9WJvbzuCXshEGkLoOsHwhQrCl3IXfbGuMdA12yDenPA==", + "license": "See LICENSE.md in repo root" + }, + "node_modules/@trezor/env-utils": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@trezor/env-utils/-/env-utils-1.5.0.tgz", + "integrity": "sha512-u1TN7dMQ5Qhpbae08Z4JJmI9fQrbbJ4yj8eIAsuzMQn6vb+Sg9vbntl+IDsZ1G9WeI73uHTLu1wWMmAgiujH8w==", + "license": "See LICENSE.md in repo root", + "dependencies": { + "ua-parser-js": "^2.0.4" }, "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3.22.0 || ^4.0.0" + "expo-constants": "*", + "expo-localization": "*", + "react-native": "*", + "tslib": "^2.6.2" }, "peerDependenciesMeta": { - "typescript": { + "expo-constants": { "optional": true }, - "zod": { + "expo-localization": { + "optional": true + }, + "react-native": { "optional": true } } }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "node_modules/@trezor/protobuf": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@trezor/protobuf/-/protobuf-1.5.1.tgz", + "integrity": "sha512-nAkaCCAqLpErBd+IuKeG5MpbyLR/2RMgCw18TWc80m1Ws/XgQirhHY9Jbk6gLImTXb9GTrxP0+MDSahzd94rSA==", + "license": "See LICENSE.md in repo root", "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "@trezor/schema-utils": "1.4.0", + "long": "5.2.5", + "protobufjs": "7.4.0" }, - "engines": { - "node": ">= 0.6" + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" + "node_modules/@trezor/protocol": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@trezor/protocol/-/protocol-1.3.0.tgz", + "integrity": "sha512-rmrxbDrdgxTouBPbZcSeqU7ba/e5WVT1dxvxxEntHqRdTiDl7d3VK+BErCrlyol8EH5YCqEF3/rXt0crSOfoFw==", + "license": "See LICENSE.md in repo root", + "peerDependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@trezor/schema-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@trezor/schema-utils/-/schema-utils-1.4.0.tgz", + "integrity": "sha512-K7upSeh7VDrORaIC4KAxYVW93XNlohmUnH5if/5GKYmTdQSRp1nBkO6Jm+Z4hzIthdnz/1aLgnbeN3bDxWLRxA==", + "license": "See LICENSE.md in repo root", + "dependencies": { + "@sinclair/typebox": "^0.33.7", + "ts-mixer": "^6.0.3" }, - "engines": { - "node": ">=0.4.0" + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, + "node_modules/@trezor/transport": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@trezor/transport/-/transport-1.6.1.tgz", + "integrity": "sha512-RQNQingZ1TOVKSJu3Av9bmQovsu9n1NkcAYJ64+ZfapORfl/AzmZizRflhxU3FlIujQJK1gbIaW79+L54g7a8w==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@trezor/protobuf": "1.5.1", + "@trezor/protocol": "1.3.0", + "@trezor/type-utils": "1.2.0", + "@trezor/utils": "9.5.0", + "cross-fetch": "^4.0.0", + "usb": "^2.15.0" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "tslib": "^2.6.2" } }, - "node_modules/aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + "node_modules/@trezor/type-utils": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@trezor/type-utils/-/type-utils-1.2.0.tgz", + "integrity": "sha512-+E2QntxkyQuYfQQyl8RvT01tq2i5Dp/LFUOXuizF+KVOqsZBjBY43j5hewcCO3+MokD7deDiPyekbUEN5/iVlw==", + "license": "See LICENSE.md in repo root" }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "node_modules/@trezor/utils": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/@trezor/utils/-/utils-9.5.0.tgz", + "integrity": "sha512-kdyMyDbxzvOZmwBNvTjAK+C/kzyOz8T4oUbFvq+KaXn5mBFf1uf8rq5X2HkxgdYRPArtHS3PxLKsfkNCdhCYtQ==", + "license": "SEE LICENSE IN LICENSE.md", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "bignumber.js": "^9.3.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" + "node_modules/@trezor/utxo-lib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@trezor/utxo-lib/-/utxo-lib-2.5.0.tgz", + "integrity": "sha512-Fa2cZh0037oX6AHNLfpFIj65UR/OoX0ZJTocFuQASe77/1PjZHysf6BvvGfmzuFToKfrAQ+DM/1Sx+P/vnyNmA==", + "license": "SEE LICENSE IN LICENSE.md", + "dependencies": { + "@trezor/utils": "9.5.0", + "bech32": "^2.0.0", + "bip66": "^2.0.0", + "bitcoin-ops": "^1.4.1", + "blake-hash": "^2.0.0", + "blakejs": "^1.2.1", + "bn.js": "^5.2.2", + "bs58": "^6.0.0", + "bs58check": "^4.0.0", + "cashaddrjs": "0.4.4", + "create-hmac": "^1.1.7", + "int64-buffer": "^1.1.0", + "pushdata-bitcoin": "^1.0.1", + "tiny-secp256k1": "^1.1.7", + "typeforce": "^1.18.0", + "varuint-bitcoin": "2.0.0", + "wif": "^5.0.0" + }, + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@trezor/utxo-lib/node_modules/bs58check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", + "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", + "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "@noble/hashes": "^1.2.0", + "bs58": "^6.0.0" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@trezor/websocket-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@trezor/websocket-client/-/websocket-client-1.3.0.tgz", + "integrity": "sha512-9KQSaVc3NtmM6rFFj1e+9bM0C5mVKVidbnxlfzuBJu7G2YMRdIdLPcAXhvmRZjs40uzDuBeApK+p547kODz2ug==", + "license": "SEE LICENSE IN LICENSE.md", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@trezor/utils": "9.5.0", + "ws": "^8.18.0" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "tslib": "^2.6.2" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "license": "ISC", + "engines": { + "node": ">=10.13.0" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, + "node_modules/@turnkey/api-key-stamper": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@turnkey/api-key-stamper/-/api-key-stamper-0.6.0.tgz", + "integrity": "sha512-oIsL+yjo0tZ2Nt/ySuVIyfvhset+R43zZYo0iaXiXePjBY64t8oJutkKnn8C3LP2EyHvUEJRyNLoN17NJ0Lzxw==", + "license": "Apache-2.0", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "@noble/curves": "^1.3.0", + "@turnkey/crypto": "2.8.9", + "@turnkey/encoding": "0.6.0", + "sha256-uint8array": "^0.10.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.0.0" } }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, + "node_modules/@turnkey/crypto": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@turnkey/crypto/-/crypto-2.8.9.tgz", + "integrity": "sha512-9d4dUqxq6IEy7pL6rcogNZBRlaXJ/AkmbxV5S8ZA9SyowkwcEkljFsuIQpPMjjwZ1A5hpiGb0hSANTNON0ECMw==", + "license": "Apache-2.0", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" + "@noble/ciphers": "1.3.0", + "@noble/curves": "1.9.0", + "@noble/hashes": "1.8.0", + "@peculiar/x509": "1.12.3", + "@turnkey/encoding": "0.6.0", + "@turnkey/sdk-types": "0.11.1", + "borsh": "2.0.0", + "cbor-js": "0.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, + "node_modules/@turnkey/crypto/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, + "node_modules/@turnkey/crypto/node_modules/@noble/curves": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", + "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "@noble/hashes": "1.8.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - }, + "node_modules/@turnkey/crypto/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "dev": true, + "node_modules/@turnkey/crypto/node_modules/borsh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", + "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==", + "license": "Apache-2.0" + }, + "node_modules/@turnkey/encoding": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@turnkey/encoding/-/encoding-0.6.0.tgz", + "integrity": "sha512-IC8qXvy36+iGAeiaVIuJvB35uU2Ld/RAWI/DRTKS+ttBej0GXhOn48Ouu5mlca4jt8ZEuwXmDVv74A8uBQclsA==", + "license": "Apache-2.0", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "bs58": "6.0.0", + "bs58check": "4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.0.0" } }, - "node_modules/array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, + "node_modules/@turnkey/encoding/node_modules/bs58check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", + "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "@noble/hashes": "^1.2.0", + "bs58": "^6.0.0" } }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, + "node_modules/@turnkey/http": { + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/@turnkey/http/-/http-3.16.1.tgz", + "integrity": "sha512-mMkwAKoYY0b+7mambmXC7QJseL1PslEt2ybWhIas6N69ol0aDIf9hg3lP9vvGP/2TdEh/LstFln02dsYKevceg==", + "license": "Apache-2.0", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" + "@turnkey/api-key-stamper": "0.6.0", + "@turnkey/encoding": "0.6.0", + "@turnkey/webauthn-stamper": "0.6.0", + "cross-fetch": "^3.1.5" }, "engines": { - "node": ">= 0.4" + "node": ">=18.0.0" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", - "dev": true, + "node_modules/@turnkey/http/node_modules/@turnkey/webauthn-stamper": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@turnkey/webauthn-stamper/-/webauthn-stamper-0.6.0.tgz", + "integrity": "sha512-jdN17QEnn7RBykEOhtKIialWmDjnDAH8DzbyITwn8jsKcwT1TBNYge89hTUTjbdsDLBAqQw8cHujPdy0RaAqvw==", + "license": "Apache-2.0", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "sha256-uint8array": "^0.10.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.0.0" } }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true - }, - "node_modules/async-mutex": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", - "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "node_modules/@turnkey/http/node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", "dependencies": { - "tslib": "^2.0.0" + "node-fetch": "^2.7.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "node_modules/@turnkey/iframe-stamper": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@turnkey/iframe-stamper/-/iframe-stamper-2.9.0.tgz", + "integrity": "sha512-BSu2bYAmiWPB9xZPi49q8tIhlXZxLRxeoKVMF6Zr1T0SY5psBa24R8vb9a+w6F6wI4kILkon7aV1CzbSGOqRcg==", + "license": "Apache-2.0", "engines": { - "node": ">=8.0.0" + "node": ">=18.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/@turnkey/indexed-db-stamper": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@turnkey/indexed-db-stamper/-/indexed-db-stamper-1.1.1.tgz", + "integrity": "sha512-pKEMTCTg6Kn76nvYu3vq3HfsdkZ7BmO5MSrXqk7K2TJ4griL/oEzIhlSNAnihpohIRTmIkSCxOAgyIe43oB+Cg==", + "license": "Apache-2.0", "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "@turnkey/api-key-stamper": "0.4.7", + "@turnkey/encoding": "0.5.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "dev": true, "engines": { - "node": ">=4" + "node": ">=18.0.0" } }, - "node_modules/axios": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", - "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", - "license": "MIT", + "node_modules/@turnkey/indexed-db-stamper/node_modules/@turnkey/api-key-stamper": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@turnkey/api-key-stamper/-/api-key-stamper-0.4.7.tgz", + "integrity": "sha512-/0/kW7v+uCnmHnGMoHSXn4Vb/MxLAIivGxX/T0L4vVoIiJalQmqcCtgiWnPWZDiJNGjMKp+jd/8j6VXgbVVozg==", + "license": "Apache-2.0", "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "@noble/curves": "^1.3.0", + "@turnkey/encoding": "0.5.0", + "sha256-uint8array": "^0.10.7" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/axobject-query": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", - "dev": true, - "dependencies": { - "dequal": "^2.0.3" + "node_modules/@turnkey/indexed-db-stamper/node_modules/@turnkey/encoding": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@turnkey/encoding/-/encoding-0.5.0.tgz", + "integrity": "sha512-nRlKRQa6B5/xltGUKN1iKo4h4YC/0iFz0fAuFFZevc+YGDj7ddAP/3HkWmVvLmdoicUgs9rxvWbLRlgqPkbwzQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" } }, - "node_modules/babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "node_modules/@turnkey/react-native-passkey-stamper": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@turnkey/react-native-passkey-stamper/-/react-native-passkey-stamper-1.2.7.tgz", + "integrity": "sha512-w8Ka8EO+Tu1o2qI/y4NNuhfhGWEF9Bc7vNQAgpJ5RPkEjFYTqA6SQsRNToFpf/AQjvyNDRlBq5k83XHqm2oVdQ==", + "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" + "@turnkey/encoding": "0.6.0", + "@turnkey/http": "3.16.1", + "buffer": "^6.0.3", + "react-native-passkey": "^3.0.0", + "sha256-uint8array": "^0.10.7" }, "engines": { - "node": ">=10", - "npm": ">=6" + "node": ">=18.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", - "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", + "node_modules/@turnkey/sdk-browser": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/@turnkey/sdk-browser/-/sdk-browser-5.9.0.tgz", + "integrity": "sha512-1U5W4TwvLH8rdyN2m6EZ8EvX1f6gfwqD3lS5sTEyLcMtracFTmCKDSvu8wQ+ZhsznNTw3/zpY3VBhvAyzX8pgg==", + "license": "Apache-2.0", + "dependencies": { + "@turnkey/api-key-stamper": "0.4.7", + "@turnkey/crypto": "2.6.0", + "@turnkey/encoding": "0.5.0", + "@turnkey/http": "3.11.0", + "@turnkey/iframe-stamper": "2.5.0", + "@turnkey/indexed-db-stamper": "1.1.1", + "@turnkey/sdk-types": "0.3.0", + "@turnkey/wallet-stamper": "1.0.9", + "@turnkey/webauthn-stamper": "0.5.1", + "bs58check": "^4.0.0", + "buffer": "^6.0.3", + "cross-fetch": "^3.1.5", + "hpke-js": "^1.2.7" + }, "engines": { - "node": ">=0.6" + "node": ">=18.0.0" } }, - "node_modules/big.js": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", - "integrity": "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==", + "node_modules/@turnkey/sdk-browser/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", "engines": { - "node": "*" + "node": "^14.21.3 || >=16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/bigjs" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/bn.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", - "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==" - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "node_modules/@turnkey/sdk-browser/node_modules/@noble/curves": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", + "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" + "@noble/hashes": "1.8.0" }, "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/bowser": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", - "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@turnkey/sdk-browser/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, + "node_modules/@turnkey/sdk-browser/node_modules/@turnkey/api-key-stamper": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@turnkey/api-key-stamper/-/api-key-stamper-0.4.7.tgz", + "integrity": "sha512-/0/kW7v+uCnmHnGMoHSXn4Vb/MxLAIivGxX/T0L4vVoIiJalQmqcCtgiWnPWZDiJNGjMKp+jd/8j6VXgbVVozg==", + "license": "Apache-2.0", "dependencies": { - "fill-range": "^7.1.1" + "@noble/curves": "^1.3.0", + "@turnkey/encoding": "0.5.0", + "sha256-uint8array": "^0.10.7" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "node_modules/broadcast-channel": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", - "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", - "dependencies": { - "@babel/runtime": "^7.7.2", - "detect-node": "^2.1.0", - "js-sha3": "0.8.0", - "microseconds": "0.2.0", - "nano-time": "1.0.0", - "oblivious-set": "1.0.0", - "rimraf": "3.0.2", - "unload": "2.2.0" - } - }, - "node_modules/bs58": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", - "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "node_modules/@turnkey/sdk-browser/node_modules/@turnkey/crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@turnkey/crypto/-/crypto-2.6.0.tgz", + "integrity": "sha512-v7+B1RDg0qhRKNqynthvi1TUaNd5I4KoJL6CjrUmr2pWQ3LTvoeifJ7b9NjgkBnYMf4M8UV4gupguIH7ZaA7vA==", + "license": "Apache-2.0", "dependencies": { - "base-x": "^5.0.0" + "@noble/ciphers": "1.3.0", + "@noble/curves": "1.9.0", + "@noble/hashes": "1.8.0", + "@turnkey/encoding": "0.5.0", + "borsh": "2.0.0", + "bs58": "6.0.0", + "bs58check": "4.0.0" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "node_modules/@turnkey/sdk-browser/node_modules/@turnkey/encoding": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@turnkey/encoding/-/encoding-0.5.0.tgz", + "integrity": "sha512-nRlKRQa6B5/xltGUKN1iKo4h4YC/0iFz0fAuFFZevc+YGDj7ddAP/3HkWmVvLmdoicUgs9rxvWbLRlgqPkbwzQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" } }, - "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", - "hasInstallScript": true, + "node_modules/@turnkey/sdk-browser/node_modules/@turnkey/http": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@turnkey/http/-/http-3.11.0.tgz", + "integrity": "sha512-9HetrzUbXoo/CaXzeIlu+wg0lKUYTXPckrwT+95xb0VVLo2vS9WMWvc8Qhi138HnZxFzeqaeJ7/r8gFBV04HrQ==", + "license": "Apache-2.0", "dependencies": { - "node-gyp-build": "^4.3.0" + "@turnkey/api-key-stamper": "0.4.7", + "@turnkey/encoding": "0.5.0", + "@turnkey/webauthn-stamper": "0.5.1", + "cross-fetch": "^3.1.5" }, "engines": { - "node": ">=6.14.2" + "node": ">=18.0.0" } }, - "node_modules/builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", - "dev": true, - "dependencies": { - "semver": "^7.0.0" + "node_modules/@turnkey/sdk-browser/node_modules/@turnkey/iframe-stamper": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@turnkey/iframe-stamper/-/iframe-stamper-2.5.0.tgz", + "integrity": "sha512-XjntbA5CNjxGRH+loceAlVLL9PG9Q4Y7p5zjBm4DeKclhD6lpUl9h8INArMEXIFbfLwLjjS6Q+SmQG4BHvNY6A==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" } }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "node_modules/@turnkey/sdk-browser/node_modules/@turnkey/sdk-types": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@turnkey/sdk-types/-/sdk-types-0.3.0.tgz", + "integrity": "sha512-w9WLK8rMBLMIQNtaEriW2mQRuRxWu5GCOZatReaB5FRrtUFJroXjB3V8C+wUER02w3znyZzklQGPL1P32n6iuA==", + "license": "Apache-2.0", "engines": { - "node": ">= 0.8" + "node": ">=18.0.0" } }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "node_modules/@turnkey/sdk-browser/node_modules/@turnkey/webauthn-stamper": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@turnkey/webauthn-stamper/-/webauthn-stamper-0.5.1.tgz", + "integrity": "sha512-eBwceTStSSettBQsLo3X5eJEarcK9f20cGUdi6jOesXOP86iYEIgR4+aH2qyCQ3eaovj+Hl44UGngXueIm/tKg==", + "license": "Apache-2.0", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" + "sha256-uint8array": "^0.10.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.0.0" } }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "node_modules/@turnkey/sdk-browser/node_modules/borsh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", + "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==", + "license": "Apache-2.0" + }, + "node_modules/@turnkey/sdk-browser/node_modules/bs58check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", + "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" + "@noble/hashes": "^1.2.0", + "bs58": "^6.0.0" + } + }, + "node_modules/@turnkey/sdk-browser/node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/@turnkey/sdk-server": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@turnkey/sdk-server/-/sdk-server-4.8.0.tgz", + "integrity": "sha512-EjHDA0RyLTvoY36umRyvwKQmeauYzoScLwF4Bq67OrpLBxNjydLz5e+mPoOJx8+ZkQV6/79pBZ6LYb0aFsm6oA==", + "license": "Apache-2.0", + "dependencies": { + "@turnkey/api-key-stamper": "0.4.7", + "@turnkey/http": "3.11.0", + "@turnkey/wallet-stamper": "1.0.9", + "buffer": "^6.0.3", + "cross-fetch": "^3.1.5" }, "engines": { - "node": ">= 0.4" + "node": ">=18.0.0" } }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "node_modules/@turnkey/sdk-server/node_modules/@turnkey/api-key-stamper": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@turnkey/api-key-stamper/-/api-key-stamper-0.4.7.tgz", + "integrity": "sha512-/0/kW7v+uCnmHnGMoHSXn4Vb/MxLAIivGxX/T0L4vVoIiJalQmqcCtgiWnPWZDiJNGjMKp+jd/8j6VXgbVVozg==", + "license": "Apache-2.0", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "@noble/curves": "^1.3.0", + "@turnkey/encoding": "0.5.0", + "sha256-uint8array": "^0.10.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18.0.0" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/@turnkey/sdk-server/node_modules/@turnkey/encoding": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@turnkey/encoding/-/encoding-0.5.0.tgz", + "integrity": "sha512-nRlKRQa6B5/xltGUKN1iKo4h4YC/0iFz0fAuFFZevc+YGDj7ddAP/3HkWmVvLmdoicUgs9rxvWbLRlgqPkbwzQ==", + "license": "Apache-2.0", "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/@turnkey/sdk-server/node_modules/@turnkey/http": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@turnkey/http/-/http-3.11.0.tgz", + "integrity": "sha512-9HetrzUbXoo/CaXzeIlu+wg0lKUYTXPckrwT+95xb0VVLo2vS9WMWvc8Qhi138HnZxFzeqaeJ7/r8gFBV04HrQ==", + "license": "Apache-2.0", + "dependencies": { + "@turnkey/api-key-stamper": "0.4.7", + "@turnkey/encoding": "0.5.0", + "@turnkey/webauthn-stamper": "0.5.1", + "cross-fetch": "^3.1.5" + }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/camelize": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/@turnkey/sdk-server/node_modules/@turnkey/webauthn-stamper": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@turnkey/webauthn-stamper/-/webauthn-stamper-0.5.1.tgz", + "integrity": "sha512-eBwceTStSSettBQsLo3X5eJEarcK9f20cGUdi6jOesXOP86iYEIgR4+aH2qyCQ3eaovj+Hl44UGngXueIm/tKg==", + "license": "Apache-2.0", + "dependencies": { + "sha256-uint8array": "^0.10.7" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001632", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", - "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/cbw-sdk": { - "name": "@coinbase/wallet-sdk", - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.9.3.tgz", - "integrity": "sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==", + "node_modules/@turnkey/sdk-server/node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", "dependencies": { - "bn.js": "^5.2.1", - "buffer": "^6.0.3", - "clsx": "^1.2.1", - "eth-block-tracker": "^7.1.0", - "eth-json-rpc-filters": "^6.0.0", - "eventemitter3": "^5.0.1", - "keccak": "^3.0.3", - "preact": "^10.16.0", - "sha.js": "^2.4.11" + "node-fetch": "^2.7.0" } }, - "node_modules/cbw-sdk/node_modules/clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "node_modules/@turnkey/sdk-types": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@turnkey/sdk-types/-/sdk-types-0.11.1.tgz", + "integrity": "sha512-PvRWjDYgFbfRPW5MRuXGTvDSE5v4faBePhpVkWN2xV559ouLxa2PAXcx1CnQms8qFKp8oa7ioiiaTSyn1wKqxQ==", + "license": "Apache-2.0", "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@turnkey/viem": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/@turnkey/viem/-/viem-0.13.1.tgz", + "integrity": "sha512-0W3sp7BBD2nSqHfNrfjUByLm4l53ciAN+9Gjf8K9KB6d3wmLgnaw1cf40qx7TinrppFvevEi/B8VgcisfCu5KA==", + "license": "Apache-2.0", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@noble/curves": "1.8.0", + "@openzeppelin/contracts": "^4.9.0", + "@turnkey/api-key-stamper": "0.4.7", + "@turnkey/http": "3.11.0", + "@turnkey/sdk-browser": "5.9.0", + "@turnkey/sdk-server": "4.8.0", + "cross-fetch": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=18.0.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "viem": "^1.16.6 || ^2.24.2" } }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "node_modules/@turnkey/viem/node_modules/@noble/curves": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "@noble/hashes": "1.7.0" }, "engines": { - "node": ">= 14.16.0" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" + "node_modules/@turnkey/viem/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/@turnkey/viem/node_modules/@turnkey/api-key-stamper": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/@turnkey/api-key-stamper/-/api-key-stamper-0.4.7.tgz", + "integrity": "sha512-/0/kW7v+uCnmHnGMoHSXn4Vb/MxLAIivGxX/T0L4vVoIiJalQmqcCtgiWnPWZDiJNGjMKp+jd/8j6VXgbVVozg==", + "license": "Apache-2.0", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "@noble/curves": "^1.3.0", + "@turnkey/encoding": "0.5.0", + "sha256-uint8array": "^0.10.7" + }, + "engines": { + "node": ">=18.0.0" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "node_modules/@turnkey/viem/node_modules/@turnkey/encoding": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@turnkey/encoding/-/encoding-0.5.0.tgz", + "integrity": "sha512-nRlKRQa6B5/xltGUKN1iKo4h4YC/0iFz0fAuFFZevc+YGDj7ddAP/3HkWmVvLmdoicUgs9rxvWbLRlgqPkbwzQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "node_modules/@turnkey/viem/node_modules/@turnkey/http": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@turnkey/http/-/http-3.11.0.tgz", + "integrity": "sha512-9HetrzUbXoo/CaXzeIlu+wg0lKUYTXPckrwT+95xb0VVLo2vS9WMWvc8Qhi138HnZxFzeqaeJ7/r8gFBV04HrQ==", + "license": "Apache-2.0", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "@turnkey/api-key-stamper": "0.4.7", + "@turnkey/encoding": "0.5.0", + "@turnkey/webauthn-stamper": "0.5.1", + "cross-fetch": "^3.1.5" }, "engines": { - "node": ">=8" + "node": ">=18.0.0" } }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/@turnkey/viem/node_modules/@turnkey/http/node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" + "node-fetch": "^2.7.0" } }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "node_modules/@turnkey/viem/node_modules/@turnkey/webauthn-stamper": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@turnkey/webauthn-stamper/-/webauthn-stamper-0.5.1.tgz", + "integrity": "sha512-eBwceTStSSettBQsLo3X5eJEarcK9f20cGUdi6jOesXOP86iYEIgR4+aH2qyCQ3eaovj+Hl44UGngXueIm/tKg==", + "license": "Apache-2.0", + "dependencies": { + "sha256-uint8array": "^0.10.7" + }, "engines": { - "node": ">=6" + "node": ">=18.0.0" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@turnkey/wallet-stamper": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@turnkey/wallet-stamper/-/wallet-stamper-1.0.9.tgz", + "integrity": "sha512-BvqmewbwjdQwwDy1o5GY240jinwoIU6pX7uXIxeAKEbhXUlAKlbESW5U1MLnAZj4dK1kNdsr1kvFW53vq5Dsdw==", + "license": "Apache-2.0", "dependencies": { - "color-name": "~1.1.4" + "@turnkey/crypto": "2.6.0", + "@turnkey/encoding": "0.5.0" }, - "engines": { - "node": ">=7.0.0" + "optionalDependencies": { + "viem": "^2.21.35" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/@turnkey/wallet-stamper/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/@turnkey/wallet-stamper/node_modules/@noble/curves": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.0.tgz", + "integrity": "sha512-7YDlXiNMdO1YZeH6t/kvopHHbIZzlxrCV9WLqCY6QhcXOoXiNCMDqJIglZ9Yjx5+w7Dz30TITFrlTjnRg7sKEg==", + "license": "MIT", "dependencies": { - "delayed-stream": "~1.0.0" + "@noble/hashes": "1.8.0" }, "engines": { - "node": ">= 0.8" + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "node_modules/@turnkey/wallet-stamper/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "node_modules/@turnkey/wallet-stamper/node_modules/@turnkey/crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@turnkey/crypto/-/crypto-2.6.0.tgz", + "integrity": "sha512-v7+B1RDg0qhRKNqynthvi1TUaNd5I4KoJL6CjrUmr2pWQ3LTvoeifJ7b9NjgkBnYMf4M8UV4gupguIH7ZaA7vA==", + "license": "Apache-2.0", "dependencies": { - "safe-buffer": "5.2.1" + "@noble/ciphers": "1.3.0", + "@noble/curves": "1.9.0", + "@noble/hashes": "1.8.0", + "@turnkey/encoding": "0.5.0", + "borsh": "2.0.0", + "bs58": "6.0.0", + "bs58check": "4.0.0" }, "engines": { - "node": ">= 0.6" + "node": ">=18.0.0" } }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "node_modules/@turnkey/wallet-stamper/node_modules/@turnkey/encoding": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@turnkey/encoding/-/encoding-0.5.0.tgz", + "integrity": "sha512-nRlKRQa6B5/xltGUKN1iKo4h4YC/0iFz0fAuFFZevc+YGDj7ddAP/3HkWmVvLmdoicUgs9rxvWbLRlgqPkbwzQ==", + "license": "Apache-2.0", "engines": { - "node": ">= 0.6" + "node": ">=18.0.0" } }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "node_modules/@turnkey/wallet-stamper/node_modules/borsh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", + "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==", + "license": "Apache-2.0" }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "node_modules/@turnkey/wallet-stamper/node_modules/bs58check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", + "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^6.0.0" + } + }, + "node_modules/@turnkey/webauthn-stamper": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@turnkey/webauthn-stamper/-/webauthn-stamper-0.4.3.tgz", + "integrity": "sha512-hJuIpwny44TOrkFJiK8uA29RRO1A9xJK3KbN4PWqBxTLh1r7ntkl3zslc/qAkgnw6f+OREQbhQGoYkTdIX+7QA==", + "license": "Apache-2.0", + "dependencies": { + "@noble/hashes": "^1.3.2", + "buffer": "^6.0.3" + }, "engines": { - "node": ">= 0.6" + "node": ">=18.0.0" } }, - "node_modules/cookie-es": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", - "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "node_modules/@types/d3-array": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", + "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", + "license": "MIT" }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "node_modules/@types/d3-color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", + "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", + "license": "MIT" + }, + "node_modules/@types/d3-ease": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", + "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", + "license": "MIT" + }, + "node_modules/@types/d3-interpolate": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", + "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", + "license": "MIT", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - }, - "engines": { - "node": ">=10" + "@types/d3-color": "*" } }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" + "node_modules/@types/d3-path": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", + "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", + "license": "MIT" + }, + "node_modules/@types/d3-scale": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", + "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", + "license": "MIT", + "dependencies": { + "@types/d3-time": "*" } }, - "node_modules/cross-fetch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", - "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "node_modules/@types/d3-shape": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", + "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", + "license": "MIT", "dependencies": { - "node-fetch": "^2.7.0" + "@types/d3-path": "*" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, + "node_modules/@types/d3-time": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", + "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", + "license": "MIT" + }, + "node_modules/@types/d3-timer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", + "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", + "license": "MIT" + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "@types/ms": "*" } }, - "node_modules/crossws": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", - "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "node_modules/@types/dns-packet": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/@types/dns-packet/-/dns-packet-5.6.5.tgz", + "integrity": "sha512-qXOC7XLOEe43ehtWJCMnQXvgcIpv6rPmQ1jXT98Ad8A3TB1Ue50jsCbSSSyuazScEuZ/Q026vHbrOTVkmwA+7Q==", + "license": "MIT", "dependencies": { - "uncrypto": "^0.1.3" + "@types/node": "*" } }, - "node_modules/css-color-keywords": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", - "engines": { - "node": ">=4" + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz", + "integrity": "sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g==", + "license": "MIT", + "dependencies": { + "hoist-non-react-statics": "^3.3.0" + }, + "peerDependencies": { + "@types/react": "*" } }, - "node_modules/css-to-react-native": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "node_modules/@types/http-link-header": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.7.tgz", + "integrity": "sha512-snm5oLckop0K3cTDAiBnZDy6ncx9DJ3mCRDvs42C884MbVYPP74Tiq2hFsSDRTyjK6RyDYDIulPiW23ge+g5Lw==", + "license": "MIT", "dependencies": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" + "@types/node": "*" } }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsonld": { + "version": "1.5.15", + "resolved": "https://registry.npmjs.org/@types/jsonld/-/jsonld-1.5.15.tgz", + "integrity": "sha512-PlAFPZjL+AuGYmwlqwKEL0IMP8M8RexH0NIPGfCVWSQ041H2rR/8OlyZSD7KsCVoN8vCfWdtWDBxX8yBVP+xow==", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==", + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/multicast-dns": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/@types/multicast-dns/-/multicast-dns-7.2.4.tgz", + "integrity": "sha512-ib5K4cIDR4Ro5SR3Sx/LROkMDa0BHz0OPaCBL/OSPDsAXEGZ3/KQeS6poBKYVN7BfjXDL9lWNwzyHVgt/wkyCw==", + "license": "MIT", + "dependencies": { + "@types/dns-packet": "*", + "@types/node": "*" } }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" + "node_modules/@types/node": { + "version": "20.19.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.28.tgz", + "integrity": "sha512-VyKBr25BuFDzBFCK5sUM6ZXiWfqgCTwTAOK8qzGV/m9FCirXYDlmczJ+d5dXBAQALGCdRRdbteKYfJ84NGEusw==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" } }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "node_modules/@types/node/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.15", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz", + "integrity": "sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==", + "license": "MIT" + }, + "node_modules/@types/rdfjs__formats-common": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__formats-common/-/rdfjs__formats-common-3.1.5.tgz", + "integrity": "sha512-Zt74nSd9NemOq90/2cMrBVwnHJIXHFFDS7tkY4Slei1eRoQJpws059Lx9O+mqaFspkD3r81Enu/5CiNfQg9V7g==", + "license": "MIT", "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" + "@rdfjs/types": ">=1.0.0", + "@types/node": "*", + "@types/rdfjs__parser-jsonld": "*", + "@types/rdfjs__parser-n3": "*", + "@types/rdfjs__serializer-jsonld": "*", + "@types/rdfjs__serializer-ntriples": "*", + "@types/rdfjs__sink-map": "*", + "rdfxml-streaming-parser": ">=2" } }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "engines": { - "node": ">=12" + "node_modules/@types/rdfjs__namespace": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/rdfjs__namespace/-/rdfjs__namespace-2.0.10.tgz", + "integrity": "sha512-xoVzEIOxcpyteEmzaj94MSBbrBFs+vqv05joMhzLEiPRwsBBDnhkdBCaaDxR1Tf7wOW0kB2R1IYe4C3vEBFPgA==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" } }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "engines": { - "node": ">=12" + "node_modules/@types/rdfjs__parser-jsonld": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@types/rdfjs__parser-jsonld/-/rdfjs__parser-jsonld-2.1.7.tgz", + "integrity": "sha512-n35K+c1Y95580N202Jxly6xjFE953FF+Y2mwxok6zLfMo4rgIfgMBElnNwpja0IeYXTuzGm1tEz7va3lItGrTg==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0", + "@types/jsonld": "*" } }, - "node_modules/d3-format": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", - "engines": { - "node": ">=12" + "node_modules/@types/rdfjs__parser-n3": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/rdfjs__parser-n3/-/rdfjs__parser-n3-2.0.6.tgz", + "integrity": "sha512-VHfdq7BDV6iMCtHkzTFSOuUWnqGlMUmEF0UZyK4+g9SzLWvc6TMcU5TYwQPQIz/e0s7dZ+xomxx6mVtIzsRQ/A==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0" } }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "node_modules/@types/rdfjs__serializer-jsonld": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__serializer-jsonld/-/rdfjs__serializer-jsonld-2.0.5.tgz", + "integrity": "sha512-ubdLD9QgZzAt+65NSPzh2qWCPWcGYlHEWgkP6uRwfm7JC48Xh/QjzwOTG13MTomOkQqcN4R7PIG0j3Ca8iyNWQ==", + "license": "MIT", "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" + "@rdfjs/types": ">=1.0.0" } }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "engines": { - "node": ">=12" + "node_modules/@types/rdfjs__serializer-ntriples": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/rdfjs__serializer-ntriples/-/rdfjs__serializer-ntriples-2.0.6.tgz", + "integrity": "sha512-Nn3e3eyuymLvbI5MFzI7ODD/X6ZGpbB9fLaWOB00RtFHd2vttk3wQL2fzzsZZQPJ/ihC/xlFE4cNQkO6SoHa7w==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": ">=1.0.0" } }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "node_modules/@types/rdfjs__sink-map": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__sink-map/-/rdfjs__sink-map-2.0.5.tgz", + "integrity": "sha512-ycUBlOMbp9YpjrBrMwGv3uiqulOWgodess06cinYLxomOTc2ET9rEQklgM5rJqnu5WMsVP8SFG3fFw36/5hADQ==", + "license": "MIT", "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" + "@rdfjs/types": "*" + } + }, + "node_modules/@types/react": { + "version": "18.3.27", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", + "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.2.2" } }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" + "node_modules/@types/react-dom": { + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" } }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" + "node_modules/@types/react-transition-group": { + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*" } }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "node_modules/@types/readable-stream": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-4.0.23.tgz", + "integrity": "sha512-wwXrtQvbMHxCbBgjHaMGEmImFTQxxpfMOR/ZoQnXxB1woqkUbdLGFDgauo00Py9IudiaqSeiBiulSV9i6XIPig==", + "license": "MIT", "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" + "@types/node": "*" } }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "engines": { - "node": ">=12" + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/sinon": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-20.0.0.tgz", + "integrity": "sha512-etYGUC6IEevDGSWvR9WrECRA01ucR2/Oi9XMBUAdV0g4bLkNf4HlZWGiGlDOq5lgwXRwcV+PSeKgFcW4QzzYOg==", + "license": "MIT", + "dependencies": { + "@types/sinonjs__fake-timers": "*" } }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true + "node_modules/@types/sinonjs__fake-timers": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-15.0.1.tgz", + "integrity": "sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==", + "license": "MIT" }, - "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "license": "MIT" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", + "license": "MIT" + }, + "node_modules/@types/w3c-web-usb": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@types/w3c-web-usb/-/w3c-web-usb-1.0.13.tgz", + "integrity": "sha512-N2nSl3Xsx8mRHZBvMSdNGtzMyeleTvtlEw+ujujgXalPqOjIA6UtrqcB6OzyUjkTbDm3J7P1RNK1lgoO7jxtsw==", + "license": "MIT" + }, + "node_modules/@types/web": { + "version": "0.0.197", + "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.197.tgz", + "integrity": "sha512-V4sOroWDADFx9dLodWpKm298NOJ1VJ6zoDVgaP+WBb/utWxqQ6gnMzd9lvVDAr/F3ibiKaxH9i45eS0gQPSTaQ==", + "license": "Apache-2.0" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", + "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/type-utils": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">= 0.4" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 0.4" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" }, "engines": { - "node": ">= 0.4" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "node_modules/@typescript-eslint/type-utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", + "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.21.0" + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/utils": "6.21.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": ">=0.11" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/date-fns-jalali": { - "version": "4.0.0-0", - "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.0.0-0.tgz", - "integrity": "sha512-EczB+gWceuWCRlacE4T+WmdP+BV/IUQpjQW9aBa9DNcXkKuZFv3WBDqeP2Ew+6YFBtPRRcH5U22+C6gcpwgG8A==", - "optional": true, - "peer": true - }, - "node_modules/dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" - }, - "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dependencies": { - "ms": "2.1.2" + "url": "https://opencollective.com/typescript-eslint" }, - "engines": { - "node": ">=6.0" + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "supports-color": { + "typescript": { "optional": true } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" - }, - "node_modules/decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deep-object-diff": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", - "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", + "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "dev": true, + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "semver": "^7.5.4" }, "engines": { - "node": ">= 0.4" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": ">= 0.4" + "node": "^16.0.0 || >=18.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "dev": true, + "license": "ISC" }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], "dev": true, - "engines": { - "node": ">=6" - } + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] }, - "node_modules/derive-valtio": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/derive-valtio/-/derive-valtio-0.1.0.tgz", - "integrity": "sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==", + "node_modules/@vocabulary/sh": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@vocabulary/sh/-/sh-1.1.6.tgz", + "integrity": "sha512-8IfAQoKh57THz8LA2+n1jaY/VC2XaqMNSsJgzBKSSrj20y5PSMAawb6dMsxoLxqDIPBDs1TFRl/9CijUnwbBUA==", + "license": "MIT", "peerDependencies": { - "valtio": "*" + "@rdfjs/types": "^2.0.0" } }, - "node_modules/destr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", - "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==" - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" + "node_modules/@wagmi/connectors": { + "version": "5.11.2", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.11.2.tgz", + "integrity": "sha512-OkiElOI8xXGPDZE5UdG6NgDT3laSkEh9llX1DDapUnfnKecK3Tr/HUf5YzgwDhEoox8mdxp+8ZCjtnTKz56SdA==", + "license": "MIT", + "dependencies": { + "@base-org/account": "1.1.1", + "@coinbase/wallet-sdk": "4.3.6", + "@gemini-wallet/core": "0.2.0", + "@metamask/sdk": "0.33.1", + "@safe-global/safe-apps-provider": "0.18.6", + "@safe-global/safe-apps-sdk": "9.1.0", + "@walletconnect/ethereum-provider": "2.21.1", + "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3", + "porto": "0.2.19" + }, + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "@wagmi/core": "2.21.2", + "typescript": ">=5.0.4", + "viem": "2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + "node_modules/@wagmi/core": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-3.2.2.tgz", + "integrity": "sha512-nCCza85tmE/lNorZemv0ah0OwOewMRiNJbSkIkGPr/mSH6mAy+/D/GbP8Gb3j2Nw85LuF5wxgG1fFiU6mB3CyQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "5.0.1", + "mipd": "0.0.7", + "zustand": "5.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "@tanstack/query-core": ">=5.0.0", + "ox": ">=0.11.1", + "typescript": ">=5.7.3", + "viem": "2.x" + }, + "peerDependenciesMeta": { + "@tanstack/query-core": { + "optional": true + }, + "ox": { + "optional": true + }, + "typescript": { + "optional": true + } + } }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "optional": true, + "node_modules/@wagmi/core/node_modules/zustand": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz", + "integrity": "sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } } }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" - }, - "node_modules/detect-node-es": { + "node_modules/@wallet-standard/app": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" - }, - "node_modules/dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, + "resolved": "https://registry.npmjs.org/@wallet-standard/app/-/app-1.1.0.tgz", + "integrity": "sha512-3CijvrO9utx598kjr45hTbbeeykQrQfKmSnxeWOgU25TOEpvcipD/bYDQWIqUv1Oc6KK4YStokSMu/FBNecGUQ==", + "license": "Apache-2.0", "dependencies": { - "path-type": "^4.0.0" + "@wallet-standard/base": "^1.1.0" }, "engines": { - "node": ">=8" + "node": ">=16" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, + "node_modules/@wallet-standard/base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@wallet-standard/base/-/base-1.1.0.tgz", + "integrity": "sha512-DJDQhjKmSNVLKWItoKThJS+CsJQjR9AOBOirBVT1F9YpRyC9oYHE+ZnSf8y8bxUphtKqdQMPVQ2mHohYdRvDVQ==", + "license": "Apache-2.0", "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "dependencies": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "node": ">=16" } }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "node_modules/@wallet-standard/core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/core/-/core-1.1.1.tgz", + "integrity": "sha512-5Xmjc6+Oe0hcPfVc5n8F77NVLwx1JVAoCVgQpLyv/43/bhtIif+Gx3WUrDlaSDoM8i2kA2xd6YoFbHCxs+e0zA==", + "license": "Apache-2.0", "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "@wallet-standard/app": "^1.1.0", + "@wallet-standard/base": "^1.1.0", + "@wallet-standard/errors": "^0.1.1", + "@wallet-standard/features": "^1.1.0", + "@wallet-standard/wallet": "^1.1.0" }, "engines": { - "node": ">= 0.4" - } - }, - "node_modules/duplexify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", - "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.2" + "node": ">=16" } }, - "node_modules/eciesjs": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.15.tgz", - "integrity": "sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==", + "node_modules/@wallet-standard/errors": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@wallet-standard/errors/-/errors-0.1.1.tgz", + "integrity": "sha512-V8Ju1Wvol8i/VDyQOHhjhxmMVwmKiwyxUZBnHhtiPZJTWY0U/Shb2iEWyGngYEbAkp2sGTmEeNX1tVyGR7PqNw==", + "license": "Apache-2.0", "dependencies": { - "@ecies/ciphers": "^0.2.3", - "@noble/ciphers": "^1.3.0", - "@noble/curves": "^1.9.1", - "@noble/hashes": "^1.8.0" + "chalk": "^5.4.1", + "commander": "^13.1.0" + }, + "bin": { + "errors": "bin/cli.mjs" }, "engines": { - "bun": ">=1", - "deno": ">=2", "node": ">=16" } }, - "node_modules/eciesjs/node_modules/@noble/ciphers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", - "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "node_modules/@wallet-standard/errors/node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", "engines": { - "node": "^14.21.3 || >=16" + "node": ">=18" + } + }, + "node_modules/@wallet-standard/features": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@wallet-standard/features/-/features-1.1.0.tgz", + "integrity": "sha512-hiEivWNztx73s+7iLxsuD1sOJ28xtRix58W7Xnz4XzzA/pF0+aicnWgjOdA10doVDEDZdUuZCIIqG96SFNlDUg==", + "license": "Apache-2.0", + "dependencies": { + "@wallet-standard/base": "^1.1.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=16" } }, - "node_modules/eciesjs/node_modules/@noble/curves": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", - "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "node_modules/@wallet-standard/wallet": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@wallet-standard/wallet/-/wallet-1.1.0.tgz", + "integrity": "sha512-Gt8TnSlDZpAl+RWOOAB/kuvC7RpcdWAlFbHNoi4gsXsfaWa1QCT6LBcfIYTPdOZC9OVZUDwqGuGAcqZejDmHjg==", + "license": "Apache-2.0", "dependencies": { - "@noble/hashes": "1.8.0" + "@wallet-standard/base": "^1.1.0" }, "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=16" } }, - "node_modules/eciesjs/node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", - "engines": { - "node": "^14.21.3 || >=16" + "node_modules/@walletconnect/core": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.1.tgz", + "integrity": "sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.1", + "@walletconnect/utils": "2.21.1", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=18" } }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "node_modules/@walletconnect/core/node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true + "node_modules/@walletconnect/core/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", + "dependencies": { + "multiformats": "^9.4.2" + } }, - "node_modules/encode-utf8": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", - "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" + "node_modules/@walletconnect/environment": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", + "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==", + "license": "MIT", + "dependencies": { + "tslib": "1.14.1" + } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" + "node_modules/@walletconnect/environment/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/ethereum-provider": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.21.1.tgz", + "integrity": "sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit": "1.7.8", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/sign-client": "2.21.1", + "@walletconnect/types": "2.21.1", + "@walletconnect/universal-provider": "2.21.1", + "@walletconnect/utils": "2.21.1", + "events": "3.3.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "node_modules/@walletconnect/events": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz", + "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==", + "license": "MIT", "dependencies": { - "once": "^1.4.0" + "keyvaluestorage-interface": "^1.0.0", + "tslib": "1.14.1" } }, - "node_modules/engine.io-client": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", - "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", + "node_modules/@walletconnect/events/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/heartbeat": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", + "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", + "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.1.1" + "@walletconnect/events": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "events": "^3.3.0" } }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "node_modules/@walletconnect/jsonrpc-http-connection": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz", + "integrity": "sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.1", + "cross-fetch": "^3.1.4", + "events": "^3.3.0" } }, - "node_modules/engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", - "engines": { - "node": ">=10.0.0" + "node_modules/@walletconnect/jsonrpc-http-connection/node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" } }, - "node_modules/enhanced-resolve": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", - "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", - "dev": true, + "node_modules/@walletconnect/jsonrpc-provider": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", + "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" + "@walletconnect/jsonrpc-utils": "^1.0.8", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/@walletconnect/jsonrpc-types": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", + "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", + "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "events": "^3.3.0", + "keyvaluestorage-interface": "^1.0.0" } }, - "node_modules/es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, + "node_modules/@walletconnect/jsonrpc-utils": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", + "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", + "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@walletconnect/environment": "^1.0.1", + "@walletconnect/jsonrpc-types": "^1.0.3", + "tslib": "1.14.1" } }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "engines": { - "node": ">= 0.4" + "node_modules/@walletconnect/jsonrpc-utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", + "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/@walletconnect/jsonrpc-ws-connection/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", - "dev": true, + "node_modules/@walletconnect/keyvaluestorage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", + "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" + "@walletconnect/safe-json": "^1.0.1", + "idb-keyval": "^6.2.1", + "unstorage": "^1.9.0" }, - "engines": { - "node": ">= 0.4" + "peerDependencies": { + "@react-native-async-storage/async-storage": "1.x" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + } } }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "node_modules/@walletconnect/logger": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz", + "integrity": "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==", + "license": "MIT", "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" + "@walletconnect/safe-json": "^1.0.2", + "pino": "7.11.0" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", - "dev": true, + "node_modules/@walletconnect/relay-api": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", + "integrity": "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==", + "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" + "@walletconnect/jsonrpc-types": "^1.0.2" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, + "node_modules/@walletconnect/relay-auth": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", + "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "@noble/curves": "1.8.0", + "@noble/hashes": "1.7.0", + "@walletconnect/safe-json": "^1.0.1", + "@walletconnect/time": "^1.0.2", + "uint8arrays": "^3.0.0" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, + "node_modules/@walletconnect/relay-auth/node_modules/@noble/curves": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", + "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", + "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@noble/hashes": "1.7.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/es-toolkit": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.33.0.tgz", - "integrity": "sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==" - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/@walletconnect/relay-auth/node_modules/@noble/hashes": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", + "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==", + "license": "MIT", "engines": { - "node": ">=10" + "node": "^14.21.3 || >=16" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } + "node_modules/@walletconnect/relay-auth/node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" }, - "node_modules/eslint-config-next": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.4.tgz", - "integrity": "sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==", - "dev": true, + "node_modules/@walletconnect/relay-auth/node_modules/uint8arrays": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "14.0.4", - "@rushstack/eslint-patch": "^1.3.3", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" - }, - "peerDependencies": { - "eslint": "^7.23.0 || ^8.0.0", - "typescript": ">=3.3.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "multiformats": "^9.4.2" } }, - "node_modules/eslint-config-oceanprotocol": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-oceanprotocol/-/eslint-config-oceanprotocol-2.0.4.tgz", - "integrity": "sha512-VdCtlvjTHzlhErmy8BYCGj3r4/iSJDxseeQTISe5DSyrWaPJpMv728KxBvu+WsCWfuI2WzErAX1HDE/HjmcI6w==", - "dev": true, + "node_modules/@walletconnect/safe-json": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", + "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", + "license": "MIT", "dependencies": { - "eslint": "^8.23.1", - "eslint-config-prettier": "^8.5.0", - "eslint-config-standard": "^17.0.0", - "eslint-config-standard-react": "^11.0.1", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.3.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.0.1", - "eslint-plugin-react": "^7.31.8", - "eslint-plugin-security": "^1.5.0" + "tslib": "1.14.1" } }, - "node_modules/eslint-config-oceanprotocol/node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } + "node_modules/@walletconnect/safe-json/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, - "node_modules/eslint-config-oceanprotocol/node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, + "node_modules/@walletconnect/sign-client": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.1.tgz", + "integrity": "sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", "dependencies": { - "prettier-linter-helpers": "^1.0.0" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" - }, - "peerDependenciesMeta": { - "eslint-config-prettier": { - "optional": true - } + "@walletconnect/core": "2.21.1", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.1", + "@walletconnect/utils": "2.21.1", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/solana-adapter": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/@walletconnect/solana-adapter/-/solana-adapter-0.0.8.tgz", + "integrity": "sha512-Qb7MT8SdkeBldfUCmF+rYW6vL98mxPuT1yAwww5X2vpx7xEPZvFCoAKnyT5fXu0v56rMxhW3MGejnHyyYdDY7Q==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit": "1.7.2", + "@walletconnect/universal-provider": "2.19.0", + "@walletconnect/utils": "2.19.0", + "bs58": "6.0.0" + }, + "peerDependencies": { + "@solana/wallet-adapter-base": "0.x", + "@solana/web3.js": "1.x" } }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" + "node_modules/@walletconnect/solana-adapter/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, - "peerDependencies": { - "eslint": ">=7.0.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "node_modules/@walletconnect/solana-adapter/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, "engines": { - "node": ">=12.0.0" + "node": "^14.21.3 || >=16" }, - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", - "eslint-plugin-promise": "^6.0.0" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eslint-config-standard-react": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard-react/-/eslint-config-standard-react-11.0.1.tgz", - "integrity": "sha512-4WlBynOqBZJRaX81CBcIGDHqUiqxvw4j/DbEIICz8QkMs3xEncoPgAoysiqCSsg71X92uhaBc8sgqB96smaMmg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": "^7.12.1", - "eslint-plugin-react": "^7.21.5" + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.2.tgz", + "integrity": "sha512-oo/evAyVxwc33i8ZNQ0+A/VE6vyTyzL3NBJmAe3I4vobgQeiobxMM0boKyLRMMbJggPn8DtoAAyG4GfpKaUPzQ==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.2", + "@reown/appkit-controllers": "1.7.2", + "@reown/appkit-polyfills": "1.7.2", + "@reown/appkit-scaffold-ui": "1.7.2", + "@reown/appkit-ui": "1.7.2", + "@reown/appkit-utils": "1.7.2", + "@reown/appkit-wallet": "1.7.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/universal-provider": "2.19.1", + "bs58": "6.0.0", + "valtio": "1.13.2", + "viem": ">=2.23.11" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-common": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.2.tgz", + "integrity": "sha512-DZkl3P5+Iw3TmsitWmWxYbuSCox8iuzngNp/XhbNDJd7t4Cj4akaIUxSEeCajNDiGHlu4HZnfyM1swWsOJ0cOw==", + "license": "Apache-2.0", "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "big.js": "6.2.2", + "dayjs": "1.11.13", + "viem": ">=2.23.11" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-controllers": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.2.tgz", + "integrity": "sha512-KCN/VOg+bgwaX5kcxcdN8Xq8YXnchMeZOvmbCltPEFDzaLRUWmqk9tNu1OVml0434iGMNo6hcVimIiwz6oaL3Q==", + "license": "Apache-2.0", "dependencies": { - "ms": "^2.1.1" + "@reown/appkit-common": "1.7.2", + "@reown/appkit-wallet": "1.7.2", + "@walletconnect/universal-provider": "2.19.1", + "valtio": "1.13.2", + "viem": ">=2.23.11" } }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-controllers/node_modules/@walletconnect/core": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", + "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", + "license": "Apache-2.0", "dependencies": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*" + "node": ">=18" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-controllers/node_modules/@walletconnect/sign-client": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", + "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "@walletconnect/core": "2.19.1", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "events": "3.3.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-controllers/node_modules/@walletconnect/universal-provider": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", + "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", "dependencies": { - "ms": "^2.1.1" + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.19.1", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "es-toolkit": "1.33.0", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", + "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", + "license": "Apache-2.0", "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "elliptic": "6.6.1", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" } }, - "node_modules/eslint-plugin-es/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-controllers/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, - "engines": { - "node": ">=6" + "peerDependencies": { + "typescript": ">=5.0.4" }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-polyfills": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.2.tgz", + "integrity": "sha512-TxCVSh9dV2tf1u+OzjzLjAwj7WHhBFufHlJ36tDp5vjXeUUne8KvYUS85Zsyg4Y9Yeh+hdSIOdL2oDCqlRxCmw==", + "license": "Apache-2.0", + "dependencies": { + "buffer": "6.0.3" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-scaffold-ui": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.2.tgz", + "integrity": "sha512-2Aifk5d23e40ijUipsN3qAMIB1Aphm2ZgsRQ+UvKRb838xR1oRs+MOsfDWgXhnccXWKbjPqyapZ25eDFyPYPNw==", + "license": "Apache-2.0", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "@reown/appkit-common": "1.7.2", + "@reown/appkit-controllers": "1.7.2", + "@reown/appkit-ui": "1.7.2", + "@reown/appkit-utils": "1.7.2", + "@reown/appkit-wallet": "1.7.2", + "lit": "3.1.0" + } + }, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-ui": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.2.tgz", + "integrity": "sha512-fZv8K7Df6A/TlTIWD/9ike1HwK56WfzYpHN1/yqnR/BnyOb3CKroNQxmRTmjeLlnwKWkltlOf3yx+Y6ucKMk6Q==", + "license": "Apache-2.0", + "dependencies": { + "@reown/appkit-common": "1.7.2", + "@reown/appkit-controllers": "1.7.2", + "@reown/appkit-wallet": "1.7.2", + "lit": "3.1.0", + "qrcode": "1.5.3" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-utils": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.2.tgz", + "integrity": "sha512-Z3gQnMPQopBdf1XEuptbf+/xVl9Hy0+yoK3K9pBb2hDdYNqJgJ4dXComhlRT8LjXFCQe1ZW0pVZTXmGQvOZ/OQ==", + "license": "Apache-2.0", "dependencies": { - "ms": "^2.1.1" + "@reown/appkit-common": "1.7.2", + "@reown/appkit-controllers": "1.7.2", + "@reown/appkit-polyfills": "1.7.2", + "@reown/appkit-wallet": "1.7.2", + "@walletconnect/logger": "2.1.2", + "@walletconnect/universal-provider": "2.19.1", + "valtio": "1.13.2", + "viem": ">=2.23.11" + }, + "peerDependencies": { + "valtio": "1.13.2" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-utils/node_modules/@walletconnect/core": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", + "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", + "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" }, "engines": { - "node": ">=0.10.0" + "node": ">=18" } }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-utils/node_modules/@walletconnect/sign-client": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", + "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.19.1", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-utils/node_modules/@walletconnect/universal-provider": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", + "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.19.1", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "es-toolkit": "1.33.0", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-n": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", - "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", + "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", + "license": "Apache-2.0", "dependencies": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=12.22.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=7.0.0" + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "elliptic": "6.6.1", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" } }, - "node_modules/eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-utils/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, - "engines": { - "node": ">=8.10.0" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, "peerDependencies": { - "eslint": ">=5.16.0" + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit-wallet": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.2.tgz", + "integrity": "sha512-WQ0ykk5TwsjOcUL62ajT1bhZYdFZl0HjwwAH9LYvtKYdyZcF0Ps4+y2H4HHYOc03Q+LKOHEfrFztMBLXPTxwZA==", + "license": "Apache-2.0", "dependencies": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, - "engines": { - "node": ">=8.10.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=4.19.1" + "@reown/appkit-common": "1.7.2", + "@reown/appkit-polyfills": "1.7.2", + "@walletconnect/logger": "2.1.2", + "zod": "3.22.4" } }, - "node_modules/eslint-plugin-node/node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit/node_modules/@walletconnect/core": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.1.tgz", + "integrity": "sha512-rMvpZS0tQXR/ivzOxN1GkHvw3jRRMlI/jRX5g7ZteLgg2L0ZcANsFvAU5IxILxIKcIkTCloF9TcfloKVbK3qmw==", + "license": "Apache-2.0", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "es-toolkit": "1.33.0", + "events": "3.3.0", + "uint8arrays": "3.1.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" + "node": ">=18" } }, - "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit/node_modules/@walletconnect/sign-client": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.1.tgz", + "integrity": "sha512-OgBHRPo423S02ceN3lAzcZ3MYb1XuLyTTkKqLmKp/icYZCyRzm3/ynqJDKndiBLJ5LTic0y07LiZilnliYqlvw==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/core": "2.19.1", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-node/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit/node_modules/@walletconnect/universal-provider": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.1.tgz", + "integrity": "sha512-4rdLvJ2TGDIieNWW3sZw2MXlX65iHpTuKb5vyvUHQtjIVNLj+7X/09iUAI/poswhtspBK0ytwbH+AIT/nbGpjg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.19.1", + "@walletconnect/types": "2.19.1", + "@walletconnect/utils": "2.19.1", + "es-toolkit": "1.33.0", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit/node_modules/@walletconnect/utils": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.1.tgz", + "integrity": "sha512-aOwcg+Hpph8niJSXLqkU25pmLR49B8ECXp5gFQDW5IeVgXHoOoK7w8a79GBhIBheMLlIt1322sTKQ7Rq5KzzFg==", + "license": "Apache-2.0", + "dependencies": { + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.1", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "elliptic": "6.6.1", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" + } + }, + "node_modules/@walletconnect/solana-adapter/node_modules/@reown/appkit/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" + "typescript": ">=5.0.4" }, "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { + "typescript": { "optional": true } } }, - "node_modules/eslint-plugin-promise": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", - "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node_modules/@walletconnect/solana-adapter/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" }, "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eslint-plugin-react": { - "version": "7.34.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.2.tgz", - "integrity": "sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", - "object.values": "^1.2.0", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" - }, - "engines": { - "node": ">=4" + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/core": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.19.0.tgz", + "integrity": "sha512-AEoyICLHQEnjijZr9XsL4xtFhC5Cmu0RsEGxAxmwxbfGvAcYcSCNp1fYq0Q6nHc8jyoPOALpwySTle300Y1vxw==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.0", + "@walletconnect/utils": "2.19.0", + "@walletconnect/window-getters": "1.0.1", + "events": "3.3.0", + "lodash.isequal": "4.5.0", + "uint8arrays": "3.1.0" }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + "engines": { + "node": ">=18" } }, - "node_modules/eslint-plugin-react/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/core/node_modules/@walletconnect/types": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.0.tgz", + "integrity": "sha512-Ttse3p3DCdFQ/TRQrsPMQJzFr7cb/2AF5ltLPzXRNMmapmGydc6WO8QU7g/tGEB3RT9nHcLY2aqlwsND9sXMxA==", + "license": "Apache-2.0", "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/sign-client": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.19.0.tgz", + "integrity": "sha512-+GkuJzPK9SPq+RZgdKHNOvgRagxh/hhYWFHOeSiGh3DyAQofWuFTq4UrN/MPjKOYswSSBKfIa+iqKYsi4t8zLQ==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "@walletconnect/core": "2.19.0", + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/logger": "2.1.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.0", + "@walletconnect/utils": "2.19.0", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-react/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "bin": { - "semver": "bin/semver.js" + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.0.tgz", + "integrity": "sha512-Ttse3p3DCdFQ/TRQrsPMQJzFr7cb/2AF5ltLPzXRNMmapmGydc6WO8QU7g/tGEB3RT9nHcLY2aqlwsND9sXMxA==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" } }, - "node_modules/eslint-plugin-security": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz", - "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/types": { + "version": "2.19.1", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.1.tgz", + "integrity": "sha512-XWWGLioddH7MjxhyGhylL7VVariVON2XatJq/hy0kSGJ1hdp31z194nHN5ly9M495J9Hw8lcYjGXpsgeKvgxzw==", + "license": "Apache-2.0", "dependencies": { - "safe-regex": "^2.1.1" + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" } }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/universal-provider": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.19.0.tgz", + "integrity": "sha512-e9JvadT5F8QwdLmd7qBrmACq04MT7LQEe1m3X2Fzvs3DWo8dzY8QbacnJy4XSv5PCdxMWnua+2EavBk8nrI9QA==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.19.0", + "@walletconnect/types": "2.19.0", + "@walletconnect/utils": "2.19.0", + "events": "3.3.0", + "lodash": "4.17.21" } }, - "node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/universal-provider/node_modules/@walletconnect/types": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.0.tgz", + "integrity": "sha512-Ttse3p3DCdFQ/TRQrsPMQJzFr7cb/2AF5ltLPzXRNMmapmGydc6WO8QU7g/tGEB3RT9nHcLY2aqlwsND9sXMxA==", + "license": "Apache-2.0", "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" } }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/utils": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.19.0.tgz", + "integrity": "sha512-LZ0D8kevknKfrfA0Sq3Hf3PpmM8oWyNfsyWwFR51t//2LBgtN2Amz5xyoDDJcjLibIbKAxpuo/i0JYAQxz+aPA==", + "license": "Apache-2.0", + "dependencies": { + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.19.0", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "detect-browser": "5.3.0", + "elliptic": "6.6.1", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/utils/node_modules/@walletconnect/types": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.19.0.tgz", + "integrity": "sha512-Ttse3p3DCdFQ/TRQrsPMQJzFr7cb/2AF5ltLPzXRNMmapmGydc6WO8QU7g/tGEB3RT9nHcLY2aqlwsND9sXMxA==", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, + "node_modules/@walletconnect/solana-adapter/node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "peerDependencies": { + "typescript": ">=5.0.4" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" + "node_modules/@walletconnect/solana-adapter/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" }, - "engines": { - "node": ">=4.0" + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" + "node_modules/@walletconnect/solana-adapter/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node_modules/@walletconnect/solana-adapter/node_modules/lit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.1.0.tgz", + "integrity": "sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.0.0", + "lit-element": "^4.0.0", + "lit-html": "^3.1.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } + "node_modules/@walletconnect/solana-adapter/node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" }, - "node_modules/eth-block-tracker": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-7.1.0.tgz", - "integrity": "sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==", + "node_modules/@walletconnect/solana-adapter/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "@metamask/eth-json-rpc-provider": "^1.0.0", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^5.0.1", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, - "engines": { - "node": ">=14.0.0" + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/eth-block-tracker/node_modules/@metamask/utils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", - "integrity": "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==", + "node_modules/@walletconnect/solana-adapter/node_modules/qrcode": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", + "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "license": "MIT", "dependencies": { - "@ethereumjs/tx": "^4.1.2", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "semver": "^7.3.8", - "superstruct": "^1.0.3" + "dijkstrajs": "^1.0.1", + "encode-utf8": "^1.0.3", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" }, "engines": { - "node": ">=14.0.0" + "node": ">=10.13.0" } }, - "node_modules/eth-json-rpc-filters": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-6.0.1.tgz", - "integrity": "sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==", + "node_modules/@walletconnect/solana-adapter/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", "dependencies": { - "@metamask/safe-event-emitter": "^3.0.0", - "async-mutex": "^0.2.6", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - }, - "engines": { - "node": ">=14.0.0" + "multiformats": "^9.4.2" } }, - "node_modules/eth-json-rpc-filters/node_modules/pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "node_modules/@walletconnect/solana-adapter/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@walletconnect/solana-adapter/node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "license": "MIT", "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/colinhacks" } }, - "node_modules/eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", + "node_modules/@walletconnect/time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", + "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==", + "license": "MIT", "dependencies": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" + "tslib": "1.14.1" } }, - "node_modules/eth-rpc-errors": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", - "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", + "node_modules/@walletconnect/time/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/types": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.1.tgz", + "integrity": "sha512-UeefNadqP6IyfwWC1Yi7ux+ljbP2R66PLfDrDm8izmvlPmYlqRerJWJvYO4t0Vvr9wrG4Ko7E0c4M7FaPKT/sQ==", + "license": "Apache-2.0", "dependencies": { - "fast-safe-stringify": "^2.0.6" + "@walletconnect/events": "1.0.1", + "@walletconnect/heartbeat": "1.2.2", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "events": "3.3.0" + } + }, + "node_modules/@walletconnect/universal-provider": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.1.tgz", + "integrity": "sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg==", + "deprecated": "Reliability and performance improvements. See: https://github.com/WalletConnect/walletconnect-monorepo/releases", + "license": "Apache-2.0", + "dependencies": { + "@walletconnect/events": "1.0.1", + "@walletconnect/jsonrpc-http-connection": "1.0.8", + "@walletconnect/jsonrpc-provider": "1.0.14", + "@walletconnect/jsonrpc-types": "1.0.4", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/logger": "2.1.2", + "@walletconnect/sign-client": "2.21.1", + "@walletconnect/types": "2.21.1", + "@walletconnect/utils": "2.21.1", + "es-toolkit": "1.33.0", + "events": "3.3.0" } }, - "node_modules/ethereum-cryptography": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", - "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "node_modules/@walletconnect/utils": { + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.1.tgz", + "integrity": "sha512-VPZvTcrNQCkbGOjFRbC24mm/pzbRMUq2DSQoiHlhh0X1U7ZhuIrzVtAoKsrzu6rqjz0EEtGxCr3K1TGRqDG4NA==", + "license": "Apache-2.0", "dependencies": { - "@noble/curves": "1.4.2", - "@noble/hashes": "1.4.0", - "@scure/bip32": "1.4.0", - "@scure/bip39": "1.3.0" + "@noble/ciphers": "1.2.1", + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@walletconnect/jsonrpc-utils": "1.0.8", + "@walletconnect/keyvaluestorage": "1.1.1", + "@walletconnect/relay-api": "1.0.11", + "@walletconnect/relay-auth": "1.1.0", + "@walletconnect/safe-json": "1.0.2", + "@walletconnect/time": "1.0.2", + "@walletconnect/types": "2.21.1", + "@walletconnect/window-getters": "1.0.1", + "@walletconnect/window-metadata": "1.0.1", + "bs58": "6.0.0", + "detect-browser": "5.3.0", + "query-string": "7.1.3", + "uint8arrays": "3.1.0", + "viem": "2.23.2" } }, - "node_modules/ethereum-cryptography/node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", - "dependencies": { - "@noble/hashes": "1.4.0" + "node_modules/@walletconnect/utils/node_modules/@noble/ciphers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", + "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "node_modules/@walletconnect/utils/node_modules/@noble/curves": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", + "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.7.1" + }, "engines": { - "node": ">= 16" + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/ethers": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.0.tgz", - "integrity": "sha512-+yyQQQWEntY5UVbCv++guA14RRVFm1rSnO1GoLFdrK7/XRWMoktNgyG9UjwxrQqGBfGyFKknNZ81YpUS2emCgg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/ethers-io/" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], + "node_modules/@walletconnect/utils/node_modules/@scure/bip32": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", + "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", + "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ethers/node_modules/@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" - }, - "node_modules/ethers/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" - }, - "node_modules/eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" + "@noble/curves": "~1.8.1", + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.2" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@walletconnect/utils/node_modules/@scure/bip39": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", + "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", + "license": "MIT", "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" + "@noble/hashes": "~1.7.1", + "@scure/base": "~1.2.4" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/extension-port-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/extension-port-stream/-/extension-port-stream-3.0.0.tgz", - "integrity": "sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==", - "dependencies": { - "readable-stream": "^3.6.2 || ^4.4.2", - "webextension-polyfill": ">=0.10.0 <1.0" + "node_modules/@walletconnect/utils/node_modules/abitype": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" }, - "engines": { - "node": ">=12.0.0" + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.22.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true - }, - "node_modules/fast-equals": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", - "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==", - "engines": { - "node": ">=6.0.0" + "node_modules/@walletconnect/utils/node_modules/isows": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", + "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" } }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } + "node_modules/@walletconnect/utils/node_modules/multiformats": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", + "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "license": "(Apache-2.0 AND MIT)" }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, + "node_modules/@walletconnect/utils/node_modules/ox": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", + "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", - "engines": { - "node": ">=6" + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dev": true, + "node_modules/@walletconnect/utils/node_modules/uint8arrays": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", + "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "license": "MIT", "dependencies": { - "reusify": "^1.0.4" + "multiformats": "^9.4.2" } }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, + "node_modules/@walletconnect/utils/node_modules/viem": { + "version": "2.23.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", + "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "@noble/curves": "1.8.1", + "@noble/hashes": "1.7.1", + "@scure/bip32": "1.6.2", + "@scure/bip39": "1.5.4", + "abitype": "1.0.8", + "isows": "1.0.6", + "ox": "0.6.7", + "ws": "8.18.0" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" + "peerDependencies": { + "typescript": ">=5.0.4" }, - "engines": { - "node": ">=8" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "node_modules/@walletconnect/utils/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "node_modules/@walletconnect/window-getters": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", + "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", + "license": "MIT", "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" + "tslib": "1.14.1" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/@walletconnect/window-getters/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@walletconnect/window-metadata": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", + "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "@walletconnect/window-getters": "^1.0.1", + "tslib": "1.14.1" } }, - "node_modules/finalhandler/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "node_modules/@walletconnect/window-metadata/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/@web3-storage/multipart-parser": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@web3-storage/multipart-parser/-/multipart-parser-1.0.0.tgz", + "integrity": "sha512-BEO6al7BYqcnfX15W2cnGR+Q566ACXAT9UQykORCWW80lmkpWsnEob6zJS1ZVBKsSJC8+7vJkHwlp+lXG1UCdw==", + "license": "(Apache-2.0 AND MIT)" + }, + "node_modules/@xrplf/isomorphic": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@xrplf/isomorphic/-/isomorphic-1.0.1.tgz", + "integrity": "sha512-0bIpgx8PDjYdrLFeC3csF305QQ1L7sxaWnL5y71mCvhenZzJgku9QsA+9QCXBC1eNYtxWO/xR91zrXJy2T/ixg==", + "license": "ISC", + "dependencies": { + "@noble/hashes": "^1.0.0", + "eventemitter3": "5.0.1", + "ws": "^8.13.0" + }, "engines": { - "node": ">= 0.8" + "node": ">=16.0.0" } }, - "node_modules/finalhandler/node_modules/ms": { + "node_modules/@xrplf/secret-numbers": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + "resolved": "https://registry.npmjs.org/@xrplf/secret-numbers/-/secret-numbers-2.0.0.tgz", + "integrity": "sha512-z3AOibRTE9E8MbjgzxqMpG1RNaBhQ1jnfhNCa1cGf2reZUJzPMYs4TggQTc7j8+0WyV3cr7y/U8Oz99SXIkN5Q==", + "license": "ISC", + "dependencies": { + "@xrplf/isomorphic": "^1.0.1", + "ripple-keypairs": "^2.0.0" + } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, + "node_modules/@zazuko/env": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@zazuko/env/-/env-2.5.3.tgz", + "integrity": "sha512-kivvYoXGFjva1CuXeK/jaaWMy9eXhhFmuSfSJGVW2wH7XbcZehJObjPXEVlZ3kKLCFhuv96j8Ot3SkbYaOtuLA==", + "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "@rdfjs/data-model": "^2.0.1", + "@rdfjs/dataset": "^2.0.1", + "@rdfjs/formats": "^4.0.0", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-map": "^2.0.0", + "@rdfjs/term-set": "^2.0.1", + "@rdfjs/traverser": "^0.1.2", + "@tpluscode/rdf-ns-builders": "^4.1.0", + "@zazuko/env-core": "^1.1.2", + "@zazuko/prefixes": "^2.1.0", + "clownface": "^2.0.2", + "get-stream": "^9.0.1", + "rdf-dataset-ext": "^1.1.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@rdfjs/types": "^2", + "@types/clownface": "^2.0.0", + "@types/rdf-dataset-ext": "^1.0.8", + "@types/rdfjs__data-model": "^2.0.9", + "@types/rdfjs__dataset": "^2.0.7", + "@types/rdfjs__environment": "^1.0.0", + "@types/rdfjs__formats": "^4.0.1", + "@types/rdfjs__namespace": "^2.0.10", + "@types/rdfjs__term-map": "^2.0.10", + "@types/rdfjs__term-set": "^2.0.9", + "@types/rdfjs__traverser": "^0.1.5" + } + }, + "node_modules/@zazuko/env-core": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@zazuko/env-core/-/env-core-1.1.2.tgz", + "integrity": "sha512-mnLG40utuT7jPBPLs6fJ0puhfagnXSj+S8t9+zUGs3YlrOq/7b2zr64Hi3p3etwDdApaQ0VgQuNIY9doaruS1Q==", + "dependencies": { + "@rdfjs/environment": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@types/rdfjs__environment": "^1.0.0" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, + "node_modules/@zazuko/env-node": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@zazuko/env-node/-/env-node-2.1.5.tgz", + "integrity": "sha512-qYrePSWiz9XOB5R0NfvuaogmPP8gLcMsl18G7sYW1h6RB4l3aiofAr4YAKTK+bpJgGjeivDDi64lsQjF2F6p0g==", + "license": "MIT", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "@rdfjs/fetch-lite": "^3.2.2", + "@rdfjs/formats": "^4.0.0", + "@zazuko/env": "^2.5.3", + "@zazuko/rdf-utils-fs": "^3.3.0" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "peerDependencies": { + "@types/rdfjs__fetch-lite": "^3.0.11", + "@types/rdfjs__formats": "^4.0.1" } }, - "node_modules/flatted": { + "node_modules/@zazuko/prefixes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@zazuko/prefixes/-/prefixes-2.4.0.tgz", + "integrity": "sha512-bd53k5XgFKWR56sofHeAcIbv8o0m2HsJlbHaHbrMufUCdgiZsCLvZn84Vh1dhcsyBHOD0EIo9AD4pNWDQLVRaw==", + "license": "MIT" + }, + "node_modules/@zazuko/rdf-utils-fs": { "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "resolved": "https://registry.npmjs.org/@zazuko/rdf-utils-fs/-/rdf-utils-fs-3.3.1.tgz", + "integrity": "sha512-4HjTbJUwiCFanMMcaaZkLIkWUdVjXSQstAyxnfzsUOmh8Q43iVBL+mYAl17zoi47III0POL6hitRsN1JJ5tUFg==", + "license": "MIT", + "dependencies": { + "readable-stream": ">=3.6.0" + }, + "peerDependencies": { + "@rdfjs/types": "*", + "@types/rdfjs__environment": "0 - 1", + "@types/rdfjs__formats": "^4" + } }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "license": "(Unlicense OR Apache-2.0)", + "optional": true + }, + "node_modules/abitype": { + "version": "0.8.11", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-0.8.11.tgz", + "integrity": "sha512-bM4v2dKvX08sZ9IU38IN5BKmN+ZkOSd2oI4a9f0ejHYZQYV6cDr7j+d95ga0z2XHG36Y4jzoG5Z7qDqxp7fi/A==", + "license": "MIT", + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3 >=3.19.1" }, "peerDependenciesMeta": { - "debug": { + "zod": { "optional": true } } }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", "dependencies": { - "is-callable": "^1.2.7" + "event-target-shim": "^5.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.5" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "node_modules/abort-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/abort-error/-/abort-error-1.0.1.tgz", + "integrity": "sha512-fxqCblJiIPdSXIUrxI0PL+eJG49QdP9SQ70qtB65MVAoMr2rASlOyAbJFOylfB467F/f+5BCLJJq58RYi7mGfg==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" }, "engines": { - "node": ">= 6" + "node": ">=0.4.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "license": "MIT", + "optional": true + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">= 14" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/agentkeepalive": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.6.0.tgz", + "integrity": "sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==", + "license": "MIT", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/alchemy-sdk": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/alchemy-sdk/-/alchemy-sdk-3.6.5.tgz", + "integrity": "sha512-vikvJvExqPoifnOtnIPoANwS2C46Nv44XsEWJz8kd5hrnZrS320GmhKWGyKSgupd8cvudAWv1+76iSr0pjy8DA==", + "license": "MIT", + "optional": true, + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/contracts": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/providers": "^5.7.0", + "@ethersproject/units": "^5.7.0", + "@ethersproject/wallet": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "@solana/web3.js": "^1.87.6", + "axios": "^1.12.0", + "sturdy-websocket": "^0.2.1", + "websocket": "^1.0.34" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" } }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "node_modules/any-signal": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-4.2.0.tgz", + "integrity": "sha512-LndMvYuAPf4rC195lk7oSFuHOYFpOszIYrNYv0gHAvz+aEhE9qPZLhmrIz5pXP2BSsPOXvsuHDXEGaiQhIh9wA==", + "license": "Apache-2.0 OR MIT", "engines": { - "node": ">=6" + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", "engines": { "node": ">= 0.4" } }, - "node_modules/get-symbol-description": { + "node_modules/array-buffer-byte-length": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -8389,74 +16779,52 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-tsconfig": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", - "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", - "dev": true, - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/array-includes": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { - "node": "*" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "license": "MIT", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, + "license": "MIT", "dependencies": { + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8465,30 +16833,21 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "engines": { "node": ">= 0.4" }, @@ -8496,67 +16855,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/h3": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.4.tgz", - "integrity": "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==", - "dependencies": { - "cookie-es": "^1.2.2", - "crossws": "^0.3.5", - "defu": "^6.1.4", - "destr": "^2.0.5", - "iron-webcrypto": "^1.2.1", - "node-mock-http": "^1.0.2", - "radix3": "^1.1.2", - "ufo": "^1.6.1", - "uncrypto": "^0.1.3" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { - "es-define-property": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -8564,10 +16874,18 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -8575,190 +16893,146 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.3" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", "dependencies": { - "function-bind": "^1.1.2" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "license": "MIT", "dependencies": { - "react-is": "^16.7.0" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "node_modules/asn1js": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.7.tgz", + "integrity": "sha512-uLvq6KJu04qoQM6gvBfKFjlh6Gl0vOKQuR5cJMDHQkmwfMOQeN3F3SHCv9SNYSL+CRoHvOGFfllDlVz03GQjvQ==", + "license": "BSD-3-Clause", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "pvtsutils": "^1.3.6", + "pvutils": "^1.1.3", + "tslib": "^2.8.1" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idb-keyval": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", - "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true, - "engines": { - "node": ">= 4" + "node": ">=12.0.0" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/assert": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", + "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", + "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "call-bind": "^1.0.2", + "is-nan": "^1.3.2", + "object-is": "^1.1.5", + "object.assign": "^4.1.4", + "util": "^0.12.5" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "license": "MIT", "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "node": ">=12" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "dev": true, - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, + "license": "MIT", "engines": { "node": ">= 0.4" } }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.0.0" + "tslib": "^2.4.0" } }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" }, - "node_modules/iron-webcrypto": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", - "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", - "funding": { - "url": "https://github.com/sponsors/brc-dd" + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" } }, - "node_modules/is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" + "possible-typed-array-names": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8767,625 +17041,688 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "node_modules/axe-core": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", + "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" - }, + "license": "MPL-2.0", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } }, - "node_modules/is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", - "dev": true, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=10", + "npm": ">=6" } }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "engines": { - "node": ">= 0.4" + "node_modules/babel-plugin-macros/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", + "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", + "dev": true, + "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "@babel/compat-data": "^7.27.7", + "@babel/helper-define-polyfill-provider": "^0.6.5", + "semver": "^6.3.1" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "dependencies": { - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", + "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "@babel/helper-define-polyfill-provider": "^0.6.5", + "core-js-compat": "^3.43.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", + "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", "dev": true, - "engines": { - "node": ">=0.10.0" + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.5" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/is-finalizationregistry": { + "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "license": "MIT" }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/base-x": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", + "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==", + "license": "MIT" + }, + "node_modules/base32.js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base32.js/-/base32.js-0.1.0.tgz", + "integrity": "sha512-n3TkB02ixgBOhTvANakDb4xaMXnYUVkNoRFJjQflcqMQhyEKxEHdj3E6N8t8sUQ0mjH/3/JxzlXuz3ul/J90pQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.12.0" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/baseline-browser-mapping": { + "version": "2.9.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.14.tgz", + "integrity": "sha512-B0xUquLkiGLgHhpPBqvl7GWegWBUNuujQ6kXd/r1U38ElPT6Ok8KZ8e+FpUGEc2ZoRQUzq/aUnaKFc/svWUGSg==", "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", + "license": "MIT" + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "license": "Unlicense", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=0.6" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, + "node_modules/big.js": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", + "integrity": "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": "*" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "type": "opencollective", + "url": "https://opencollective.com/bigjs" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "node_modules/bignumber.js": { + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz", + "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==", + "license": "MIT", "engines": { - "node": ">=0.12.0" + "node": "*" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "file-uri-to-path": "1.0.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, + "node_modules/bip66": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-2.0.0.tgz", + "integrity": "sha512-kBG+hSpgvZBrkIm9dt5T1Hd/7xGCPEX2npoxAWZfsK1FvjgaxySEh2WizjyIstWXriKo9K9uJ4u0OnsyLDUPXQ==", + "license": "MIT" + }, + "node_modules/bitcoin-ops": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz", + "integrity": "sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow==", + "license": "MIT" + }, + "node_modules/blake-hash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/blake-hash/-/blake-hash-2.0.0.tgz", + "integrity": "sha512-Igj8YowDu1PRkRsxZA7NVkdFNxH5rKv5cpLxQ0CVXSIA77pVYwCPRQJ2sMew/oneUpfuYRyjG6r8SmmmnbZb1w==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2", + "readable-stream": "^3.6.0" + }, "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, + "node_modules/blake-hash/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==", + "license": "MIT" + }, + "node_modules/bn.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", + "license": "MIT" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "license": "ISC" + }, + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "license": "Apache-2.0", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" } }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dev": true, + "node_modules/borsh/node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "safe-buffer": "^5.0.1" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node_modules/borsh/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/bowser": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.13.1.tgz", + "integrity": "sha512-OHawaAbjwx6rqICCKgSG0SAnT05bzd7ppyKLVUITZpANBaaMFBAsaNkto3LoQ31tyFP5kNujE8Cdx85G9VzOkw==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "balanced-match": "^1.0.0" } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "fill-range": "^7.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "license": "MIT" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "license": "MIT", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, - "node_modules/is-weakref": { + "node_modules/browserify-des": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dev": true, + "node_modules/browserify-rsa": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", + "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "bn.js": "^5.2.1", + "randombytes": "^2.1.0", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.10" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isows": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz", - "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "peerDependencies": { - "ws": "*" + "node_modules/browserify-sign": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.5.tgz", + "integrity": "sha512-C2AUdAJg6rlM2W5QMp2Q4KGQMVBwR1lIimTsUnutJ8bMpW5B52pGpR2gEnNBNwijumDo5FojQ0L9JrXA8m4YEw==", + "license": "ISC", + "dependencies": { + "bn.js": "^5.2.2", + "browserify-rsa": "^4.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.6.1", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.9", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "node_modules/iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dev": true, + "node_modules/browserify-sign/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "node_modules/jparticles": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jparticles/-/jparticles-3.5.0.tgz", - "integrity": "sha512-qUKP56Xqh2G7TqFKHMPDYzfZKkvsbLGJu+xJI4dh0YGZL26zOCUVV31MkkPWmfd6SaST23mhSvvvEArFd8yApQ==" + "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "node_modules/browserify-sign/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", "dependencies": { - "argparse": "^2.0.1" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" + "browserslist": "cli.js" }, "engines": { - "node": ">=4" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-rpc-engine": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", - "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", + "node_modules/bs58": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", + "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", + "license": "MIT", "dependencies": { - "@metamask/safe-event-emitter": "^2.0.0", - "eth-rpc-errors": "^4.0.2" - }, - "engines": { - "node": ">=10.0.0" + "base-x": "^5.0.0" } }, - "node_modules/json-rpc-engine/node_modules/@metamask/safe-event-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", - "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" - }, - "node_modules/json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==" + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "license": "MIT", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/bs58check/node_modules/base-x": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.0.1" + } }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "node_modules/bs58check/node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "license": "MIT", + "dependencies": { + "base-x": "^3.0.2" + } }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, + "node_modules/bsaes": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/bsaes/-/bsaes-0.0.2.tgz", + "integrity": "sha512-iVxJFMOvCUG85sX2UVpZ9IgvH6Jjc5xpd/W8pALvFE7zfCqHkV7hW3M2XZtpg9biPS0K4Eka96bbNNgLohcpgQ==", + "license": "MIT", "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" + "uint32": "^0.2.1" } }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, - "node_modules/keccak": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", - "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "license": "MIT" + }, + "node_modules/bufferutil": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.1.0.tgz", + "integrity": "sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw==", "hasInstallScript": true, + "license": "MIT", "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "node-gyp-build": "^4.3.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.14.2" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "node_modules/builtins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", "dev": true, + "license": "MIT", "dependencies": { - "json-buffer": "3.0.1" + "semver": "^7.0.0" } }, - "node_modules/keyvaluestorage-interface": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", - "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==" - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", "dependencies": { - "language-subtag-registry": "^0.3.20" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { - "node": ">=0.10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/leaflet": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", - "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" }, "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/lit": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz", - "integrity": "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==", - "dependencies": { - "@lit/reactive-element": "^2.1.0", - "lit-element": "^4.2.0", - "lit-html": "^3.3.0" + "node": ">= 0.4" } }, - "node_modules/lit-element": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", - "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", "dependencies": { - "@lit-labs/ssr-dom-shim": "^1.4.0", - "@lit/reactive-element": "^2.1.0", - "lit-html": "^3.3.0" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/lit-html": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", - "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", - "dependencies": { - "@types/trusted-types": "^2.0.2" + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, + "license": "MIT", "engines": { "node": ">=10" }, @@ -9393,1606 +17730,1903 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "node_modules/caniuse-lite": { + "version": "1.0.30001764", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001764.tgz", + "integrity": "sha512-9JGuzl2M+vPL+pz70gtMF9sHdMFbY9FJaQBi186cHKH3pSzDvzoUJUPV6fqiKIMyXbud9ZLg4F3Yza1vJ1+93g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "node_modules/canonicalize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.1.0.tgz", + "integrity": "sha512-F705O3xrsUtgt98j7leetNhTWPe+5S72rlL5O4jA1pKqBVQ/dT1O1D6PFxmSXvc0SUOinWS57DKx0I3CHrXJHQ==", + "license": "Apache-2.0", + "bin": { + "canonicalize": "bin/canonicalize.js" + } }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "node_modules/cashaddrjs": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cashaddrjs/-/cashaddrjs-0.4.4.tgz", + "integrity": "sha512-xZkuWdNOh0uq/mxJIng6vYWfTowZLd9F4GMAlp2DwFHlcCqCm91NtuAc47RuV4L7r4PYcY5p6Cr2OKNb4hnkWA==", + "license": "MIT", "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" + "big-integer": "1.6.36" + } + }, + "node_modules/cbor": { + "version": "10.0.11", + "resolved": "https://registry.npmjs.org/cbor/-/cbor-10.0.11.tgz", + "integrity": "sha512-vIwORDd/WyB8Nc23o2zNN5RrtFGlR6Fca61TtjkUXueI3Jf2DOZDl1zsshvBntZ3wZHBM9ztjnkXSmzQDaq3WA==", + "license": "MIT", + "dependencies": { + "nofilter": "^3.0.2" }, - "bin": { - "loose-envify": "cli.js" + "engines": { + "node": ">=20" } }, - "node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "node_modules/cbor-js": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cbor-js/-/cbor-js-0.1.0.tgz", + "integrity": "sha512-7sQ/TvDZPl7csT1Sif9G0+MA0I0JOVah8+wWlJVQdVEgIbCzlN/ab3x+uvMNsc34TUvO6osQTAmB2ls80JX6tw==", + "license": "MIT" + }, + "node_modules/cbor-sync": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cbor-sync/-/cbor-sync-1.0.4.tgz", + "integrity": "sha512-GWlXN4wiz0vdWWXBU71Dvc1q3aBo0HytqwAZnXF1wOwjqNnDWA1vZ1gDMFLlqohak31VQzmhiYfiCX5QSSfagA==", + "license": "MIT" + }, + "node_modules/cborg": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/cborg/-/cborg-1.10.2.tgz", + "integrity": "sha512-b3tFPA9pUr2zCUiCfRd2+wok2/LBSNUMKOuRRok+WlvvAgEt/PlbgPTsZUcwCOs53IJvLgTp0eotwtosE6njug==", + "license": "Apache-2.0", + "bin": { + "cborg": "cli.js" + } }, - "node_modules/match-sorter": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz", - "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", + "node_modules/cbw-sdk": { + "name": "@coinbase/wallet-sdk", + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.9.3.tgz", + "integrity": "sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==", + "license": "Apache-2.0", "dependencies": { - "@babel/runtime": "^7.23.8", - "remove-accents": "0.5.0" + "bn.js": "^5.2.1", + "buffer": "^6.0.3", + "clsx": "^1.2.1", + "eth-block-tracker": "^7.1.0", + "eth-json-rpc-filters": "^6.0.0", + "eventemitter3": "^5.0.1", + "keccak": "^3.0.3", + "preact": "^10.16.0", + "sha.js": "^2.4.11" } }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "node_modules/cbw-sdk/node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/media-query-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", - "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "node_modules/chai": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", + "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.12.5" + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=18" } }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "node_modules/chalk": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "node_modules/check-error": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.3.tgz", + "integrity": "sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, + "node_modules/cipher-base": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.7.tgz", + "integrity": "sha512-Mz9QMT5fJe7bKI7MH31UilT5cEK5EHHRCccw/YRFsRY47AuNgaV6HY3rscp0/I4Q+tTW/5zoqpSeRRI54TkDWA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.2" + }, "engines": { - "node": ">= 8" + "node": ">= 0.10" + } + }, + "node_modules/classnames": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", + "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==", + "license": "MIT" + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" } }, - "node_modules/meshoptimizer": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", - "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", - "dev": true + "node_modules/clownface": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/clownface/-/clownface-2.0.3.tgz", + "integrity": "sha512-E76TBJ7CgU9+/5paSAvuNdMO+fzFThnvRVtidosktYppYkXM8V7tid8Ezzo8S1OmoWxKUam3yfkZlfCid4OiJQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2.0.1", + "@rdfjs/environment": "0 - 1", + "@rdfjs/namespace": "^2.0.0" + } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6" } }, - "node_modules/micro-ftch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", "license": "MIT", "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "color-convert": "^2.0.1", + "color-string": "^1.9.0" }, "engines": { - "node": ">=8.6" - } - }, - "node_modules/micromodal": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/micromodal/-/micromodal-0.4.10.tgz", - "integrity": "sha512-BUrEnzMPFBwK8nOE4xUDYHLrlGlLULQVjpja99tpJQPSUEWgw3kTLp1n1qv0HmKU29AiHE7Y7sMLiRziDK4ghQ==", - "engines": { - "node": ">=10" + "node": ">=12.5.0" } }, - "node_modules/microseconds": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", - "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" }, "engines": { - "node": ">=4" + "node": ">=7.0.0" } }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "delayed-stream": "~1.0.0" }, "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 0.8" } }, - "node_modules/mipd": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz", - "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wagmi-dev" - } - ], - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node_modules/commander": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz", + "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==", + "license": "MIT", + "engines": { + "node": ">=20" } }, - "node_modules/modern-ahocorasick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", - "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==" - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" }, - "node_modules/nano-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", - "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", - "dependencies": { - "big-integer": "^1.6.16" - } + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "license": "MIT" }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">= 0.6" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", + "license": "MIT" }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/cookie-signature": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz", + "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=6.6.0" } }, - "node_modules/next": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/next/-/next-15.4.8.tgz", - "integrity": "sha512-jwOXTz/bo0Pvlf20FSb6VXVeWRssA2vbvq9SdrOPEg9x8E1B27C2rQtvriAn600o9hH61kjrVRexEffv3JybuA==", + "node_modules/core-js-compat": { + "version": "3.47.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", + "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@next/env": "15.4.8", - "@swc/helpers": "0.5.15", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", - "styled-jsx": "5.1.6" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "15.4.8", - "@next/swc-darwin-x64": "15.4.8", - "@next/swc-linux-arm64-gnu": "15.4.8", - "@next/swc-linux-arm64-musl": "15.4.8", - "@next/swc-linux-x64-gnu": "15.4.8", - "@next/swc-linux-x64-musl": "15.4.8", - "@next/swc-win32-arm64-msvc": "15.4.8", - "@next/swc-win32-x64-msvc": "15.4.8", - "sharp": "^0.34.3" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.51.1", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "sass": "^1.3.0" + "browserslist": "^4.28.0" }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "sass": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "license": "MIT", "dependencies": { - "whatwg-url": "^5.0.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": "4.x || >=6.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" }, "peerDependencies": { - "encoding": "^0.1.0" + "typescript": ">=4.9.5" }, "peerDependenciesMeta": { - "encoding": { + "typescript": { "optional": true } } }, - "node_modules/node-fetch-native": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", - "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==" - }, - "node_modules/node-gyp-build": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", - "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "license": "MIT", + "dependencies": { + "buffer": "^5.1.0" } }, - "node_modules/node-mock-http": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.3.tgz", - "integrity": "sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "license": "Apache-2.0", + "bin": { + "crc32": "bin/crc32.njs" + }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/obj-multiplex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/obj-multiplex/-/obj-multiplex-1.0.0.tgz", - "integrity": "sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==", - "dependencies": { - "end-of-stream": "^1.4.0", - "once": "^1.4.0", - "readable-stream": "^2.3.3" + "node": ">=0.8" } }, - "node_modules/obj-multiplex/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "node_modules/crc/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } }, - "node_modules/obj-multiplex/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" } }, - "node_modules/obj-multiplex/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "node_modules/obj-multiplex/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "license": "MIT", "dependencies": { - "safe-buffer": "~5.1.0" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "license": "MIT", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/cross-fetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": ">= 0.4" + "node": ">= 8" } }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", - "dev": true, + "node_modules/crossws": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", + "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "uncrypto": "^0.1.3" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", + "license": "MIT", + "dependencies": { + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" }, "engines": { - "node": ">= 0.4" + "node": ">= 0.10" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==", + "license": "MIT" }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "node_modules/css-select": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", + "integrity": "sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">= 0.4" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, - "node_modules/object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", + "node_modules/css-what": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz", + "integrity": "sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==", "dev": true, - "dependencies": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.4" + "node": ">= 6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "css-tree": "~2.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/oblivious-set": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", - "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" - }, - "node_modules/ofetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", - "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "license": "MIT", "dependencies": { - "destr": "^2.0.3", - "node-fetch-native": "^1.6.4", - "ufo": "^1.5.4" + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, - "node_modules/on-exit-leak-free": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", - "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==" + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true, + "license": "CC0-1.0" }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "license": "ISC", + "optional": true, "dependencies": { - "ee-first": "1.1.1" + "es5-ext": "^0.10.64", + "type": "^2.7.2" }, "engines": { - "node": ">= 0.8" + "node": ">=0.12" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/d3-array": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", + "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", + "license": "ISC", "dependencies": { - "wrappy": "1" + "internmap": "1 - 2" + }, + "engines": { + "node": ">=12" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", "engines": { - "node": ">= 0.8.0" + "node": ">=12" } }, - "node_modules/outdent": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz", - "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==" + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } }, - "node_modules/ox": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", - "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node_modules/d3-format": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", + "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==", + "license": "ISC", + "engines": { + "node": ">=12" } }, - "node_modules/ox/node_modules/@noble/curves": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", - "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", "dependencies": { - "@noble/hashes": "1.8.0" + "d3-color": "1 - 3" }, "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=12" } }, - "node_modules/ox/node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "node_modules/d3-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", + "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", + "license": "ISC", "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" + "node": ">=12" } }, - "node_modules/ox/node_modules/@scure/bip32": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", - "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "node_modules/d3-scale": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", + "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", + "license": "ISC", "dependencies": { - "@noble/curves": "~1.9.0", - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" + "d3-array": "2.10.0 - 3", + "d3-format": "1 - 3", + "d3-interpolate": "1.2.0 - 3", + "d3-time": "2.1.1 - 3", + "d3-time-format": "2 - 4" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=12" } }, - "node_modules/ox/node_modules/@scure/bip39": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", - "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "node_modules/d3-shape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", + "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", + "license": "ISC", "dependencies": { - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" + "d3-path": "^3.1.0" }, - "funding": { - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=12" } }, - "node_modules/p-limit": { + "node_modules/d3-time": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", + "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", + "license": "ISC", "dependencies": { - "yocto-queue": "^0.1.0" + "d3-array": "2 - 3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, + "node_modules/d3-time-format": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", + "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", + "license": "ISC", "dependencies": { - "p-limit": "^3.0.2" + "d3-time": "1 - 3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dependencies": { - "callsites": "^3.0.0" - }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "license": "MIT", "engines": { - "node": ">=6" + "node": ">= 6" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/path-is-absolute": { + "node_modules/data-view-byte-offset": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "engines": { - "node": ">=8" + "node_modules/datastore-core": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/datastore-core/-/datastore-core-11.0.2.tgz", + "integrity": "sha512-0pN4hMcaCWcnUBo5OL/8j14Lt1l/p1v2VvzryRYeJAKRLqnFrzy2FhAQ7y0yTA63ki760ImQHfm2XlZrfIdFpQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@libp2p/logger": "^6.0.0", + "interface-datastore": "^9.0.0", + "interface-store": "^7.0.0", + "it-drain": "^3.0.9", + "it-filter": "^3.1.3", + "it-map": "^3.1.3", + "it-merge": "^3.0.11", + "it-pipe": "^3.0.1", + "it-sort": "^3.0.8", + "it-take": "^3.0.8" } }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.21.0" + }, "engines": { - "node": ">=8.6" + "node": ">=0.11" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" + "type": "opencollective", + "url": "https://opencollective.com/date-fns" } }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "engines": { - "node": ">=4" - } + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT" }, - "node_modules/pino": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz", - "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==", + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", "dependencies": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.0.0", - "on-exit-leak-free": "^0.2.0", - "pino-abstract-transport": "v0.5.0", - "pino-std-serializers": "^4.0.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.1.0", - "safe-stable-stringify": "^2.1.0", - "sonic-boom": "^2.2.1", - "thread-stream": "^0.15.1" + "ms": "^2.1.3" }, - "bin": { - "pino": "bin.js" - } - }, - "node_modules/pino-abstract-transport": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", - "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", - "dependencies": { - "duplexify": "^4.1.2", - "split2": "^4.0.0" + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/pino-std-serializers": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", - "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" - }, - "node_modules/pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=0.10.0" } }, - "node_modules/pony-cause": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz", - "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==", + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "license": "MIT" + }, + "node_modules/decimal.js-light": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", + "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", + "license": "MIT" + }, + "node_modules/decode-formdata": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/decode-formdata/-/decode-formdata-0.8.0.tgz", + "integrity": "sha512-iUzDgnWsw5ToSkFY7VPFA5Gfph6ROoOxOB7Ybna4miUSzLZ4KaSJk6IAB2AdW6+C9vCVWhjjNA4gjT6wF3eZHQ==", + "license": "MIT" + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "license": "MIT", "engines": { - "node": ">=12.0.0" + "node": ">=0.10" } }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "license": "MIT", "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" }, "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/preact": { - "version": "10.24.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", - "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==", + "node": ">= 0.4" + }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/preact" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.8.0" + "node": ">=0.10.0" } }, - "node_modules/prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true, - "bin": { - "prettier": "bin/prettier.cjs" + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { - "node": ">=14" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { - "fast-diff": "^1.1.2" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": ">=6.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "license": "MIT" }, - "node_modules/process-warning": { + "node_modules/delay": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-7.0.0.tgz", + "integrity": "sha512-C3vaGs818qzZjCvVJ98GQUMVyWeg7dr5w2Nwwb2t5K8G98jOyyVO2ti2bKYk5yoYElqH3F2yA53ykuEnwD6MCg==", + "license": "MIT", + "dependencies": { + "random-int": "^3.1.0", + "unlimited-timeout": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "node_modules/derive-valtio": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/derive-valtio/-/derive-valtio-0.1.0.tgz", + "integrity": "sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==", + "license": "MIT", + "peerDependencies": { + "valtio": "*" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "license": "MIT", "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "node_modules/proxy-compare": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.6.0.tgz", - "integrity": "sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==" + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" }, - "node_modules/proxy-from-env": { + "node_modules/detect-browser": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", + "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==", + "license": "MIT" + }, + "node_modules/detect-europe-js": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/detect-europe-js/-/detect-europe-js-0.1.2.tgz", + "integrity": "sha512-lgdERlL3u0aUdHocoouzT10d9I89VVhk0qNRmll7mXdGfJT1/wqZ2ZLA4oJAjeACPY5fT1wsbq2AT+GkuInsow==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" }, - "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "license": "MIT", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" + }, + "node_modules/dijkstrajs": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", + "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "license": "MIT", "dependencies": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" - }, - "bin": { - "qrcode": "bin/qrcode" + "@leichtgewicht/ip-codec": "^2.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">=6" } }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "side-channel": "^1.0.6" + "esutils": "^2.0.2" }, "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6.0.0" } }, - "node_modules/query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", "dependencies": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" - }, - "engines": { - "node": ">=6" + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true, "funding": [ { "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" + "url": "https://github.com/sponsors/fb55" } - ] + ], + "license": "BSD-2-Clause" }, - "node_modules/quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } }, - "node_modules/radix3": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", - "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==" + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/draggabilly": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/draggabilly/-/draggabilly-3.0.0.tgz", + "integrity": "sha512-aEs+B6prbMZQMxc9lgTpCBfyCUhRur/VFucHhIOvlvvdARTj7TcDmX/cdOUtqbjJJUh7+agyJXR5Z6IFe1MxwQ==", + "license": "MIT", + "dependencies": { + "get-size": "^3.0.0", + "unidragger": "^3.0.0" + } + }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=4" } }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.4" } }, - "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "node_modules/duplex-to": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/duplex-to/-/duplex-to-2.0.0.tgz", + "integrity": "sha512-f2nMnk11mwDptEFBTv2mcWHpF4ENAbuQ63yTiSy/99rG4Exsxsf0GJhJYq/AHF2cdMYswSx23LPuoijBflpquQ==", + "license": "MIT" + }, + "node_modules/duplexify": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", + "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0" + "end-of-stream": "^1.4.1", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1", + "stream-shift": "^1.0.2" + } + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/react-data-table-component": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-7.6.2.tgz", - "integrity": "sha512-nHe7040fmtrJyQr/ieGrTfV0jBflYGK4sLokC6/AFOv3ThjmA9WzKz8Z8/2wMxzRqLU+Rn0CVFg+8+frKLepWQ==", + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", "dependencies": { - "deepmerge": "^4.3.1" - }, - "peerDependencies": { - "react": ">= 16.8.3", - "styled-components": ">= 5.0.0" - }, - "peerDependenciesMeta": { - "styled-components": { - "optional": false - } + "safe-buffer": "^5.0.1" } }, - "node_modules/react-day-picker": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.6.3.tgz", - "integrity": "sha512-rDqCSKAl5MLX0z1fLkYcBenQK4ANlYaAhUR0ruVSVAhAa7/ZmKQqgDpXPoS7bYEkgBRH06LO1qNFP1Ki8uiZpw==", + "node_modules/eciesjs": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.16.tgz", + "integrity": "sha512-dS5cbA9rA2VR4Ybuvhg6jvdmp46ubLn3E+px8cG/35aEDNclrqoCjg6mt0HYZ/M+OoESS3jSkCrqk1kWAEhWAw==", + "license": "MIT", "dependencies": { - "@date-fns/tz": "^1.2.0", - "date-fns": "^4.1.0", - "date-fns-jalali": "^4.1.0-0" + "@ecies/ciphers": "^0.2.4", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "^1.9.7", + "@noble/hashes": "^1.8.0" }, "engines": { - "node": ">=18" + "bun": ">=1", + "deno": ">=2", + "node": ">=16" + } + }, + "node_modules/eciesjs/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { - "type": "individual", - "url": "https://github.com/sponsors/gpbl" - }, - "peerDependencies": { - "react": ">=16.8.0" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/react-day-picker/node_modules/date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "node_modules/eciesjs/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/kossnocorp" + "url": "https://paulmillr.com/funding/" } }, - "node_modules/react-day-picker/node_modules/date-fns-jalali": { - "version": "4.1.0-0", - "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz", - "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==" + "node_modules/electron-to-chromium": { + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "dev": true, + "license": "ISC" }, - "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "node_modules/elliptic": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", + "license": "MIT", "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" } }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "node_modules/react-leaflet": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", - "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", - "dependencies": { - "@react-leaflet/core": "^2.1.0" - }, - "peerDependencies": { - "leaflet": "^1.9.0", - "react": "^18.0.0", - "react-dom": "^18.0.0" - } + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" }, - "node_modules/react-paginate": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/react-paginate/-/react-paginate-8.2.0.tgz", - "integrity": "sha512-sJCz1PW+9PNIjUSn919nlcRVuleN2YPoFBOvL+6TPgrH/3lwphqiSOgdrLafLdyLDxsgK+oSgviqacF4hxsDIw==", - "dependencies": { - "prop-types": "^15" - }, - "peerDependencies": { - "react": "^16 || ^17 || ^18" - } + "node_modules/encode-utf8": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", + "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==", + "license": "MIT" }, - "node_modules/react-query": { - "version": "3.39.3", - "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", - "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.5.5", - "broadcast-channel": "^3.4.1", - "match-sorter": "^6.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/tannerlinsley" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } + "once": "^1.4.0" } }, - "node_modules/react-remove-scroll": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", - "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", + "node_modules/engine.io-client": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.4.tgz", + "integrity": "sha512-+kjUJnZGwzewFDw951CDWcwj35vMNf2fcj7xQWOctq1F2i1jkDdVvdFG9kM/BEChymCH36KgjnW0NsL58JYRxw==", + "license": "MIT", "dependencies": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.18.3", + "xmlhttprequest-ssl": "~2.1.1" } }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", - "dependencies": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" - }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=10.0.0" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { - "@types/react": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, - "node_modules/react-smooth": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz", - "integrity": "sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==", - "dependencies": { - "fast-equals": "^5.0.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" } }, - "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "dependencies": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" - }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "node": ">=0.12" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "node_modules/err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", + "license": "MIT" + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", "dependencies": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": ">=16.6.0", - "react-dom": ">=16.6.0" + "is-arrayish": "^0.2.1" } }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/es-abstract": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", + "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", + "dev": true, + "license": "MIT", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "engines": { - "node": ">= 14.18.0" + "node": ">= 0.4" }, "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/real-require": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", - "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==", + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { - "node": ">= 12.13.0" + "node": ">= 0.4" } }, - "node_modules/recharts": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.13.0.tgz", - "integrity": "sha512-sbfxjWQ+oLWSZEWmvbq/DFVdeRLqqA6d0CDjKx2PkxVVdoXo16jvENCE+u/x7HxOO+/fwx//nYRwb8p8X6s/lQ==", - "dependencies": { - "clsx": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.21", - "react-is": "^18.3.1", - "react-smooth": "^4.0.0", - "recharts-scale": "^0.4.4", - "tiny-invariant": "^1.3.1", - "victory-vendor": "^36.6.8" - }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { - "node": ">=14" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0" + "node": ">= 0.4" } }, - "node_modules/recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "license": "MIT", "dependencies": { - "decimal.js-light": "^2.4.1" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/recharts/node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/recharts/node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "node_modules/es-iterator-helpers": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", + "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", + "es-abstract": "^1.24.1", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "es-set-tostringtag": "^2.1.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.3.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.5", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/regexp-tree": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", - "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", - "dev": true, - "bin": { - "regexp-tree": "bin/regexp-tree" + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dev": true, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/mysticatea" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/remove-accents": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", - "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + "node_modules/es-toolkit": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.33.0.tgz", + "integrity": "sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "license": "ISC", + "optional": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "license": "MIT", + "optional": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } }, - "node_modules/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "license": "MIT" }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "es6-promise": "^4.0.3" } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "license": "ISC", + "optional": true, + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, "engines": { - "node": ">=4" + "node": ">=0.12" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", "dependencies": { - "glob": "^7.1.3" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" }, "bin": { - "rimraf": "bin.js" + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://opencollective.com/eslint" } }, - "node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "node_modules/eslint-config-next": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.4.tgz", + "integrity": "sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==", + "dev": true, + "license": "MIT", "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "@next/eslint-plugin-next": "14.0.4", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" }, - "engines": { - "node": "*" + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/eslint-config-oceanprotocol": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/eslint-config-oceanprotocol/-/eslint-config-oceanprotocol-2.0.4.tgz", + "integrity": "sha512-VdCtlvjTHzlhErmy8BYCGj3r4/iSJDxseeQTISe5DSyrWaPJpMv728KxBvu+WsCWfuI2WzErAX1HDE/HjmcI6w==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], + "license": "Apache-2.0", "dependencies": { - "queue-microtask": "^1.2.2" + "eslint": "^8.23.1", + "eslint-config-prettier": "^8.5.0", + "eslint-config-standard": "^17.0.0", + "eslint-config-standard-react": "^11.0.1", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-n": "^15.3.0", + "eslint-plugin-node": "^11.1.0", + "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-promise": "^6.0.1", + "eslint-plugin-react": "^7.31.8", + "eslint-plugin-security": "^1.5.0" } }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "node_modules/eslint-config-oceanprotocol/node_modules/eslint-config-prettier": { + "version": "8.10.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz", + "integrity": "sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-oceanprotocol/node_modules/eslint-plugin-prettier": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.5.tgz", + "integrity": "sha512-9Ni+xgemM2IWLq6aXEpP2+V/V30GeA/46Ar629vcMqVPodFFWC9skHu/D1phvuqtS8bJCFnNf01/qcmqYEwNfg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "prettier-linter-helpers": "^1.0.0" }, "engines": { - "node": ">=0.4" + "node": ">=12.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "node_modules/eslint-config-prettier": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.2.tgz", + "integrity": "sha512-iI1f+D2ViGn+uvv5HuHVUamg8ll4tN+JRHGc6IJi4TP9Kl976C57fzPXgseXNs8v0iA8aSJpHsTWjDb9QJamGQ==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-config-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, "funding": [ { "type": "github", @@ -11006,1223 +19640,1121 @@ "type": "consulting", "url": "https://feross.org/support" } - ] - }, - "node_modules/safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", - "dev": true, - "dependencies": { - "regexp-tree": "~0.1.1" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, + ], + "license": "MIT", "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" + "node": ">=12.0.0" }, - "engines": { - "node": ">= 0.8.0" + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" } }, - "node_modules/serve-static/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "engines": { - "node": ">= 0.8" + "node_modules/eslint-config-standard-react": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-standard-react/-/eslint-config-standard-react-11.0.1.tgz", + "integrity": "sha512-4WlBynOqBZJRaX81CBcIGDHqUiqxvw4j/DbEIICz8QkMs3xEncoPgAoysiqCSsg71X92uhaBc8sgqB96smaMmg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "peerDependencies": { + "eslint": "^7.12.1", + "eslint-plugin-react": "^7.21.5" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" + "ms": "^2.1.1" } }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", - "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "node_modules/eslint-import-resolver-typescript": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", + "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", + "dev": true, + "license": "ISC", "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.0" - }, - "bin": { - "sha.js": "bin.js" + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.2" }, "engines": { - "node": ">= 0.10" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } } }, - "node_modules/shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, - "optional": true, + "node_modules/eslint-module-utils": { + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", + "dev": true, + "license": "MIT", "dependencies": { - "@img/colour": "^1.0.0", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" + "debug": "^3.2.7" }, "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" + "node": ">=4" }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, + "license": "MIT", "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" + "ms": "^2.1.1" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/socket.io-client": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", - "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", + "node_modules/eslint-plugin-import": { + "version": "2.32.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", + "dev": true, + "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", + "tsconfig-paths": "^3.15.0" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "node": ">=4" }, - "engines": { - "node": ">=10.0.0" + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/sonic-boom": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", - "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", "dependencies": { - "atomic-sleep": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, "engines": { "node": ">=0.10.0" } }, - "node_modules/split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">= 10.x" + "node": "*" } }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" - }, - "node_modules/strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, "engines": { - "node": ">=4" + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", "dependencies": { - "safe-buffer": "~5.2.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" }, "engines": { - "node": ">= 0.4" + "node": ">=12.22.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "node_modules/eslint-plugin-n/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "node_modules/eslint-plugin-n/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/eslint-plugin-node": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", + "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", + "dev": true, + "license": "MIT", "dependencies": { - "ansi-regex": "^5.0.1" + "eslint-plugin-es": "^3.0.0", + "eslint-utils": "^2.0.0", + "ignore": "^5.1.1", + "minimatch": "^3.0.4", + "resolve": "^1.10.1", + "semver": "^6.1.0" }, "engines": { - "node": ">=8" + "node": ">=8.10.0" + }, + "peerDependencies": { + "eslint": ">=5.16.0" } }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/eslint-plugin-node/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, - "engines": { - "node": ">=4" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", + "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", "dev": true, + "license": "MIT", + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=8.10.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "node_modules/styled-components": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.11.tgz", - "integrity": "sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==", + "node_modules/eslint-plugin-node/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "license": "MIT", "dependencies": { - "@emotion/is-prop-valid": "1.2.2", - "@emotion/unitless": "0.8.1", - "@types/stylis": "4.2.5", - "css-to-react-native": "3.2.0", - "csstype": "3.1.3", - "postcss": "8.4.38", - "shallowequal": "1.1.0", - "stylis": "4.3.2", - "tslib": "2.6.2" + "eslint-visitor-keys": "^1.1.0" }, "engines": { - "node": ">= 16" + "node": ">=6" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/styled-components" - }, - "peerDependencies": { - "react": ">= 16.8.0", - "react-dom": ">= 16.8.0" - } - }, - "node_modules/styled-components/node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-node/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^10 || ^12 || >=14" + "node": "*" } }, - "node_modules/styled-components/node_modules/stylis": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" - }, - "node_modules/styled-components/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "node_modules/eslint-plugin-node/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } }, - "node_modules/styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "node_modules/eslint-plugin-prettier": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", + "dev": true, "license": "MIT", "dependencies": { - "client-only": "0.0.1" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" }, "engines": { - "node": ">= 12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { - "@babel/core": { + "@types/eslint": { "optional": true }, - "babel-plugin-macros": { + "eslint-config-prettier": { "optional": true } } }, - "node_modules/stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, - "node_modules/superstruct": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", - "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "node_modules/eslint-plugin-promise": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", + "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", + "dev": true, + "license": "ISC", "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "node_modules/synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "node_modules/eslint-plugin-react": { + "version": "7.37.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", + "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", "dev": true, + "license": "MIT", "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.9", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=4" }, - "funding": { - "url": "https://opencollective.com/unts" + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" } }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6" + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thread-stream": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz", - "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==", + "node_modules/eslint-plugin-react/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", "dependencies": { - "real-require": "^0.1.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/three": { - "version": "0.169.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.169.0.tgz", - "integrity": "sha512-Ed906MA3dR4TS5riErd4QBsRGPcx+HBDX2O5yYE5GqJeFQTPU+M56Va/f/Oph9X7uZo3W3o4l2ZhBZ6f6qUv0w==" - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" - }, - "node_modules/to-buffer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.1.tgz", - "integrity": "sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==", + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", "dependencies": { - "isarray": "^2.0.5", - "safe-buffer": "^5.2.1", - "typed-array-buffer": "^1.0.3" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 0.4" + "node": ">=0.10.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/eslint-plugin-react/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "is-number": "^7.0.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=8.0" + "node": "*" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "typescript": ">=4.2.0" + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "node_modules/eslint-plugin-security": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz", + "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "safe-regex": "^2.1.1" } }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", "dev": true, + "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1" + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 0.8.0" + "node": ">=10" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" + "url": "https://opencollective.com/eslint" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "devOptional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "license": "ISC", + "optional": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" }, "engines": { - "node": ">=14.17" - } - }, - "node_modules/ua-parser-js": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz", - "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/ua-parser-js" - }, - { - "type": "paypal", - "url": "https://paypal.me/faisalman" - }, - { - "type": "github", - "url": "https://github.com/sponsors/faisalman" - } - ], - "engines": { - "node": "*" + "node": ">=0.10" } }, - "node_modules/ufo": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==" - }, - "node_modules/uint8arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", - "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "multiformats": "^9.4.2" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "estraverse": "^5.1.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10" } }, - "node_modules/uncrypto": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, - "node_modules/unload": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", - "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "@babel/runtime": "^7.6.2", - "detect-node": "^2.0.4" + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">= 0.8" + "node": ">=4.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "dependencies": { - "punycode": "^2.1.0" + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "node_modules/eth-block-tracker": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-7.1.0.tgz", + "integrity": "sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==", + "license": "MIT", "dependencies": { - "tslib": "^2.0.0" + "@metamask/eth-json-rpc-provider": "^1.0.0", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^5.0.1", + "json-rpc-random-id": "^1.0.1", + "pify": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "node": ">=14.0.0" } }, - "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "node_modules/eth-block-tracker/node_modules/@ethereumjs/common": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", + "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", + "license": "MIT", "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } + "@ethereumjs/util": "^8.1.0", + "crc-32": "^1.2.0" } }, - "node_modules/use-sync-external-store": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", - "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "node_modules/eth-block-tracker/node_modules/@ethereumjs/rlp": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", + "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp" + }, + "engines": { + "node": ">=14" } }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, + "node_modules/eth-block-tracker/node_modules/@ethereumjs/tx": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", + "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", + "license": "MPL-2.0", "dependencies": { - "node-gyp-build": "^4.3.0" + "@ethereumjs/common": "^3.2.0", + "@ethereumjs/rlp": "^4.0.1", + "@ethereumjs/util": "^8.1.0", + "ethereum-cryptography": "^2.0.0" }, "engines": { - "node": ">=6.14.2" + "node": ">=14" } }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "node_modules/eth-block-tracker/node_modules/@ethereumjs/util": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", + "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", + "license": "MPL-2.0", "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "@ethereumjs/rlp": "^4.0.1", + "ethereum-cryptography": "^2.0.0", + "micro-ftch": "^0.3.1" + }, + "engines": { + "node": ">=14" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "node_modules/eth-block-tracker/node_modules/@metamask/utils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", + "integrity": "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.1.2", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "semver": "^7.3.8", + "superstruct": "^1.0.3" + }, "engines": { - "node": ">= 0.4.0" + "node": ">=14.0.0" } }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" + "node_modules/eth-block-tracker/node_modules/superstruct": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", + "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" } }, - "node_modules/valtio": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.13.2.tgz", - "integrity": "sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==", + "node_modules/eth-json-rpc-filters": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-6.0.1.tgz", + "integrity": "sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==", + "license": "ISC", "dependencies": { - "derive-valtio": "0.1.0", - "proxy-compare": "2.6.0", - "use-sync-external-store": "1.2.0" + "@metamask/safe-event-emitter": "^3.0.0", + "async-mutex": "^0.2.6", + "eth-query": "^2.1.2", + "json-rpc-engine": "^6.1.0", + "pify": "^5.0.0" }, "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=16.8", - "react": ">=16.8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "react": { - "optional": true - } + "node": ">=14.0.0" } }, - "node_modules/valtio/node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "node_modules/eth-json-rpc-filters/node_modules/async-mutex": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", + "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" } }, - "node_modules/vanta": { - "version": "0.5.24", - "resolved": "https://registry.npmjs.org/vanta/-/vanta-0.5.24.tgz", - "integrity": "sha512-fvieEbHy1ZS23zrcX+topzqAgA4Uct1enngOEWLFBgs9TtOf6RDFOYatH7KSVdrABzQDMCQ5myQy+nTSZZwLzg==" - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/eth-json-rpc-filters/node_modules/pify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", + "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==", + "license": "MIT", "engines": { - "node": ">= 0.8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/victory-vendor": { - "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", + "node_modules/eth-query": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", + "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", + "license": "ISC", "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" + "json-rpc-random-id": "^1.0.0", + "xtend": "^4.0.1" } }, - "node_modules/viem": { - "version": "2.37.5", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.37.5.tgz", - "integrity": "sha512-bLKvKgLcge6KWBMLk8iP9weu5tHNr0hkxPNwQd+YQrHEgek7ogTBBeE10T0V6blwBMYmeZFZHLnMhDmPjp63/A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/eth-rpc-errors": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", + "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", + "license": "MIT", "dependencies": { - "@noble/curves": "1.9.1", - "@noble/hashes": "1.8.0", - "@scure/bip32": "1.7.0", - "@scure/bip39": "1.6.0", - "abitype": "1.1.0", - "isows": "1.0.7", - "ox": "0.9.3", - "ws": "8.18.3" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "fast-safe-stringify": "^2.0.6" } }, - "node_modules/viem/node_modules/@adraffy/ens-normalize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==" + "node_modules/ethereum-cryptography": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", + "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", + "license": "MIT", + "dependencies": { + "@noble/curves": "1.4.2", + "@noble/hashes": "1.4.0", + "@scure/bip32": "1.4.0", + "@scure/bip39": "1.3.0" + } }, - "node_modules/viem/node_modules/@noble/ciphers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", - "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", - "engines": { - "node": "^14.21.3 || >=16" + "node_modules/ethereum-cryptography/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/@noble/curves": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", - "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", - "dependencies": { - "@noble/hashes": "1.8.0" - }, + "node_modules/ethereum-cryptography/node_modules/@noble/hashes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", + "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", + "license": "MIT", "engines": { - "node": "^14.21.3 || >=16" + "node": ">= 16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", - "engines": { - "node": "^14.21.3 || >=16" - }, + "node_modules/ethereum-cryptography/node_modules/@scure/base": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/@scure/bip32": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", - "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "node_modules/ethereum-cryptography/node_modules/@scure/bip39": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", + "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", + "license": "MIT", "dependencies": { - "@noble/curves": "~1.9.0", - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" + "@noble/hashes": "~1.4.0", + "@scure/base": "~1.1.6" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/@scure/bip39": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", - "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", + "node_modules/ethers": { + "version": "6.16.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.16.0.tgz", + "integrity": "sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/ethers-io/" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "license": "MIT", "dependencies": { - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" }, "funding": { "url": "https://paulmillr.com/funding/" } }, - "node_modules/viem/node_modules/ox": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.3.tgz", - "integrity": "sha512-KzyJP+fPV4uhuuqrTZyok4DC7vFzi7HLUFiUNEmpbyh59htKWkOC98IONC1zgXJPbHAhQgqs6B0Z6StCGhmQvg==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], + "node_modules/ethers/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", "dependencies": { - "@adraffy/ens-normalize": "^1.11.0", - "@noble/ciphers": "^1.3.0", - "@noble/curves": "1.9.1", - "@noble/hashes": "^1.8.0", - "@scure/bip32": "^1.7.0", - "@scure/bip39": "^1.6.0", - "abitype": "^1.0.9", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "undici-types": "~6.19.2" } }, - "node_modules/viem/node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "node_modules/ethers/node_modules/aes-js": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/ethers/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", "engines": { "node": ">=10.0.0" }, @@ -12239,8474 +20771,7895 @@ } } }, - "node_modules/wagmi": { - "version": "2.16.9", - "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.16.9.tgz", - "integrity": "sha512-5NbjvuNNhT0t0lQsDD5otQqZ5RZBM1UhInHoBq/Lpnr6xLLa8AWxYqHg5oZtGCdiUNltys11iBOS6z4mLepIqw==", + "node_modules/ev-emitter": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-2.1.2.tgz", + "integrity": "sha512-jQ5Ql18hdCQ4qS+RCrbLfz1n+Pags27q5TwMKvZyhp5hh2UULUYZUy1keqj6k6SYsdqIYjnmz7xyyEY0V67B8Q==", + "license": "MIT" + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "license": "MIT", + "optional": true, "dependencies": { - "@wagmi/connectors": "5.9.9", - "@wagmi/core": "2.20.3", - "use-sync-external-store": "1.4.0" - }, - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "@tanstack/react-query": ">=5.0.0", - "react": ">=18", - "typescript": ">=5.0.4", - "viem": "2.x" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "d": "1", + "es5-ext": "~0.10.14" } }, - "node_modules/webextension-polyfill": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", - "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==" + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", + "license": "MIT" }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" } }, - "node_modules/which": { + "node_modules/eventsource": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "license": "MIT", "engines": { - "node": ">= 8" + "node": ">=12.0.0" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "node_modules/which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", - "dev": true, + "node_modules/exenv": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==", + "license": "BSD-3-Clause" + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "license": "ISC", + "optional": true, "dependencies": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", - "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", - "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "type": "^2.7.2" + } + }, + "node_modules/extension-port-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/extension-port-stream/-/extension-port-stream-3.0.0.tgz", + "integrity": "sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==", + "license": "ISC", + "dependencies": { + "readable-stream": "^3.6.2 || ^4.4.2", + "webextension-polyfill": ">=0.10.0 <1.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12.0.0" } }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8.6.0" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" - }, - "node_modules/which-typed-array": { - "version": "1.1.19", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", - "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true, + "license": "MIT" + }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" }, - "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=12.0.0" }, "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "picomatch": "^3 || ^4" }, "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { + "picomatch": { "optional": true } } }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" - }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" + "node_modules/feaxios": { + "version": "0.0.23", + "resolved": "https://registry.npmjs.org/feaxios/-/feaxios-0.0.23.tgz", + "integrity": "sha512-eghR0A21fvbkcQBgZuMfQhrXxJzC0GNUGC9fXhBge33D+mFDTwl0aJ35zoQQn575BhyjQitRc5N4f+L4cP708g==", + "license": "MIT", + "dependencies": { + "is-retry-allowed": "^3.0.0" } }, - "node_modules/yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.2" + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" }, "engines": { - "node": ">=8" + "node": "^12.20 || >= 14.13" } }, - "node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "flat-cache": "^3.0.4" }, "engines": { - "node": ">=6" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "license": "MIT" }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", + "license": "MIT" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=8" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", - "funding": { - "url": "https://github.com/sponsors/colinhacks" + "node_modules/form-data": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.5.tgz", + "integrity": "sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.35", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.12" } }, - "node_modules/zustand": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", - "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, "engines": { "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } - } - }, - "dependencies": { - "@adraffy/ens-normalize": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", - "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==" - }, - "@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "requires": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - } - }, - "@babel/generator": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", - "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", - "requires": { - "@babel/types": "^7.24.7", - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" } }, - "@babel/helper-environment-visitor": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", - "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", - "requires": { - "@babel/types": "^7.24.7" + "node_modules/formik": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.9.tgz", + "integrity": "sha512-5nI94BMnlFDdQRBY4Sz39WkhxajZJ57Fzs8wVbtsQlm5ScKIR1QLYqv/ultBnobObtlUyxpxoLodpixrsf36Og==", + "funding": [ + { + "type": "individual", + "url": "https://opencollective.com/formik" + } + ], + "license": "Apache-2.0", + "dependencies": { + "@types/hoist-non-react-statics": "^3.3.1", + "deepmerge": "^2.1.1", + "hoist-non-react-statics": "^3.3.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.21", + "react-fast-compare": "^2.0.1", + "tiny-warning": "^1.0.2", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0" } }, - "@babel/helper-function-name": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", - "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", - "requires": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.7" + "node_modules/formik/node_modules/deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", - "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", - "requires": { - "@babel/types": "^7.24.7" + "node_modules/freeport-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/freeport-promise/-/freeport-promise-2.0.0.tgz", + "integrity": "sha512-dwWpT1DdQcwrhmRwnDnPM/ZFny+FtzU+k50qF2eid3KxaQDsMiBrwo1i0G3qSugkN5db6Cb0zgfc68QeTOpEFg==", + "license": "Apache-2.0 OR MIT", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", - "requires": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" - } + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" }, - "@babel/helper-split-export-declaration": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", - "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", - "requires": { - "@babel/types": "^7.24.7" + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==" - }, - "@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==" - }, - "@babel/parser": { - "version": "7.27.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", - "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", - "requires": { - "@babel/types": "^7.27.3" + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/runtime": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz", - "integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==", - "requires": { - "regenerator-runtime": "^0.14.0" + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", - "requires": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "@babel/traverse": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", - "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", - "requires": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.24.7", - "@babel/helper-environment-visitor": "^7.24.7", - "@babel/helper-function-name": "^7.24.7", - "@babel/helper-hoist-variables": "^7.24.7", - "@babel/helper-split-export-declaration": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "dependencies": { - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - } + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { - "version": "7.27.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.6.tgz", - "integrity": "sha512-ETyHEk2VHHvl9b9jZP5IHPavHYk57EhanlRRuae9XCpb/j5bDCbPPMOBfCWhnl/7EDJz0jEMCi/RhccCE8r1+Q==", - "requires": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1" + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "@base-org/account": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@base-org/account/-/account-1.1.1.tgz", - "integrity": "sha512-IfVJPrDPhHfqXRDb89472hXkpvJuQQR7FDI9isLPHEqSYt/45whIoBxSPgZ0ssTt379VhQo4+87PWI1DoLSfAQ==", - "requires": { - "@noble/hashes": "1.4.0", - "clsx": "1.2.1", - "eventemitter3": "5.0.1", - "idb-keyval": "6.2.1", - "ox": "0.6.9", - "preact": "10.24.2", - "viem": "^2.31.7", - "zustand": "5.0.3" - }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { - "@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" - }, - "clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" - } - } - }, - "@coinbase/wallet-sdk": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-4.3.6.tgz", - "integrity": "sha512-4q8BNG1ViL4mSAAvPAtpwlOs1gpC+67eQtgIwNvT3xyeyFFd+guwkc8bcX5rTmQhXpqnhzC4f0obACbP9CqMSA==", - "requires": { - "@noble/hashes": "1.4.0", - "clsx": "1.2.1", - "eventemitter3": "5.0.1", - "idb-keyval": "6.2.1", - "ox": "0.6.9", - "preact": "10.24.2", - "viem": "^2.27.2", - "zustand": "5.0.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, - "dependencies": { - "@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" - }, - "clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" - } + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@date-fns/tz": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.2.0.tgz", - "integrity": "sha512-LBrd7MiJZ9McsOgxqWX7AaxrDjcFVjWH/tIKJd7pnR7McaslGYOP1QmmiBXdJH/H/yLCT+rcQ7FaPBUxRGUtrg==" - }, - "@ecies/ciphers": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.4.tgz", - "integrity": "sha512-t+iX+Wf5nRKyNzk8dviW3Ikb/280+aEJAnw9YXvCp2tYGPSkMki+NRY+8aNLmVFv3eNtMdvViPNOPxS8SZNP+w==", - "requires": {} - }, - "@emnapi/runtime": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", - "optional": true, - "requires": { - "tslib": "^2.4.0" - } + "node_modules/get-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-2.0.1.tgz", + "integrity": "sha512-7HuY/hebu4gryTDT7O/XY/fvY9wRByEGdK6QOa4of8npTcv0+NS6frFKABcf6S9EBAsveTuKTsZQQBFMMNILIg==", + "license": "MIT" }, - "@emotion/babel-plugin": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", - "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", - "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/runtime": "^7.18.3", - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/serialize": "^1.1.2", - "babel-plugin-macros": "^3.1.0", - "convert-source-map": "^1.5.0", - "escape-string-regexp": "^4.0.0", - "find-root": "^1.1.0", - "source-map": "^0.5.7", - "stylis": "4.2.0" + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "@emotion/cache": { - "version": "11.11.0", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", - "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", - "requires": { - "@emotion/memoize": "^0.8.1", - "@emotion/sheet": "^1.2.2", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "stylis": "4.2.0" + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "@emotion/hash": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", - "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" - }, - "@emotion/is-prop-valid": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz", - "integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==", - "requires": { - "@emotion/memoize": "^0.8.1" - } - }, - "@emotion/memoize": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", - "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" - }, - "@emotion/react": { - "version": "11.11.4", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", - "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", - "requires": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/cache": "^11.11.0", - "@emotion/serialize": "^1.1.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1", - "@emotion/weak-memoize": "^0.3.1", - "hoist-non-react-statics": "^3.3.1" - } + "node_modules/get-size": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-size/-/get-size-3.0.0.tgz", + "integrity": "sha512-Y8aiXLq4leR7807UY0yuKEwif5s3kbVp1nTv+i4jBeoUzByTLKkLWu/HorS6/pB+7gsB0o7OTogC8AoOOeT0Hw==", + "license": "MIT" }, - "@emotion/serialize": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.4.tgz", - "integrity": "sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==", - "requires": { - "@emotion/hash": "^0.9.1", - "@emotion/memoize": "^0.8.1", - "@emotion/unitless": "^0.8.1", - "@emotion/utils": "^1.2.1", - "csstype": "^3.0.2" + "node_modules/get-stream": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-9.0.1.tgz", + "integrity": "sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==", + "license": "MIT", + "dependencies": { + "@sec-ant/readable-stream": "^0.4.1", + "is-stream": "^4.0.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@emotion/sheet": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", - "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" - }, - "@emotion/styled": { - "version": "11.11.5", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.5.tgz", - "integrity": "sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==", - "requires": { - "@babel/runtime": "^7.18.3", - "@emotion/babel-plugin": "^11.11.0", - "@emotion/is-prop-valid": "^1.2.2", - "@emotion/serialize": "^1.1.4", - "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", - "@emotion/utils": "^1.2.1" + "node_modules/get-stream/node_modules/is-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-4.0.1.tgz", + "integrity": "sha512-Dnz92NInDqYckGEUJv689RbRiTSEHCQ7wOVeALbkOz999YpqT46yMRIGtSNl2iCL1waAZSx40+h59NV/EwzV/A==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@emotion/unitless": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", - "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" - }, - "@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", - "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", - "requires": {} - }, - "@emotion/utils": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", - "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" - }, - "@emotion/weak-memoize": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", - "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@eslint-community/regexpp": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", - "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/get-tsconfig": { + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", + "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - } - }, - "@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true - }, - "@ethereumjs/common": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-3.2.0.tgz", - "integrity": "sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA==", - "requires": { - "@ethereumjs/util": "^8.1.0", - "crc-32": "^1.2.0" + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, - "@ethereumjs/rlp": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-4.0.1.tgz", - "integrity": "sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==" - }, - "@ethereumjs/tx": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-4.2.0.tgz", - "integrity": "sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw==", - "requires": { - "@ethereumjs/common": "^3.2.0", - "@ethereumjs/rlp": "^4.0.1", - "@ethereumjs/util": "^8.1.0", - "ethereum-cryptography": "^2.0.0" + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "@ethereumjs/util": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-8.1.0.tgz", - "integrity": "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA==", - "requires": { - "@ethereumjs/rlp": "^4.0.1", - "ethereum-cryptography": "^2.0.0", - "micro-ftch": "^0.3.1" + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "@gemini-wallet/core": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@gemini-wallet/core/-/core-0.2.0.tgz", - "integrity": "sha512-vv9aozWnKrrPWQ3vIFcWk7yta4hQW1Ie0fsNNPeXnjAxkbXr2hqMagEptLuMxpEP2W3mnRu05VDNKzcvAuuZDw==", - "requires": { - "@metamask/rpc-errors": "7.0.2", - "eventemitter3": "5.0.1" + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "dev": true - }, - "@img/colour": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", - "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", - "optional": true - }, - "@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "optional": true, - "requires": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "optional": true, - "requires": { - "@img/sharp-libvips-darwin-x64": "1.2.4" + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "optional": true - }, - "@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "optional": true - }, - "@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "optional": true - }, - "@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "optional": true - }, - "@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "optional": true - }, - "@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "optional": true + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "optional": true + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "optional": true + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "optional": true + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" }, - "@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "optional": true + "node_modules/gsap": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.13.0.tgz", + "integrity": "sha512-QL7MJ2WMjm1PHWsoFrAQH/J8wUeqZvMtHO58qdekHpCfhvhSL4gSiz6vJf5EeMP0LOn3ZCprL2ki/gjED8ghVw==", + "license": "Standard 'no charge' license: https://gsap.com/standard-license." }, - "@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "optional": true, - "requires": { - "@img/sharp-libvips-linux-arm": "1.2.4" + "node_modules/h3": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.4.tgz", + "integrity": "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==", + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": "^0.3.5", + "defu": "^6.1.4", + "destr": "^2.0.5", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.2", + "radix3": "^1.1.2", + "ufo": "^1.6.1", + "uncrypto": "^0.1.3" } }, - "@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "optional": true, - "requires": { - "@img/sharp-libvips-linux-arm64": "1.2.4" + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "optional": true, - "requires": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "optional": true, - "requires": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "optional": true, - "requires": { - "@img/sharp-libvips-linux-s390x": "1.2.4" + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "optional": true, - "requires": { - "@img/sharp-libvips-linux-x64": "1.2.4" + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "optional": true, - "requires": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "optional": true, - "requires": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + "node_modules/hash-base": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, - "@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "optional": true, - "requires": { - "@emnapi/runtime": "^1.7.0" + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, - "@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "optional": true + "node_modules/hashlru": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz", + "integrity": "sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==", + "license": "MIT" }, - "@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "optional": true + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } }, - "@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "optional": true + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "license": "MIT", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } }, - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", + "dependencies": { + "react-is": "^16.7.0" } }, - "@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==" + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "node_modules/hono": { + "version": "4.11.4", + "resolved": "https://registry.npmjs.org/hono/-/hono-4.11.4.tgz", + "integrity": "sha512-U7tt8JsyrxSRKspfhtLET79pU8K+tInj5QZXs1jSugO1Vq5dFj3kmZsRldo29mTBfcjDRVRXrEZ6LS63Cog9ZA==", + "license": "MIT", + "engines": { + "node": ">=16.9.0" } }, - "@lit-labs/ssr-dom-shim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.4.0.tgz", - "integrity": "sha512-ficsEARKnmmW5njugNYKipTm4SFnbik7CXtoencDZzmzo/dQ+2Q0bgkzJuoJP20Aj0F+izzJjOqsnkd6F/o1bw==" + "node_modules/hpke-js": { + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/hpke-js/-/hpke-js-1.6.5.tgz", + "integrity": "sha512-amUFmHr6Z16370Wn57lYOkl+gb3wDBUc0nyPlx9ODMTaJ09kAVY0MrOU7JCzJJjL0bN8nKPU5vfXLBRjCmREOw==", + "license": "MIT", + "dependencies": { + "@hpke/chacha20poly1305": "^1.7.0", + "@hpke/common": "^1.8.1", + "@hpke/core": "^1.7.5", + "@hpke/dhkem-x25519": "^1.6.4", + "@hpke/dhkem-x448": "^1.6.4" + }, + "engines": { + "node": ">=16.0.0" + } }, - "@lit/reactive-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-2.1.1.tgz", - "integrity": "sha512-N+dm5PAYdQ8e6UlywyyrgI2t++wFGXfHx+dSJ1oBrg6FAxUj40jId++EaRm80MKX5JnlH1sBsyZ5h0bcZKemCg==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.4.0" + "node_modules/http-link-header": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.1.3.tgz", + "integrity": "sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" } }, - "@metamask/eth-json-rpc-provider": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-json-rpc-provider/-/eth-json-rpc-provider-1.0.1.tgz", - "integrity": "sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA==", - "requires": { - "@metamask/json-rpc-engine": "^7.0.0", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^5.0.1" - }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "license": "MIT", "dependencies": { - "@metamask/json-rpc-engine": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-7.3.3.tgz", - "integrity": "sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg==", - "requires": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" - }, - "dependencies": { - "@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - } - } - } - }, - "@metamask/rpc-errors": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", - "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", - "requires": { - "@metamask/utils": "^9.0.0", - "fast-safe-stringify": "^2.0.6" - }, - "dependencies": { - "@metamask/utils": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", - "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - } - } - } - }, - "@metamask/utils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", - "integrity": "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==", - "requires": { - "@ethereumjs/tx": "^4.1.2", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "semver": "^7.3.8", - "superstruct": "^1.0.3" - } - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - } + "ms": "^2.0.0" } }, - "@metamask/json-rpc-engine": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", - "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", - "requires": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" - }, - "dependencies": { - "@metamask/rpc-errors": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", - "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", - "requires": { - "@metamask/utils": "^9.0.0", - "fast-safe-stringify": "^2.0.6" - }, - "dependencies": { - "@metamask/utils": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", - "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - } - } - } + "node_modules/idb-keyval": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", + "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", + "license": "Apache-2.0" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + { + "type": "consulting", + "url": "https://feross.org/support" } - } + ], + "license": "BSD-3-Clause" }, - "@metamask/json-rpc-middleware-stream": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", - "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", - "requires": { - "@metamask/json-rpc-engine": "^8.0.2", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0", - "readable-stream": "^3.6.2" - }, - "dependencies": { - "@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - } - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - } + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, - "@metamask/object-multiplex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz", - "integrity": "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==", - "requires": { - "once": "^1.4.0", - "readable-stream": "^3.6.2" - } + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" }, - "@metamask/onboarding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz", - "integrity": "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==", - "requires": { - "bowser": "^2.9.0" + "node_modules/immer": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", + "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" } }, - "@metamask/providers": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", - "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", - "requires": { - "@metamask/json-rpc-engine": "^8.0.1", - "@metamask/json-rpc-middleware-stream": "^7.0.1", - "@metamask/object-multiplex": "^2.0.0", - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.1.1", - "@metamask/utils": "^8.3.0", - "detect-browser": "^5.2.0", - "extension-port-stream": "^3.0.0", - "fast-deep-equal": "^3.1.3", - "is-stream": "^2.0.0", - "readable-stream": "^3.6.2", - "webextension-polyfill": "^0.10.0" - }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", "dependencies": { - "@metamask/rpc-errors": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", - "integrity": "sha512-1ugFO1UoirU2esS3juZanS/Fo8C8XYocCuBpfZI5N7ECtoG+zu0wF+uWZASik6CkO6w9n/Iebt4iI4pT0vptpg==", - "requires": { - "@metamask/utils": "^9.0.0", - "fast-safe-stringify": "^2.0.6" - }, - "dependencies": { - "@metamask/utils": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-9.3.0.tgz", - "integrity": "sha512-w8CVbdkDrVXFJbfBSlDfafDR6BAkpDmv1bC1UJVCoVny5tW2RKAdn9i68Xf7asYT4TnUhl/hN4zfUiKQq9II4g==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - } - } - } - }, - "@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - } - }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - } + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@metamask/rpc-errors": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-7.0.2.tgz", - "integrity": "sha512-YYYHsVYd46XwY2QZzpGeU4PSdRhHdxnzkB8piWGvJW2xbikZ3R+epAYEL4q/K8bh9JPTucsUdwRFnACor1aOYw==", - "requires": { - "@metamask/utils": "^11.0.1", - "fast-safe-stringify": "^2.0.6" + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" } }, - "@metamask/safe-event-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-3.1.2.tgz", - "integrity": "sha512-5yb2gMI1BDm0JybZezeoX/3XhPDOtTbcFvpTXM9kxsoZjPZFh4XciqRbpD6N86HYZqWDhEaKUDuOyR0sQHEjMA==" - }, - "@metamask/sdk": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.32.0.tgz", - "integrity": "sha512-WmGAlP1oBuD9hk4CsdlG1WJFuPtYJY+dnTHJMeCyohTWD2GgkcLMUUuvu9lO1/NVzuOoSi1OrnjbuY1O/1NZ1g==", - "requires": { - "@babel/runtime": "^7.26.0", - "@metamask/onboarding": "^1.0.1", - "@metamask/providers": "16.1.0", - "@metamask/sdk-communication-layer": "0.32.0", - "@metamask/sdk-install-modal-web": "0.32.0", - "@paulmillr/qr": "^0.2.1", - "bowser": "^2.9.0", - "cross-fetch": "^4.0.0", - "debug": "^4.3.4", - "eciesjs": "^0.4.11", - "eth-rpc-errors": "^4.0.3", - "eventemitter2": "^6.4.9", - "obj-multiplex": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.2", - "socket.io-client": "^4.5.1", - "tslib": "^2.6.0", - "util": "^0.12.4", - "uuid": "^8.3.2" + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "@metamask/sdk-communication-layer": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.32.0.tgz", - "integrity": "sha512-dmj/KFjMi1fsdZGIOtbhxdg3amxhKL/A5BqSU4uh/SyDKPub/OT+x5pX8bGjpTL1WPWY/Q0OIlvFyX3VWnT06Q==", - "requires": { - "bufferutil": "^4.0.8", - "date-fns": "^2.29.3", - "debug": "^4.3.4", - "utf-8-validate": "^5.0.2", - "uuid": "^8.3.2" + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/int64-buffer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-1.1.0.tgz", + "integrity": "sha512-94smTCQOvigN4d/2R/YDjz8YVG0Sufvv2aAh8P5m42gwhCsDAJqnbNOrxJsrADuAFAA69Q/ptGzxvNcNuIJcvw==", + "license": "MIT" + }, + "node_modules/interface-datastore": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/interface-datastore/-/interface-datastore-9.0.2.tgz", + "integrity": "sha512-jebn+GV/5LTDDoyicNIB4D9O0QszpPqT09Z/MpEWvf3RekjVKpXJCDguM5Au2fwIFxFDAQMZe5bSla0jMamCNg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "interface-store": "^7.0.0", + "uint8arrays": "^5.1.0" } }, - "@metamask/sdk-install-modal-web": { - "version": "0.32.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.32.0.tgz", - "integrity": "sha512-TFoktj0JgfWnQaL3yFkApqNwcaqJ+dw4xcnrJueMP3aXkSNev2Ido+WVNOg4IIMxnmOrfAC9t0UJ0u/dC9MjOQ==", - "requires": { - "@paulmillr/qr": "^0.2.1" + "node_modules/interface-datastore/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" } }, - "@metamask/superstruct": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.2.1.tgz", - "integrity": "sha512-fLgJnDOXFmuVlB38rUN5SmU7hAFQcCjrg3Vrxz67KTY7YHFnSNEKvX4avmEBdOI0yTCxZjwMCFEqsC8k2+Wd3g==" + "node_modules/interface-store": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/interface-store/-/interface-store-7.0.1.tgz", + "integrity": "sha512-OPRRUO3Cs6Jr/t98BrJLQp1jUTPgrRH0PqFfuNoPAqd+J7ABN1tjFVjQdaOBiybYJTS/AyBSZnZVWLPvp3dW3w==", + "license": "Apache-2.0 OR MIT" }, - "@metamask/utils": { - "version": "11.7.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-11.7.0.tgz", - "integrity": "sha512-IamqpZF8Lr4WeXJ84fD+Sy+v1Zo05SYuMPHHBrZWpzVbnHAmXQpL4ckn9s5dfA+zylp3WGypaBPb6SBZdOhuNQ==", - "requires": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.1.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "@types/lodash": "^4.17.20", - "debug": "^4.3.4", - "lodash": "^4.17.21", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "license": "MIT", "dependencies": { - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" - } + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, - "@mui/core-downloads-tracker": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.7.tgz", - "integrity": "sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==" - }, - "@mui/icons-material": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.7.tgz", - "integrity": "sha512-UrGwDJCXEszbDI7yV047BYU5A28eGJ79keTCP4cc74WyncuVrnurlmIRxaHL8YK+LI1Kzq+/JM52IAkNnv4u+Q==", - "requires": { - "@babel/runtime": "^7.23.9" - } - }, - "@mui/material": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.7.tgz", - "integrity": "sha512-cwwVQxBhK60OIOqZOVLFt55t01zmarKJiJUWbk0+8s/Ix5IaUzAShqlJchxsIQ4mSrWqgcKCCXKtIlG5H+/Jmg==", - "requires": { - "@babel/runtime": "^7.23.9", - "@mui/core-downloads-tracker": "^5.16.7", - "@mui/system": "^5.16.7", - "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.6", - "@popperjs/core": "^2.11.8", - "@types/react-transition-group": "^4.4.10", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1", - "react-is": "^18.3.1", - "react-transition-group": "^4.4.5" - }, - "dependencies": { - "react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - } + "node_modules/internmap": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", + "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", + "license": "ISC", + "engines": { + "node": ">=12" } }, - "@mui/private-theming": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.6.tgz", - "integrity": "sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==", - "requires": { - "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.16.6", - "prop-types": "^15.8.1" + "node_modules/ip-address": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz", + "integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==", + "license": "MIT", + "engines": { + "node": ">= 12" } }, - "@mui/styled-engine": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.6.tgz", - "integrity": "sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==", - "requires": { - "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" } }, - "@mui/system": { - "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.7.tgz", - "integrity": "sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==", - "requires": { - "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.16.6", - "@mui/styled-engine": "^5.16.6", - "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.6", - "clsx": "^2.1.0", - "csstype": "^3.1.3", - "prop-types": "^15.8.1" + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@mui/types": { - "version": "7.2.15", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.15.tgz", - "integrity": "sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==", - "requires": {} - }, - "@mui/utils": { - "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", - "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", - "requires": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "license": "MIT", "dependencies": { - "react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - } + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@mui/x-data-grid": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mui/x-data-grid/-/x-data-grid-7.13.0.tgz", - "integrity": "sha512-opV4OgNqc9UoKkQ1z5Ot2AkluwiVQMo6UmDaxmT/v0k2uQ77eQvxJqbnCwYll0XjsRzPz6ehiTaK3nbhXm0sIQ==", - "requires": { - "@babel/runtime": "^7.25.0", - "@mui/system": "^5.16.5", - "@mui/utils": "^5.16.5", - "@mui/x-internals": "7.13.0", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "reselect": "^4.1.8" - } + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" }, - "@mui/x-date-pickers": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.27.3.tgz", - "integrity": "sha512-igfKTPC4ZVCmS5j/NXcXBtj/hHseQHzRpCpIB1PMnJGhMdRYXnz8qZz5XhlNBKlzJVXkGu6Uil+obZpCLNj1xg==", - "requires": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-internals": "7.26.0", - "@types/react-transition-group": "^4.4.11", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@mui/x-internals": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", - "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", - "requires": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0" - } - } + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@mui/x-date-pickers-pro": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@mui/x-date-pickers-pro/-/x-date-pickers-pro-7.27.3.tgz", - "integrity": "sha512-gbCq5gSt8Bcs3EENSUK66mPwYNv8z9+P8gHj/9iW9F+a0bnPyYjoy+wl/UAItgXLBdxZuCbGO0Qp8Tcc5/5N0w==", - "requires": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-date-pickers": "7.27.3", - "@mui/x-internals": "7.26.0", - "@mui/x-license": "7.26.0", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" - }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "license": "MIT", "dependencies": { - "@mui/x-internals": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", - "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", - "requires": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0" - } - } + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@mui/x-internals": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.13.0.tgz", - "integrity": "sha512-eUK7iykkDWU+wBfTzE/S0qh4awgVgsORfrpvuPbUp+E6qUj1Xhu9M/WKzbwz0CPFnTJZwBQ9KYrxpGXnPBEpRQ==", - "requires": { - "@babel/runtime": "^7.25.0", - "@mui/utils": "^5.16.5" - } - }, - "@mui/x-license": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-license/-/x-license-7.26.0.tgz", - "integrity": "sha512-WxwBGk6xXF0vi4IGCCojMHjQsAXvltjP+YgFTTgWVFhIpDFDu89xLOwRnSWrhCwD6dlK/BwKgn2UgxTE8BZGFQ==", - "requires": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0", - "@mui/x-internals": "7.26.0" - }, - "dependencies": { - "@mui/x-internals": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@mui/x-internals/-/x-internals-7.26.0.tgz", - "integrity": "sha512-VxTCYQcZ02d3190pdvys2TDg9pgbvewAVakEopiOgReKAUhLdRlgGJHcOA/eAuGLyK1YIo26A6Ow6ZKlSRLwMg==", - "requires": { - "@babel/runtime": "^7.25.7", - "@mui/utils": "^5.16.6 || ^6.0.0" - } - } + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@next/env": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/env/-/env-15.4.8.tgz", - "integrity": "sha512-LydLa2MDI1NMrOFSkO54mTc8iIHSttj6R6dthITky9ylXV2gCGi0bHQjVCtLGRshdRPjyh2kXbxJukDtBWQZtQ==" - }, - "@next/eslint-plugin-next": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.4.tgz", - "integrity": "sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==", + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "dev": true, - "requires": { - "glob": "7.1.7" + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" } }, - "@next/swc-darwin-arm64": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.4.8.tgz", - "integrity": "sha512-Pf6zXp7yyQEn7sqMxur6+kYcywx5up1J849psyET7/8pG2gQTVMjU3NzgIt8SeEP5to3If/SaWmaA6H6ysBr1A==", - "optional": true - }, - "@next/swc-darwin-x64": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.4.8.tgz", - "integrity": "sha512-xla6AOfz68a6kq3gRQccWEvFC/VRGJmA/QuSLENSO7CZX5WIEkSz7r1FdXUjtGCQ1c2M+ndUAH7opdfLK1PQbw==", - "optional": true - }, - "@next/swc-linux-arm64-gnu": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.4.8.tgz", - "integrity": "sha512-y3fmp+1Px/SJD+5ntve5QLZnGLycsxsVPkTzAc3zUiXYSOlTPqT8ynfmt6tt4fSo1tAhDPmryXpYKEAcoAPDJw==", - "optional": true - }, - "@next/swc-linux-arm64-musl": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.4.8.tgz", - "integrity": "sha512-DX/L8VHzrr1CfwaVjBQr3GWCqNNFgyWJbeQ10Lx/phzbQo3JNAxUok1DZ8JHRGcL6PgMRgj6HylnLNndxn4Z6A==", - "optional": true - }, - "@next/swc-linux-x64-gnu": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.4.8.tgz", - "integrity": "sha512-9fLAAXKAL3xEIFdKdzG5rUSvSiZTLLTCc6JKq1z04DR4zY7DbAPcRvNm3K1inVhTiQCs19ZRAgUerHiVKMZZIA==", - "optional": true - }, - "@next/swc-linux-x64-musl": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.4.8.tgz", - "integrity": "sha512-s45V7nfb5g7dbS7JK6XZDcapicVrMMvX2uYgOHP16QuKH/JA285oy6HcxlKqwUNaFY/UC6EvQ8QZUOo19cBKSA==", - "optional": true - }, - "@next/swc-win32-arm64-msvc": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.4.8.tgz", - "integrity": "sha512-KjgeQyOAq7t/HzAJcWPGA8X+4WY03uSCZ2Ekk98S9OgCFsb6lfBE3dbUzUuEQAN2THbwYgFfxX2yFTCMm8Kehw==", - "optional": true - }, - "@next/swc-win32-x64-msvc": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.4.8.tgz", - "integrity": "sha512-Exsmf/+42fWVnLMaZHzshukTBxZrSwuuLKFvqhGHJ+mC1AokqieLY/XzAl3jc/CqhXLqLY3RRjkKJ9YnLPcRWg==", - "optional": true - }, - "@noble/ciphers": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz", - "integrity": "sha512-rONPWMC7PeExE077uLE4oqWrZ1IvAfz3oH9LibVAcVCopJiA9R62uavnbEzdkVmJYI6M6Zgkbeb07+tWjlq2XA==" - }, - "@noble/curves": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", - "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", - "requires": { - "@noble/hashes": "1.3.2" + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@noble/hashes": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", - "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@paulmillr/qr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@paulmillr/qr/-/qr-0.2.1.tgz", - "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==" - }, - "@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", - "dev": true + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "@popperjs/core": { - "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + "node_modules/is-electron": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", + "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==", + "license": "MIT" }, - "@rainbow-me/rainbowkit": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@rainbow-me/rainbowkit/-/rainbowkit-2.1.2.tgz", - "integrity": "sha512-nzhS4p7rtE9bAkOKSq+J761+gn6UseVxMdDpRBAr+0+ct/Hv1STErq9TT3GEXNrnAeSldtbxBVIkepa4uGykDA==", - "requires": { - "@vanilla-extract/css": "1.14.0", - "@vanilla-extract/dynamic": "2.1.0", - "@vanilla-extract/sprinkles": "1.6.1", - "clsx": "2.1.0", - "qrcode": "1.5.3", - "react-remove-scroll": "2.5.7", - "ua-parser-js": "^1.0.37" - }, - "dependencies": { - "clsx": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", - "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==" - } + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "@react-leaflet/core": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@react-leaflet/core/-/core-2.1.0.tgz", - "integrity": "sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==", - "requires": {} - }, - "@reown/appkit": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit/-/appkit-1.7.8.tgz", - "integrity": "sha512-51kTleozhA618T1UvMghkhKfaPcc9JlKwLJ5uV+riHyvSoWPKPRIa5A6M1Wano5puNyW0s3fwywhyqTHSilkaA==", - "requires": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-pay": "1.7.8", - "@reown/appkit-polyfills": "1.7.8", - "@reown/appkit-scaffold-ui": "1.7.8", - "@reown/appkit-ui": "1.7.8", - "@reown/appkit-utils": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "@walletconnect/types": "2.21.0", - "@walletconnect/universal-provider": "2.21.0", - "bs58": "6.0.0", - "valtio": "1.13.2", - "viem": ">=2.29.0" - }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", "dependencies": { - "@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", - "requires": { - "@noble/hashes": "1.7.1" - } - }, - "@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==" - }, - "@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", - "requires": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - } - }, - "@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", - "requires": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" - } - }, - "@walletconnect/core": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", - "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", - "requires": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" - } - }, - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } - }, - "@walletconnect/sign-client": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", - "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", - "requires": { - "@walletconnect/core": "2.21.0", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "events": "3.3.0" - } - }, - "@walletconnect/types": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", - "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" - } - }, - "@walletconnect/universal-provider": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", - "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.0", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "es-toolkit": "1.33.0", - "events": "3.3.0" - } - }, - "@walletconnect/utils": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", - "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", - "requires": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" - }, - "dependencies": { - "viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "requires": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" - } - } - } - }, - "abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "requires": {} - }, - "isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", - "requires": {} - }, - "ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "requires": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - } - }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } - }, - "ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "requires": {} - } + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@reown/appkit-common": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-common/-/appkit-common-1.7.8.tgz", - "integrity": "sha512-ridIhc/x6JOp7KbDdwGKY4zwf8/iK8EYBl+HtWrruutSLwZyVi5P8WaZa+8iajL6LcDcDF7LoyLwMTym7SRuwQ==", - "requires": { - "big.js": "6.2.2", - "dayjs": "1.11.13", - "viem": ">=2.29.0" + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@reown/appkit-controllers": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-controllers/-/appkit-controllers-1.7.8.tgz", - "integrity": "sha512-IdXlJlivrlj6m63VsGLsjtPHHsTWvKGVzWIP1fXZHVqmK+rZCBDjCi9j267Rb9/nYRGHWBtlFQhO8dK35WfeDA==", - "requires": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "@walletconnect/universal-provider": "2.21.0", - "valtio": "1.13.2", - "viem": ">=2.29.0" - }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", "dependencies": { - "@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", - "requires": { - "@noble/hashes": "1.7.1" - } - }, - "@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==" - }, - "@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", - "requires": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - } - }, - "@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", - "requires": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" - } - }, - "@walletconnect/core": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", - "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", - "requires": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" - } - }, - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } - }, - "@walletconnect/sign-client": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", - "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", - "requires": { - "@walletconnect/core": "2.21.0", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "events": "3.3.0" - } - }, - "@walletconnect/types": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", - "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" - } - }, - "@walletconnect/universal-provider": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", - "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.0", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "es-toolkit": "1.33.0", - "events": "3.3.0" - } - }, - "@walletconnect/utils": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", - "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", - "requires": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" - }, - "dependencies": { - "viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "requires": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" - } - } - } - }, - "abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "requires": {} - }, - "isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", - "requires": {} - }, - "ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "requires": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - } - }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } - }, - "ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "requires": {} - } + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "@reown/appkit-pay": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-pay/-/appkit-pay-1.7.8.tgz", - "integrity": "sha512-OSGQ+QJkXx0FEEjlpQqIhT8zGJKOoHzVnyy/0QFrl3WrQTjCzg0L6+i91Ad5Iy1zb6V5JjqtfIFpRVRWN4M3pw==", - "requires": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-ui": "1.7.8", - "@reown/appkit-utils": "1.7.8", - "lit": "3.3.0", - "valtio": "1.13.2" - } + "node_modules/is-loopback-addr": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-2.0.2.tgz", + "integrity": "sha512-26POf2KRCno/KTNL5Q0b/9TYnL00xEsSaLfiFRmjM7m7Lw7ZMmFybzzuX4CcsLAluZGd+niLUiMRxEooVE3aqg==", + "license": "MIT" }, - "@reown/appkit-polyfills": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-polyfills/-/appkit-polyfills-1.7.8.tgz", - "integrity": "sha512-W/kq786dcHHAuJ3IV2prRLEgD/2iOey4ueMHf1sIFjhhCGMynMkhsOhQMUH0tzodPqUgAC494z4bpIDYjwWXaA==", - "requires": { - "buffer": "6.0.3" + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@reown/appkit-scaffold-ui": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-scaffold-ui/-/appkit-scaffold-ui-1.7.8.tgz", - "integrity": "sha512-RCeHhAwOrIgcvHwYlNWMcIDibdI91waaoEYBGw71inE0kDB8uZbE7tE6DAXJmDkvl0qPh+DqlC4QbJLF1FVYdQ==", - "requires": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-ui": "1.7.8", - "@reown/appkit-utils": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "lit": "3.3.0" + "node_modules/is-nan": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", + "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@reown/appkit-ui": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-ui/-/appkit-ui-1.7.8.tgz", - "integrity": "sha512-1hjCKjf6FLMFzrulhl0Y9Vb9Fu4royE+SXCPSWh4VhZhWqlzUFc7kutnZKx8XZFVQH4pbBvY62SpRC93gqoHow==", - "requires": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "lit": "3.3.0", - "qrcode": "1.5.3" + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@reown/appkit-utils": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-utils/-/appkit-utils-1.7.8.tgz", - "integrity": "sha512-8X7UvmE8GiaoitCwNoB86pttHgQtzy4ryHZM9kQpvjQ0ULpiER44t1qpVLXNM4X35O0v18W0Dk60DnYRMH2WRw==", - "requires": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-controllers": "1.7.8", - "@reown/appkit-polyfills": "1.7.8", - "@reown/appkit-wallet": "1.7.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/universal-provider": "2.21.0", - "valtio": "1.13.2", - "viem": ">=2.29.0" + "node_modules/is-network-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.3.0.tgz", + "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", + "license": "MIT", + "engines": { + "node": ">=16" }, - "dependencies": { - "@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", - "requires": { - "@noble/hashes": "1.7.1" - } - }, - "@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==" - }, - "@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", - "requires": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - } - }, - "@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", - "requires": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" - } - }, - "@walletconnect/core": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.0.tgz", - "integrity": "sha512-o6R7Ua4myxR8aRUAJ1z3gT9nM+jd2B2mfamu6arzy1Cc6vi10fIwFWb6vg3bC8xJ6o9H3n/cN5TOW3aA9Y1XVw==", - "requires": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" - } - }, - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } - }, - "@walletconnect/sign-client": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.0.tgz", - "integrity": "sha512-z7h+PeLa5Au2R591d/8ZlziE0stJvdzP9jNFzFolf2RG/OiXulgFKum8PrIyXy+Rg2q95U9nRVUF9fWcn78yBA==", - "requires": { - "@walletconnect/core": "2.21.0", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "events": "3.3.0" - } - }, - "@walletconnect/types": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.0.tgz", - "integrity": "sha512-ll+9upzqt95ZBWcfkOszXZkfnpbJJ2CmxMfGgE5GmhdxxxCcO5bGhXkI+x8OpiS555RJ/v/sXJYMSOLkmu4fFw==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" - } - }, - "@walletconnect/universal-provider": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.0.tgz", - "integrity": "sha512-mtUQvewt+X0VBQay/xOJBvxsB3Xsm1lTwFjZ6WUwSOTR1X+FNb71hSApnV5kbsdDIpYPXeQUbGt2se1n5E5UBg==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.0", - "@walletconnect/types": "2.21.0", - "@walletconnect/utils": "2.21.0", - "es-toolkit": "1.33.0", - "events": "3.3.0" - } - }, - "@walletconnect/utils": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.0.tgz", - "integrity": "sha512-zfHLiUoBrQ8rP57HTPXW7rQMnYxYI4gT9yTACxVW6LhIFROTF6/ytm5SKNoIvi4a5nX5dfXG4D9XwQUCu8Ilig==", - "requires": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.0", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" - }, - "dependencies": { - "viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "requires": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" - } - } - } - }, - "abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "requires": {} - }, - "isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", - "requires": {} - }, - "ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "requires": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - } - }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } - }, - "ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "requires": {} - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@reown/appkit-wallet": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/@reown/appkit-wallet/-/appkit-wallet-1.7.8.tgz", - "integrity": "sha512-kspz32EwHIOT/eg/ZQbFPxgXq0B/olDOj3YMu7gvLEFz4xyOFd/wgzxxAXkp5LbG4Cp++s/elh79rVNmVFdB9A==", - "requires": { - "@reown/appkit-common": "1.7.8", - "@reown/appkit-polyfills": "1.7.8", - "@walletconnect/logger": "2.1.2", - "zod": "3.22.4" + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" } }, - "@rushstack/eslint-patch": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", - "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==", - "dev": true + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "@safe-global/safe-apps-provider": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-provider/-/safe-apps-provider-0.18.6.tgz", - "integrity": "sha512-4LhMmjPWlIO8TTDC2AwLk44XKXaK6hfBTWyljDm0HQ6TWlOEijVWNrt2s3OCVMSxlXAcEzYfqyu1daHZooTC2Q==", - "requires": { - "@safe-global/safe-apps-sdk": "^9.1.0", - "events": "^3.3.0" + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@safe-global/safe-apps-sdk": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/@safe-global/safe-apps-sdk/-/safe-apps-sdk-9.1.0.tgz", - "integrity": "sha512-N5p/ulfnnA2Pi2M3YeWjULeWbjo7ei22JwU/IXnhoHzKq3pYCN6ynL9mJBOlvDVv892EgLPCWCOwQk/uBT2v0Q==", - "requires": { - "@safe-global/safe-gateway-typescript-sdk": "^3.5.3", - "viem": "^2.1.1" + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "@safe-global/safe-gateway-typescript-sdk": { - "version": "3.23.1", - "resolved": "https://registry.npmjs.org/@safe-global/safe-gateway-typescript-sdk/-/safe-gateway-typescript-sdk-3.23.1.tgz", - "integrity": "sha512-6ORQfwtEJYpalCeVO21L4XXGSdbEMfyp2hEv6cP82afKXSwvse6d3sdelgaPWUxHIsFRkWvHDdzh8IyyKHZKxw==" + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "@scure/base": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz", - "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==" + "node_modules/is-retry-allowed": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-3.0.0.tgz", + "integrity": "sha512-9xH0xvoggby+u0uGF7cZXdrutWiBiaFG8ZT4YFPXL8NzkyAwX3AKGLeFQLvzDpM430+nDFBZ1LHkie/8ocL06A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "@scure/bip32": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.4.0.tgz", - "integrity": "sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg==", - "requires": { - "@noble/curves": "~1.4.0", - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "license": "MIT", "dependencies": { - "@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", - "requires": { - "@noble/hashes": "1.4.0" - } + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-standalone-pwa": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-standalone-pwa/-/is-standalone-pwa-0.1.1.tgz", + "integrity": "sha512-9Cbovsa52vNQCjdXOzeQq5CnCbAcRk05aU62K20WO372NrTv0NxibLFCK6lQ4/iZEFdEA3p3t2VNOn8AJ53F5g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" }, - "@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" }, - "@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==" + { + "type": "paypal", + "url": "https://paypal.me/faisalman" } - } + ], + "license": "MIT" }, - "@scure/bip39": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", - "integrity": "sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==", - "requires": { - "@noble/hashes": "~1.4.0", - "@scure/base": "~1.1.6" + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" }, - "dependencies": { - "@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" - }, - "@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==" - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@socket.io/component-emitter": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", - "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" - }, - "@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "requires": { - "tslib": "^2.8.0" + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@tanstack/query-core": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.45.0.tgz", - "integrity": "sha512-RVfIZQmFUTdjhSAAblvueimfngYyfN6HlwaJUPK71PKd7yi43Vs1S/rdimmZedPWX/WGppcq/U1HOj7O7FwYxw==" - }, - "@tanstack/react-query": { - "version": "5.45.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.45.0.tgz", - "integrity": "sha512-y272cKRJp1BvehrWG4ashOBuqBj1Qm2O6fgYJ9LYSHrLdsCXl74GbSVjUQTReUdHuRIl9cEOoyPa6HYag400lw==", - "requires": { - "@tanstack/query-core": "5.45.0" + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@tweenjs/tween.js": { - "version": "23.1.3", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", - "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - "dev": true - }, - "@types/d3-array": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz", - "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==" - }, - "@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==" - }, - "@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==" - }, - "@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "requires": { - "@types/d3-color": "*" + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@types/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-P2dlU/q51fkOc/Gfl3Ul9kicV7l+ra934qBFXCFhrZMOL6du1TM0pm1ThYvENukyOn5h9v+yMJ9Fn5JK4QozrQ==" + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT", + "optional": true }, - "@types/d3-scale": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.8.tgz", - "integrity": "sha512-gkK1VVTr5iNiYJ7vWDI+yUFFlszhNMtVeneJ6lUTKPjprsvLLI9/tgEGiXJOnlINJA8FyA88gfnQsHbybVZrYQ==", - "requires": { - "@types/d3-time": "*" + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@types/d3-shape": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.6.tgz", - "integrity": "sha512-5KKk5aKGu2I+O6SONMYSNflgiP0WfZIQvVUMan50wHsLG1G94JlxEVnCpQARfTtzytuY0p/9PXXZb3I7giofIA==", - "requires": { - "@types/d3-path": "*" + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@types/d3-time": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.3.tgz", - "integrity": "sha512-2p6olUZ4w3s+07q3Tm2dbiMZy5pCDfYwtLXXHUnVzXgQlZ/OyPtUz6OL382BkOuGlLXqfT+wqv8Fw2v8/0geBw==" - }, - "@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==" - }, - "@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "requires": { - "@types/ms": "*" + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@types/geojson": { - "version": "7946.0.14", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", - "dev": true + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "license": "MIT" }, - "@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "license": "MIT", + "peerDependencies": { + "ws": "*" + } }, - "@types/leaflet": { - "version": "1.9.12", - "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.9.12.tgz", - "integrity": "sha512-BK7XS+NyRI291HIo0HCfE18Lp8oA30H1gpi1tf0mF3TgiCEzanQjOqNZ4x126SXzzi2oNSZhZ5axJp1k0iM6jg==", - "dev": true, - "requires": { - "@types/geojson": "*" + "node_modules/isows": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz", + "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "peerDependencies": { + "ws": "*" } }, - "@types/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==" + "node_modules/it-all": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.9.tgz", + "integrity": "sha512-fz1oJJ36ciGnu2LntAlE6SA97bFZpW7Rnt0uEc1yazzR2nKokZLr8lIRtgnpex4NsmaBcvHF+Z9krljWFy/mmg==", + "license": "Apache-2.0 OR MIT" }, - "@types/ms": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", - "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==" + "node_modules/it-drain": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/it-drain/-/it-drain-3.0.10.tgz", + "integrity": "sha512-0w/bXzudlyKIyD1+rl0xUKTI7k4cshcS43LTlBiGFxI8K1eyLydNPxGcsVLsFVtKh1/ieS8AnVWt6KwmozxyEA==", + "license": "Apache-2.0 OR MIT" }, - "@types/node": { - "version": "20.14.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", - "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", - "dev": true, - "requires": { - "undici-types": "~5.26.4" + "node_modules/it-filter": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/it-filter/-/it-filter-3.1.4.tgz", + "integrity": "sha512-80kWEKgiFEa4fEYD3mwf2uygo1dTQ5Y5midKtL89iXyjinruA/sNXl6iFkTcdNedydjvIsFhWLiqRPQP4fAwWQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-peekable": "^3.0.0" } }, - "@types/parse-json": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" - }, - "@types/prop-types": { - "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" - }, - "@types/react": { - "version": "18.3.3", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", - "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", - "requires": { - "@types/prop-types": "*", - "csstype": "^3.0.2" + "node_modules/it-foreach": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/it-foreach/-/it-foreach-2.1.5.tgz", + "integrity": "sha512-9tIp+NFVODmGV/49JUKVxW3+8RrPkYrmUaXUM4W6lMC5POM/1gegckNjBmDe5xgBa7+RE9HKBmRTAdY5V+bWSQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-peekable": "^3.0.0" } }, - "@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", - "dev": true, - "requires": { - "@types/react": "*" - } + "node_modules/it-length": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/it-length/-/it-length-3.0.9.tgz", + "integrity": "sha512-cPhRPzyulYqyL7x4sX4MOjG/xu3vvEIFAhJ1aCrtrnbfxloCOtejOONib5oC3Bz8tLL6b6ke6+YHu4Bm6HCG7A==", + "license": "Apache-2.0 OR MIT" }, - "@types/react-leaflet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/react-leaflet/-/react-leaflet-3.0.0.tgz", - "integrity": "sha512-p8R9mVKbCDDqOdW+M6GyJJuFn6q+IgDFYavFiOIvaWHuOe5kIHZEtCy1pfM43JIA6JiB3D/aDoby7C51eO+XSg==", - "dev": true, - "requires": { - "react-leaflet": "*" + "node_modules/it-length-prefixed": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/it-length-prefixed/-/it-length-prefixed-10.0.1.tgz", + "integrity": "sha512-BhyluvGps26u9a7eQIpOI1YN7mFgi8lFwmiPi07whewbBARKAG9LE09Odc8s1Wtbt2MB6rNUrl7j9vvfXTJwdQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-reader": "^6.0.1", + "it-stream-types": "^2.0.1", + "uint8-varint": "^2.0.1", + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "@types/react-transition-group": { - "version": "4.4.12", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", - "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", - "requires": {} - }, - "@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, - "@types/stats.js": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", - "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", - "dev": true - }, - "@types/stylis": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz", - "integrity": "sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==" - }, - "@types/three": { - "version": "0.169.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.169.0.tgz", - "integrity": "sha512-oan7qCgJBt03wIaK+4xPWclYRPG9wzcg7Z2f5T8xYTNEF95kh0t0lklxLLYBDo7gQiGLYzE6iF4ta7nXF2bcsw==", - "dev": true, - "requires": { - "@tweenjs/tween.js": "~23.1.3", - "@types/stats.js": "*", - "@types/webxr": "*", - "@webgpu/types": "*", - "fflate": "~0.8.2", - "meshoptimizer": "~0.18.1" + "node_modules/it-length-prefixed/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" } }, - "@types/trusted-types": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", - "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" - }, - "@types/webxr": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.20.tgz", - "integrity": "sha512-JGpU6qiIJQKUuVSKx1GtQnHJGxRjtfGIhzO2ilq43VZZS//f1h1Sgexbdk+Lq+7569a6EYhOWrUpIruR/1Enmg==", - "dev": true + "node_modules/it-map": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-3.1.4.tgz", + "integrity": "sha512-QB9PYQdE9fUfpVFYfSxBIyvKynUCgblb143c+ktTK6ZuKSKkp7iH58uYFzagqcJ5HcqIfn1xbfaralHWam+3fg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-peekable": "^3.0.0" + } }, - "@typescript-eslint/eslint-plugin": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz", - "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==", - "dev": true, - "requires": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/type-utils": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.4", - "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "node_modules/it-merge": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/it-merge/-/it-merge-3.0.12.tgz", + "integrity": "sha512-nnnFSUxKlkZVZD7c0jYw6rDxCcAQYcMsFj27thf7KkDhpj0EA0g9KHPxbFzHuDoc6US2EPS/MtplkNj8sbCx4Q==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-queueless-pushable": "^2.0.0" } }, - "@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "requires": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" + "node_modules/it-merge/node_modules/it-queueless-pushable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/it-queueless-pushable/-/it-queueless-pushable-2.0.3.tgz", + "integrity": "sha512-USa5EzTvmQswOcVE7+o6qsj2o2G+6KHCxSogPOs23sGYkDWFidhqVO7dAvv6ve/Z+Q+nvxpEa9rrRo6VEK7w4Q==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.1", + "p-defer": "^4.0.1", + "race-signal": "^2.0.0" } }, - "@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "node_modules/it-parallel": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/it-parallel/-/it-parallel-3.0.13.tgz", + "integrity": "sha512-85PPJ/O8q97Vj9wmDTSBBXEkattwfQGruXitIzrh0RLPso6RHfiVqkuTqBNufYYtB1x6PSkh0cwvjmMIkFEPHA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "p-defer": "^4.0.1" } }, - "@typescript-eslint/type-utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz", - "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==", - "dev": true, - "requires": { - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/utils": "6.21.0", - "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "node_modules/it-peekable": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-3.0.8.tgz", + "integrity": "sha512-7IDBQKSp/dtBxXV3Fj0v3qM1jftJ9y9XrWLRIuU1X6RdKqWiN60syNwP0fiDxZD97b8SYM58dD3uklIk1TTQAw==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/it-pipe": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/it-pipe/-/it-pipe-3.0.1.tgz", + "integrity": "sha512-sIoNrQl1qSRg2seYSBH/3QxWhJFn9PKYvOf/bHdtCBF0bnghey44VyASsWzn5dAx0DCDDABq1hZIuzKmtBZmKA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-merge": "^3.0.0", + "it-pushable": "^3.1.2", + "it-stream-types": "^2.0.1" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true + "node_modules/it-pushable": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/it-pushable/-/it-pushable-3.2.3.tgz", + "integrity": "sha512-gzYnXYK8Y5t5b/BnJUr7glfQLO4U5vyb05gPx/TyTw+4Bv1zM9gFk4YsOrnulWefMewlphCjKkakFvj1y99Tcg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "p-defer": "^4.0.0" + } }, - "@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, + "node_modules/it-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/it-queue/-/it-queue-1.1.1.tgz", + "integrity": "sha512-yeYCV22WF1QDyb3ylw+g3TGEdkmnoHUH2mc12QoGOQuxW4XP1V7Zd3BfsEF1iq2IFBwIK7wCPUcRLTAQVeZ3SQ==", + "license": "Apache-2.0 OR MIT", "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "abort-error": "^1.0.1", + "it-pushable": "^3.2.3", + "main-event": "^1.0.0", + "race-event": "^1.3.0", + "race-signal": "^2.0.0" } }, - "@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "node_modules/it-reader": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-6.0.4.tgz", + "integrity": "sha512-XCWifEcNFFjjBHtor4Sfaj8rcpt+FkY0L6WdhD578SCDhV4VUm7fCkF3dv5a+fTcfQqvN9BsxBTvWbYO6iCjTg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-stream-types": "^2.0.1", + "uint8arraylist": "^2.0.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "requires": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "node_modules/it-sort": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/it-sort/-/it-sort-3.0.9.tgz", + "integrity": "sha512-jsM6alGaPiQbcAJdzMsuMh00uJcI+kD9TBoScB8TR75zUFOmHvhSsPi+Dmh2zfVkcoca+14EbfeIZZXTUGH63w==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "it-all": "^3.0.0" } }, - "@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "@vanilla-extract/css": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.14.0.tgz", - "integrity": "sha512-rYfm7JciWZ8PFzBM/HDiE2GLnKI3xJ6/vdmVJ5BSgcCZ5CxRlM9Cjqclni9lGzF3eMOijnUhCd/KV8TOzyzbMA==", - "requires": { - "@emotion/hash": "^0.9.0", - "@vanilla-extract/private": "^1.0.3", - "chalk": "^4.1.1", - "css-what": "^6.1.0", - "cssesc": "^3.0.0", - "csstype": "^3.0.7", - "deep-object-diff": "^1.1.9", - "deepmerge": "^4.2.2", - "media-query-parser": "^2.0.2", - "modern-ahocorasick": "^1.0.0", - "outdent": "^0.8.0" + "node_modules/it-stream-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/it-stream-types/-/it-stream-types-2.0.2.tgz", + "integrity": "sha512-Rz/DEZ6Byn/r9+/SBCuJhpPATDF9D+dz5pbgSUyBsCDtza6wtNATrz/jz1gDyNanC3XdLboriHnOC925bZRBww==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/it-take": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/it-take/-/it-take-3.0.9.tgz", + "integrity": "sha512-XMeUbnjOcgrhFXPUqa7H0VIjYSV/BvyxxjCp76QHVAFDJw2LmR1SHxUFiqyGeobgzJr7P2ZwSRRJQGn4D2BVlA==", + "license": "Apache-2.0 OR MIT" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "@vanilla-extract/dynamic": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@vanilla-extract/dynamic/-/dynamic-2.1.0.tgz", - "integrity": "sha512-8zl0IgBYRtgD1h+56Zu13wHTiMTJSVEa4F7RWX9vTB/5Xe2KtjoiqApy/szHPVFA56c+ex6A4GpCQjT1bKXbYw==", - "requires": { - "@vanilla-extract/private": "^1.0.3" + "node_modules/jayson": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.3.0.tgz", + "integrity": "sha512-AauzHcUcqs8OBnCHOkJY280VaTiCm57AbuO7lqzcw7JapGj50BisE3xhksye4zlTSR1+1tAz67wLTl8tEH1obQ==", + "license": "MIT", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "stream-json": "^1.9.1", + "uuid": "^8.3.2", + "ws": "^7.5.10" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" } }, - "@vanilla-extract/private": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz", - "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==" + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "license": "MIT" }, - "@vanilla-extract/sprinkles": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@vanilla-extract/sprinkles/-/sprinkles-1.6.1.tgz", - "integrity": "sha512-N/RGKwGAAidBupZ436RpuweRQHEFGU+mvAqBo8PRMAjJEmHoPDttV8RObaMLrJHWLqvX+XUMinHUnD0hFRQISw==", - "requires": {} - }, - "@wagmi/connectors": { - "version": "5.9.9", - "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-5.9.9.tgz", - "integrity": "sha512-6+eqU7P2OtxU2PkIw6kHojfYYUJykYG2K5rSkzVh29RDCAjhJqGEZW5f1b8kV5rUBORip1NpST8QTBNi96JHGQ==", - "requires": { - "@base-org/account": "1.1.1", - "@coinbase/wallet-sdk": "4.3.6", - "@gemini-wallet/core": "0.2.0", - "@metamask/sdk": "0.32.0", - "@safe-global/safe-apps-provider": "0.18.6", - "@safe-global/safe-apps-sdk": "9.1.0", - "@walletconnect/ethereum-provider": "2.21.1", - "cbw-sdk": "npm:@coinbase/wallet-sdk@3.9.3" + "node_modules/jayson/node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "@wagmi/core": { + "node_modules/jayson/node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.20.3.tgz", - "integrity": "sha512-gsbuHnWxf0AYZISvR8LvF/vUCIq6/ZwT5f5/FKd6wLA7Wq05NihCvmQpIgrcVbpSJPL67wb6S8fXm3eJGJA1vQ==", - "requires": { - "eventemitter3": "5.0.1", - "mipd": "0.0.7", - "zustand": "5.0.0" + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" + }, + "node_modules/jayson/node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "license": "MIT", + "engines": { + "node": ">=10" }, - "dependencies": { - "zustand": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz", - "integrity": "sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==", - "requires": {} - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@walletconnect/core": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.21.1.tgz", - "integrity": "sha512-Tp4MHJYcdWD846PH//2r+Mu4wz1/ZU/fr9av1UWFiaYQ2t2TPLDiZxjLw54AAEpMqlEHemwCgiRiAmjR1NDdTQ==", - "requires": { - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.16", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.1", - "@walletconnect/utils": "2.21.1", - "@walletconnect/window-getters": "1.0.1", - "es-toolkit": "1.33.0", - "events": "3.3.0", - "uint8arrays": "3.1.0" + "node_modules/jayson/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/jayson/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" }, - "dependencies": { - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } + "utf-8-validate": { + "optional": true } } }, - "@walletconnect/environment": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.1.tgz", - "integrity": "sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==", - "requires": { - "tslib": "1.14.1" + "node_modules/js-base64": { + "version": "3.7.8", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.8.tgz", + "integrity": "sha512-hNngCeKxIUQiEUN3GPJOkz4wF/YvdUdbNL9hsBcMQTkKzboD7T/q3OYOuuPZLUE6dBxSGpwhk5mwuDud7JVAow==", + "license": "BSD-3-Clause" + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==", + "license": "MIT", + "optional": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbi": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-3.2.5.tgz", + "integrity": "sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ==", + "license": "Apache-2.0" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-edit-react": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/json-edit-react/-/json-edit-react-1.29.0.tgz", + "integrity": "sha512-qxho/m0w6GCaKLic6XsZgmCrKKwluMvoy92teRBRus1PRHJQiP4pkFQJ90lmrno1KNgSePYIG0mcscS0GjdH3A==", + "license": "MIT", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "object-property-assigner": "^1.3.5", + "object-property-extractor": "^1.0.13" + }, + "peerDependencies": { + "react": ">=16.0.0" } }, - "@walletconnect/ethereum-provider": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/ethereum-provider/-/ethereum-provider-2.21.1.tgz", - "integrity": "sha512-SSlIG6QEVxClgl1s0LMk4xr2wg4eT3Zn/Hb81IocyqNSGfXpjtawWxKxiC5/9Z95f1INyBD6MctJbL/R1oBwIw==", - "requires": { - "@reown/appkit": "1.7.8", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/sign-client": "2.21.1", - "@walletconnect/types": "2.21.1", - "@walletconnect/universal-provider": "2.21.1", - "@walletconnect/utils": "2.21.1", - "events": "3.3.0" + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-rpc-engine": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", + "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", + "license": "ISC", + "dependencies": { + "@metamask/safe-event-emitter": "^2.0.0", + "eth-rpc-errors": "^4.0.2" }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/json-rpc-engine/node_modules/@metamask/safe-event-emitter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", + "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==", + "license": "ISC" + }, + "node_modules/json-rpc-random-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", + "license": "ISC" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.3.0.tgz", + "integrity": "sha512-qtYiSSFlwot9XHtF9bD9c7rwKjr+RecWT//ZnPvSmEjpV5mmPOCN4j8UjY5hbjNkOwZ/jQv3J6R1/pL7RwgMsg==", + "license": "MIT", "dependencies": { - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } - }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } - } + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "isarray": "^2.0.5", + "jsonify": "^0.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@walletconnect/events": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/events/-/events-1.0.1.tgz", - "integrity": "sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==", - "requires": { - "keyvaluestorage-interface": "^1.0.0", - "tslib": "1.14.1" + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "engines": { + "node": ">=6" } }, - "@walletconnect/heartbeat": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz", - "integrity": "sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw==", - "requires": { - "@walletconnect/events": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "events": "^3.3.0" + "node_modules/jsonify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz", + "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==", + "license": "Public Domain", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "@walletconnect/jsonrpc-http-connection": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-http-connection/-/jsonrpc-http-connection-1.0.8.tgz", - "integrity": "sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw==", - "requires": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.1", - "cross-fetch": "^3.1.4", - "events": "^3.3.0" + "node_modules/jsonld": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-9.0.0.tgz", + "integrity": "sha512-pjMIdkXfC1T2wrX9B9i2uXhGdyCmgec3qgMht+TDj+S0qX3bjWMQUfL7NeqEhuRTi8G5ESzmL9uGlST7nzSEWg==", + "license": "BSD-3-Clause", + "dependencies": { + "@digitalbazaar/http-client": "^4.2.0", + "canonicalize": "^2.1.0", + "lru-cache": "^6.0.0", + "rdf-canonize": "^5.0.0" }, + "engines": { + "node": ">=18" + } + }, + "node_modules/jsonld-context-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonld-context-parser/-/jsonld-context-parser-3.0.0.tgz", + "integrity": "sha512-Kg6TVtBUdIm057ht/8WNhM9BROt+BeYaDGXbzrKaa3xA99csee+CsD8IMCTizRgzoO8PIzvzcxxCoRvpq1xNQw==", + "license": "MIT", "dependencies": { - "cross-fetch": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", - "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", - "requires": { - "node-fetch": "^2.7.0" - } - } + "@types/http-link-header": "^1.0.1", + "@types/node": "^18.0.0", + "http-link-header": "^1.0.2", + "relative-to-absolute-iri": "^1.0.5" + }, + "bin": { + "jsonld-context-parse": "bin/jsonld-context-parse.js" } }, - "@walletconnect/jsonrpc-provider": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz", - "integrity": "sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow==", - "requires": { - "@walletconnect/jsonrpc-utils": "^1.0.8", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0" + "node_modules/jsonld-context-parser/node_modules/@types/node": { + "version": "18.19.130", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.130.tgz", + "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" } }, - "@walletconnect/jsonrpc-types": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz", - "integrity": "sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ==", - "requires": { - "events": "^3.3.0", - "keyvaluestorage-interface": "^1.0.0" + "node_modules/jsonld-context-parser/node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "license": "MIT" + }, + "node_modules/jsonld-streaming-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonld-streaming-parser/-/jsonld-streaming-parser-5.0.0.tgz", + "integrity": "sha512-Q6Bfbmig8fFpIbJgJTi4LLzco9dz0YuBM/mDvUYXzP8L/+me6P3pRy4exrhCpv49Bwv2oQFFIHM7wIwCKma2XA==", + "license": "MIT", + "dependencies": { + "@bergos/jsonparse": "^1.4.0", + "@types/http-link-header": "^1.0.1", + "@types/readable-stream": "^4.0.0", + "buffer": "^6.0.3", + "canonicalize": "^1.0.1", + "http-link-header": "^1.0.2", + "jsonld-context-parser": "^3.0.0", + "rdf-data-factory": "^2.0.0", + "readable-stream": "^4.0.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/rubensworks/" } }, - "@walletconnect/jsonrpc-utils": { + "node_modules/jsonld-streaming-parser/node_modules/canonicalize": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz", - "integrity": "sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==", - "requires": { - "@walletconnect/environment": "^1.0.1", - "@walletconnect/jsonrpc-types": "^1.0.3", - "tslib": "1.14.1" - }, + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz", + "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A==", + "license": "Apache-2.0" + }, + "node_modules/jsonld/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", - "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", - "requires": { - "@walletconnect/jsonrpc-utils": "^1.0.6", - "@walletconnect/safe-json": "^1.0.2", - "events": "^3.3.0", - "ws": "^7.5.1" - }, + "node_modules/jsonld/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", "dependencies": { - "ws": { - "version": "7.5.10", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", - "requires": {} - } + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" } }, - "@walletconnect/logger": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@walletconnect/logger/-/logger-2.1.2.tgz", - "integrity": "sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw==", - "requires": { - "@walletconnect/safe-json": "^1.0.2", - "pino": "7.11.0" - } + "node_modules/jsqr": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz", + "integrity": "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==", + "license": "Apache-2.0" }, - "@walletconnect/relay-api": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-api/-/relay-api-1.0.11.tgz", - "integrity": "sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q==", - "requires": { - "@walletconnect/jsonrpc-types": "^1.0.2" + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" } }, - "@walletconnect/relay-auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@walletconnect/relay-auth/-/relay-auth-1.1.0.tgz", - "integrity": "sha512-qFw+a9uRz26jRCDgL7Q5TA9qYIgcNY8jpJzI1zAWNZ8i7mQjaijRnWFKsCHAU9CyGjvt6RKrRXyFtFOpWTVmCQ==", - "requires": { - "@noble/curves": "1.8.0", - "@noble/hashes": "1.7.0", - "@walletconnect/safe-json": "^1.0.1", - "@walletconnect/time": "^1.0.2", - "uint8arrays": "^3.0.0" - }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "license": "(MIT OR GPL-3.0-or-later)", "dependencies": { - "@noble/curves": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.0.tgz", - "integrity": "sha512-j84kjAbzEnQHaSIhRPUmB3/eVXu2k3dKPl2LOrR8fSOIL+89U+7lV117EWHtq/GHM3ReGHM46iRBdZfpc4HRUQ==", - "requires": { - "@noble/hashes": "1.7.0" - } - }, - "@noble/hashes": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.0.tgz", - "integrity": "sha512-HXydb0DgzTpDPwbVeDGCG1gIu7X6+AuU6Zl6av/E/KG8LMsvPntvq+w17CHRpKBmN6Ybdrt1eP3k4cj8DJa78w==" - } + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" } }, - "@walletconnect/safe-json": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.2.tgz", - "integrity": "sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==", - "requires": { - "tslib": "1.14.1" - }, + "node_modules/jszip/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "@walletconnect/sign-client": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.21.1.tgz", - "integrity": "sha512-QaXzmPsMnKGV6tc4UcdnQVNOz4zyXgarvdIQibJ4L3EmLat73r5ZVl4c0cCOcoaV7rgM9Wbphgu5E/7jNcd3Zg==", - "requires": { - "@walletconnect/core": "2.21.1", - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/logger": "2.1.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.1", - "@walletconnect/utils": "2.21.1", - "events": "3.3.0" - } + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "@walletconnect/time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", - "integrity": "sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==", - "requires": { - "tslib": "1.14.1" - }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "safe-buffer": "~5.1.0" } }, - "@walletconnect/types": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.21.1.tgz", - "integrity": "sha512-UeefNadqP6IyfwWC1Yi7ux+ljbP2R66PLfDrDm8izmvlPmYlqRerJWJvYO4t0Vvr9wrG4Ko7E0c4M7FaPKT/sQ==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/heartbeat": "1.2.2", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "events": "3.3.0" - }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", "dependencies": { - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } - }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } - } + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" } }, - "@walletconnect/universal-provider": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/universal-provider/-/universal-provider-2.21.1.tgz", - "integrity": "sha512-Wjx9G8gUHVMnYfxtasC9poGm8QMiPCpXpbbLFT+iPoQskDDly8BwueWnqKs4Mx2SdIAWAwuXeZ5ojk5qQOxJJg==", - "requires": { - "@walletconnect/events": "1.0.1", - "@walletconnect/jsonrpc-http-connection": "1.0.8", - "@walletconnect/jsonrpc-provider": "1.0.14", - "@walletconnect/jsonrpc-types": "1.0.4", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/logger": "2.1.2", - "@walletconnect/sign-client": "2.21.1", - "@walletconnect/types": "2.21.1", - "@walletconnect/utils": "2.21.1", - "es-toolkit": "1.33.0", - "events": "3.3.0" - }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", "dependencies": { - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } - }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } - } + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "@walletconnect/utils": { - "version": "2.21.1", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.21.1.tgz", - "integrity": "sha512-VPZvTcrNQCkbGOjFRbC24mm/pzbRMUq2DSQoiHlhh0X1U7ZhuIrzVtAoKsrzu6rqjz0EEtGxCr3K1TGRqDG4NA==", - "requires": { - "@noble/ciphers": "1.2.1", - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/keyvaluestorage": "1.1.1", - "@walletconnect/relay-api": "1.0.11", - "@walletconnect/relay-auth": "1.1.0", - "@walletconnect/safe-json": "1.0.2", - "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.21.1", - "@walletconnect/window-getters": "1.0.1", - "@walletconnect/window-metadata": "1.0.1", - "bs58": "6.0.0", - "detect-browser": "5.3.0", - "query-string": "7.1.3", - "uint8arrays": "3.1.0", - "viem": "2.23.2" - }, - "dependencies": { - "@noble/curves": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz", - "integrity": "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ==", - "requires": { - "@noble/hashes": "1.7.1" - } - }, - "@noble/hashes": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.1.tgz", - "integrity": "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ==" - }, - "@scure/bip32": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.6.2.tgz", - "integrity": "sha512-t96EPDMbtGgtb7onKKqxRLfE5g05k7uHnHRM2xdE6BP/ZmxaLtPek4J4KfVn/90IQNrU1IOAqMgiDtUdtbe3nw==", - "requires": { - "@noble/curves": "~1.8.1", - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.2" - } - }, - "@scure/bip39": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.5.4.tgz", - "integrity": "sha512-TFM4ni0vKvCfBpohoh+/lY05i9gRbSwXWngAsF4CABQxoaOHijxuaZ2R6cStDQ5CHtHO9aGJTr4ksVJASRRyMA==", - "requires": { - "@noble/hashes": "~1.7.1", - "@scure/base": "~1.2.4" - } - }, - "@walletconnect/keyvaluestorage": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz", - "integrity": "sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA==", - "requires": { - "@walletconnect/safe-json": "^1.0.1", - "idb-keyval": "^6.2.1", - "unstorage": "^1.9.0" - } - }, - "abitype": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", - "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", - "requires": {} - }, - "isows": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.6.tgz", - "integrity": "sha512-lPHCayd40oW98/I0uvgaHKWCSvkzY27LjWLbtzOm64yQ+G3Q5npjjbdppU65iZXkK1Zt+kH9pfegli0AYfwYYw==", - "requires": {} - }, - "ox": { - "version": "0.6.7", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.7.tgz", - "integrity": "sha512-17Gk/eFsFRAZ80p5eKqv89a57uXjd3NgIf1CaXojATPBuujVc/fQSVhBeAU9JCRB+k7J50WQAyWTxK19T9GgbA==", - "requires": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - } - }, - "unstorage": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.1.tgz", - "integrity": "sha512-KKGwRTT0iVBCErKemkJCLs7JdxNVfqTPc/85ae1XES0+bsHbc/sFBfVi5kJp156cc51BHinIH2l3k0EZ24vOBQ==", - "requires": { - "anymatch": "^3.1.3", - "chokidar": "^4.0.3", - "destr": "^2.0.5", - "h3": "^1.15.4", - "lru-cache": "^10.4.3", - "node-fetch-native": "^1.6.7", - "ofetch": "^1.4.1", - "ufo": "^1.6.1" - } - }, - "viem": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.23.2.tgz", - "integrity": "sha512-NVmW/E0c5crMOtbEAqMF0e3NmvQykFXhLOc/CkLIXOlzHSA6KXVz3CYVmaKqBF8/xtjsjHAGjdJN3Ru1kFJLaA==", - "requires": { - "@noble/curves": "1.8.1", - "@noble/hashes": "1.7.1", - "@scure/bip32": "1.6.2", - "@scure/bip39": "1.5.4", - "abitype": "1.0.8", - "isows": "1.0.6", - "ox": "0.6.7", - "ws": "8.18.0" - } - }, - "ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "requires": {} - } + "node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" } }, - "@walletconnect/window-getters": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", - "integrity": "sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==", - "requires": { - "tslib": "1.14.1" - }, + "node_modules/keccak": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", + "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", + "hasInstallScript": true, + "license": "MIT", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "@walletconnect/window-metadata": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz", - "integrity": "sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==", - "requires": { - "@walletconnect/window-getters": "^1.0.1", - "tslib": "1.14.1" + "node_modules/keccak/node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "license": "MIT" + }, + "node_modules/keccak/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } + "json-buffer": "3.0.1" } }, - "@webgpu/types": { - "version": "0.1.49", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.49.tgz", - "integrity": "sha512-NMmS8/DofhH/IFeW+876XrHVWel+J/vdcFCHLDqeJgkH9x0DeiwjVd8LcBdaxdG/T7Rf8VUAYsA8X1efMzLjRQ==", - "dev": true + "node_modules/keyvaluestorage-interface": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", + "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==", + "license": "MIT" }, - "abitype": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz", - "integrity": "sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==", - "requires": {} - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "node_modules/ky": { + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/ky/-/ky-1.14.2.tgz", + "integrity": "sha512-q3RBbsO5A5zrPhB6CaCS8ZUv+NWCXv6JJT4Em0i264G9W0fdPB8YRfnnEi7Dm7X7omAkBIPojzYJ2D1oHTHqug==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/ky?sponsor=1" + } }, - "aes-js": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", - "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==" + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "anymatch": { + "node_modules/libp2p": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-3.1.3.tgz", + "integrity": "sha512-Jgl6Km1PfFTKR7krDNDxuuxQ6ya3D6VHFOi/XYJA539F62PmbxOQLd+nqbqozwB9BgJVTxaXRVmGTKo7dyrdQw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.1.0", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.1.13", + "@libp2p/interface": "^3.1.0", + "@libp2p/interface-internal": "^3.0.10", + "@libp2p/logger": "^6.2.2", + "@libp2p/multistream-select": "^7.0.10", + "@libp2p/peer-collections": "^7.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/peer-store": "^12.0.10", + "@libp2p/utils": "^7.0.10", + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "@multiformats/multiaddr-matcher": "^3.0.1", + "any-signal": "^4.1.1", + "datastore-core": "^11.0.1", + "interface-datastore": "^9.0.1", + "it-merge": "^3.0.12", + "it-parallel": "^3.0.13", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "p-defer": "^4.0.1", + "p-event": "^7.0.0", + "p-retry": "^7.0.0", + "progress-events": "^1.0.1", + "race-signal": "^2.0.0", + "uint8arrays": "^5.1.0" + } + }, + "node_modules/libp2p/node_modules/@libp2p/interface": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz", + "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@multiformats/dns": "^1.0.6", + "@multiformats/multiaddr": "^13.0.1", + "main-event": "^1.0.1", + "multiformats": "^13.4.0", + "progress-events": "^1.0.1", + "uint8arraylist": "^2.4.8" } }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "aria-query": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", - "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", - "dev": true, - "requires": { - "dequal": "^2.0.3" + "node_modules/libp2p/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" } }, - "array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "node_modules/libp2p/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" } }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" }, - "array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "node_modules/lit": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz", + "integrity": "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.1.0", + "lit-element": "^4.2.0", + "lit-html": "^3.3.0" } }, - "array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" + "node_modules/lit-element": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.2.tgz", + "integrity": "sha512-aFKhNToWxoyhkNDmWZwEva2SlQia+jfG0fjIWV//YeTaWrVnOxD89dPKfigCUspXFmjzOEUQpOkejH5Ly6sG0w==", + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-dom-shim": "^1.5.0", + "@lit/reactive-element": "^2.1.0", + "lit-html": "^3.3.0" } }, - "array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "node_modules/lit-html": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.2.tgz", + "integrity": "sha512-Qy9hU88zcmaxBXcc10ZpdK7cOLXvXpRoBxERdtqV9QOrfpMZZ6pSYP91LhpPtap3sFMUiL7Tw2RImbe0Al2/kw==", + "license": "BSD-3-Clause", + "dependencies": { + "@types/trusted-types": "^2.0.2" } }, - "array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "array.prototype.toreversed": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", - "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" - } + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "license": "MIT" }, - "array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - } + "node_modules/lodash-es": { + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.22.tgz", + "integrity": "sha512-XEawp1t0gxSi9x01glktRZ5HDy0HXqrM0x5pXQM98EaI0NxO6jVM7omDOxsuEo5UIASAnm2bRp1Jt/e0a2XU8Q==", + "license": "MIT" }, - "arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" - } + "license": "MIT" }, - "ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" }, - "async-mutex": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.2.6.tgz", - "integrity": "sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw==", - "requires": { - "tslib": "^2.0.0" - } + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", + "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.", + "license": "MIT" }, - "atomic-sleep": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", - "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" }, - "available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "requires": { - "possible-typed-array-names": "^1.0.0" + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" } }, - "axe-core": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", - "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", - "dev": true + "node_modules/long": { + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.5.tgz", + "integrity": "sha512-e0r9YBBgNCq1D1o5Dp8FMH0N5hsFtXDBiVa0qoJPHpakvZkmDKPRoGffZJII/XsHvj9An9blm+cRJ01yQqU+Dw==", + "license": "Apache-2.0" }, - "axios": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.8.2.tgz", - "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==", - "requires": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "axobject-query": { + "node_modules/loupe": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", - "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", + "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==", + "license": "MIT" + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, - "requires": { - "dequal": "^2.0.3" + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" } }, - "babel-plugin-macros": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", - "requires": { - "@babel/runtime": "^7.12.5", - "cosmiconfig": "^7.0.0", - "resolve": "^1.19.0" + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" } }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-5.0.1.tgz", - "integrity": "sha512-M7uio8Zt++eg3jPj+rHMfCC+IuygQHHCOU+IYsVtik6FWjuYpVt/+MRKcgsAMHh8mMFAwnB+Bs+mTrFiXjMzKg==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "big-integer": { - "version": "1.6.52", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.52.tgz", - "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==" - }, - "big.js": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.2.tgz", - "integrity": "sha512-y/ie+Faknx7sZA5MfGA2xKlu0GDv8RWrXGsmlteyJQ2lvoKv9GBK/fpRMc2qlSoBAgNxrixICFCBefIq8WCQpQ==" + "node_modules/main-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/main-event/-/main-event-1.0.1.tgz", + "integrity": "sha512-NWtdGrAca/69fm6DIVd8T9rtfDII4Q8NQbIbsKQq2VzS9eqOGYs8uaNQjcuaCq/d9H/o625aOTJX2Qoxzqw0Pw==", + "license": "Apache-2.0 OR MIT" }, - "bn.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", - "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==" - }, - "body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" } }, - "bowser": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.12.1.tgz", - "integrity": "sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "dev": true, - "requires": { - "fill-range": "^7.1.1" - } + "license": "CC0-1.0" }, - "broadcast-channel": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/broadcast-channel/-/broadcast-channel-3.7.0.tgz", - "integrity": "sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==", - "requires": { - "@babel/runtime": "^7.7.2", - "detect-node": "^2.1.0", - "js-sha3": "0.8.0", - "microseconds": "0.2.0", - "nano-time": "1.0.0", - "oblivious-set": "1.0.0", - "rimraf": "3.0.2", - "unload": "2.2.0" + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" } }, - "bs58": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-6.0.0.tgz", - "integrity": "sha512-PD0wEnEYg6ijszw/u8s+iI3H17cTymlrwkKhDhPZq+Sokl3AU4htyBFTjAeNAlCCmg0f53g6ih3jATyCKftTfw==", - "requires": { - "base-x": "^5.0.0" + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } + "node_modules/micro-ftch": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", + "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==", + "license": "MIT" }, - "bufferutil": { + "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "builtins": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", - "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "requires": { - "semver": "^7.0.0" + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "requires": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "license": "MIT", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - } + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "requires": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" } }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } }, - "camelize": { + "node_modules/minimalistic-assert": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", - "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==" + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "license": "ISC" }, - "caniuse-lite": { - "version": "1.0.30001632", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", - "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==" + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "license": "MIT" }, - "cbw-sdk": { - "version": "npm:@coinbase/wallet-sdk@3.9.3", - "resolved": "https://registry.npmjs.org/@coinbase/wallet-sdk/-/wallet-sdk-3.9.3.tgz", - "integrity": "sha512-N/A2DRIf0Y3PHc1XAMvbBUu4zisna6qAdqABMZwBMNEfWrXpAwx16pZGkYCLGE+Rvv1edbcB2LYDRnACNcmCiw==", - "requires": { - "bn.js": "^5.2.1", - "buffer": "^6.0.3", - "clsx": "^1.2.1", - "eth-block-tracker": "^7.1.0", - "eth-json-rpc-filters": "^6.0.0", - "eventemitter3": "^5.0.1", - "keccak": "^3.0.3", - "preact": "^10.16.0", - "sha.js": "^2.4.11" - }, + "node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "license": "ISC", "dependencies": { - "clsx": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", - "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" - } - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "requires": { - "readdirp": "^4.0.1" + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "classnames": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", - "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==" - }, - "client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" - }, - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "node_modules/mipd": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz", + "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wagmi-dev" + } + ], + "license": "MIT", + "peerDependencies": { + "typescript": ">=5.0.4" }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" + "node_modules/mortice": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/mortice/-/mortice-3.3.1.tgz", + "integrity": "sha512-t3oESfijIPGsmsdLEKjF+grHfrbnKSXflJtgb1wY14cjxZpS6GnhHRXTxxzCAoCCnq1YYfpEPwY3gjiCPhOufQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.0", + "it-queue": "^1.1.0", + "main-event": "^1.0.0" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "license": "MIT", + "engines": { + "node": ">=10" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "node_modules/multiformats": { + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", + "license": "Apache-2.0 OR MIT" }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" + "node_modules/myetherwallet-blockies": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/myetherwallet-blockies/-/myetherwallet-blockies-0.1.1.tgz", + "integrity": "sha512-2UPR88/+L7rTVLqTM1Fu3Er9+m6XLMGaanP5wyq5+dGyv9TFbB5ohXRJA0jeYf+30gtlOlhlvzAWtwB6BiHWxQ==", + "license": "WTFPL" + }, + "node_modules/n3": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/n3/-/n3-1.26.0.tgz", + "integrity": "sha512-SQknS0ua90rN+3RHuk8BeIqeYyqIH/+ecViZxX08jR4j6MugqWRjtONl3uANG/crWXnOM2WIqBJtjIhVYFha+w==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">=12.0" } }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + "node_modules/nan": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.24.0.tgz", + "integrity": "sha512-Vpf9qnVW1RaDkoNKFUvfxqAbtI8ncb8OJlqZ9wwpXzWPEsvsB1nvdUi6oYrHIkQ1Y/tMDnr1h4nczS0VB9Xykg==", + "license": "MIT" }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } }, - "cookie-es": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", - "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==" + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } }, - "core-util-is": { + "node_modules/new-date": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "resolved": "https://registry.npmjs.org/new-date/-/new-date-1.0.3.tgz", + "integrity": "sha512-0fsVvQPbo2I18DT2zVHpezmeeNYV2JaJSrseiHLc17GNOxJzUdx5mvSigPu8LtIfZSij5i1wXnXFspEs2CD6hA==", + "license": "SEE LICENSE IN LICENSE", + "dependencies": { + "@segment/isodate": "1.0.3" } }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" - }, - "cross-fetch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", - "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", - "requires": { - "node-fetch": "^2.7.0" + "node_modules/next": { + "version": "15.5.9", + "resolved": "https://registry.npmjs.org/next/-/next-15.5.9.tgz", + "integrity": "sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==", + "license": "MIT", + "dependencies": { + "@next/env": "15.5.9", + "@swc/helpers": "0.5.15", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "15.5.7", + "@next/swc-darwin-x64": "15.5.7", + "@next/swc-linux-arm64-gnu": "15.5.7", + "@next/swc-linux-arm64-musl": "15.5.7", + "@next/swc-linux-x64-gnu": "15.5.7", + "@next/swc-linux-x64-musl": "15.5.7", + "@next/swc-win32-arm64-msvc": "15.5.7", + "@next/swc-win32-x64-msvc": "15.5.7", + "sharp": "^0.34.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + } } }, - "cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "license": "ISC", + "optional": true + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "crossws": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.5.tgz", - "integrity": "sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==", - "requires": { - "uncrypto": "^0.1.3" - } + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "license": "MIT" }, - "css-color-keywords": { + "node_modules/node-domexception": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", - "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==" - }, - "css-to-react-native": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", - "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", - "requires": { - "camelize": "^1.0.0", - "css-color-keywords": "^1.0.0", - "postcss-value-parser": "^4.0.2" + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" } }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } }, - "csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" }, - "d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "requires": { - "internmap": "1 - 2" + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" } }, - "d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==" + "node_modules/node-mock-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.4.tgz", + "integrity": "sha512-8DY+kFsDkNXy1sJglUfuODx1/opAGJGyrTuFqEoN90oRc2Vk0ZbD4K2qmKXBBEhZQzdKHIVfEJpDU8Ak2NJEvQ==", + "license": "MIT" }, - "d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==" + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" }, - "d3-format": { + "node_modules/nodeify-fetch": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz", - "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==" - }, - "d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "requires": { - "d3-color": "1 - 3" + "resolved": "https://registry.npmjs.org/nodeify-fetch/-/nodeify-fetch-3.1.0.tgz", + "integrity": "sha512-ZV81vM//sEgTgXwVZlOONzcOCdTGQ53mV65FVSNXgPQHa8oCwRLtLbnGxL/1S/Yw90bcXUDKMz00jEnaeazo+A==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21", + "node-fetch": "^3.2.10", + "readable-stream": "^4.2.0", + "stream-chunks": "^1.0.0" } }, - "d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==" - }, - "d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "requires": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" + "node_modules/nodeify-fetch/node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "license": "MIT", + "engines": { + "node": ">= 12" } }, - "d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "requires": { - "d3-path": "^3.1.0" + "node_modules/nodeify-fetch/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, - "d3-time": { + "node_modules/nofilter": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "requires": { - "d3-array": "2 - 3" + "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-3.1.0.tgz", + "integrity": "sha512-l2NNj07e9afPnhAhvgVrCD/oy2Ai1yfLpuo3EpiO1jFTsB4sFz6oIfAfSZyQzVpkZQ9xS8ZS5g1jCBgq4Hwo0g==", + "license": "MIT", + "engines": { + "node": ">=12.19" } }, - "d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "requires": { - "d3-time": "1 - 3" + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==" - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize.css/-/normalize.css-8.0.1.tgz", + "integrity": "sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==", + "license": "MIT" }, - "data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "node_modules/obj-case": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/obj-case/-/obj-case-0.2.1.tgz", + "integrity": "sha512-PquYBBTy+Y6Ob/O2574XHhDtHJlV1cJHMCgW+rDRc9J5hhmRelJB3k5dTK/3cVmFVtzvAKuENeuLpoyTzMzkOg==", + "license": "MIT" + }, + "node_modules/obj-multiplex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/obj-multiplex/-/obj-multiplex-1.0.0.tgz", + "integrity": "sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==", + "license": "ISC", + "dependencies": { + "end-of-stream": "^1.4.0", + "once": "^1.4.0", + "readable-stream": "^2.3.3" } }, - "data-view-byte-offset": { + "node_modules/obj-multiplex/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/obj-multiplex/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "requires": { - "@babel/runtime": "^7.21.0" + "node_modules/obj-multiplex/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/obj-multiplex/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "date-fns-jalali": { - "version": "4.0.0-0", - "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.0.0-0.tgz", - "integrity": "sha512-EczB+gWceuWCRlacE4T+WmdP+BV/IUQpjQW9aBa9DNcXkKuZFv3WBDqeP2Ew+6YFBtPRRcH5U22+C6gcpwgG8A==", - "optional": true, - "peer": true + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, - "dayjs": { - "version": "1.11.13", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", - "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==" + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "requires": { - "ms": "2.1.2" + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==" + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==" + "node_modules/object-property-assigner": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/object-property-assigner/-/object-property-assigner-1.3.5.tgz", + "integrity": "sha512-DIzHzNSTnpoG8QPQCDNrHa6O3vLMhktK3Igirqpk523UYIVe8JNCKcn5C9WyLQxJc58EGsAIiiEu10gqPrud8w==", + "license": "MIT" }, - "decode-uri-component": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + "node_modules/object-property-extractor": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/object-property-extractor/-/object-property-extractor-1.0.13.tgz", + "integrity": "sha512-9kgEjTWDhTPuPn7nyof+5mLmCKBPKdU0c7IVpTbOvYKYSdXQ5skH4Pa/8MPbZXeyXBGrqS82JyWecsh6tMxiLw==", + "license": "MIT" }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "deep-object-diff": { + "node_modules/object.entries": { "version": "1.1.9", - "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", - "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } }, - "deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==" + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, - "define-properties": { + "node_modules/object.values": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "defu": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", - "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "dev": true - }, - "derive-valtio": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/derive-valtio/-/derive-valtio-0.1.0.tgz", - "integrity": "sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==", - "requires": {} - }, - "destr": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.5.tgz", - "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "node_modules/oblivious-set": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.4.0.tgz", + "integrity": "sha512-szyd0ou0T8nsAqHtprRcP3WidfsN1TnAR5yWXf2mFCEr5ek3LEOkT6EZ/92Xfs74HIdyhG5WkGxIssMU0jBaeg==", + "license": "MIT", + "engines": { + "node": ">=16" + } }, - "detect-browser": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz", - "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==" + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.5.1.tgz", + "integrity": "sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==", + "license": "MIT", + "dependencies": { + "destr": "^2.0.5", + "node-fetch-native": "^1.6.7", + "ufo": "^1.6.1" + } }, - "detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "optional": true + "node_modules/on-exit-leak-free": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", + "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==", + "license": "MIT" }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } }, - "detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + "node_modules/openapi-fetch": { + "version": "0.13.8", + "resolved": "https://registry.npmjs.org/openapi-fetch/-/openapi-fetch-0.13.8.tgz", + "integrity": "sha512-yJ4QKRyNxE44baQ9mY5+r/kAzZ8yXMemtNAOFwOzRXJscdjSxxzWSNlyBAr+o5JjkUw9Lc3W7OIoca0cY3PYnQ==", + "license": "MIT", + "dependencies": { + "openapi-typescript-helpers": "^0.0.15" + } }, - "dijkstrajs": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.3.tgz", - "integrity": "sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==" + "node_modules/openapi-typescript-helpers": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/openapi-typescript-helpers/-/openapi-typescript-helpers-0.0.15.tgz", + "integrity": "sha512-opyTPaunsklCBpTK8JGef6mfPhLSnyy5a0IN9vKtx3+4aExf+KxEqYwIy3hqkedXIB97u357uLMJsOnm3GVjsw==", + "license": "MIT" }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "requires": { - "path-type": "^4.0.0" + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" } }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "dev": true, - "requires": { - "esutils": "^2.0.2" + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "dom-helpers": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", - "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", - "requires": { - "@babel/runtime": "^7.8.7", - "csstype": "^3.0.2" + "node_modules/ox": { + "version": "0.6.12", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.12.tgz", + "integrity": "sha512-78hziRGLj0qTDa0UW4+ynv9tW2Cp1vmCfGokL8D7kiSDh6Y0LAfHL+HaDN4l2a9jcrOG3fexTDtLNtDNkEwLtg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.10.1", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0", + "@scure/bip32": "^1.5.0", + "@scure/bip39": "^1.4.0", + "abitype": "^1.0.6", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "requires": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" + "node_modules/ox/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "duplexify": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.3.tgz", - "integrity": "sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==", - "requires": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.2" + "node_modules/ox/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "eciesjs": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.15.tgz", - "integrity": "sha512-r6kEJXDKecVOCj2nLMuXK/FCPeurW33+3JRpfXVbjLja3XUYFfD9I/JBreH6sUyzcm3G/YQboBjMla6poKeSdA==", - "requires": { - "@ecies/ciphers": "^0.2.3", - "@noble/ciphers": "^1.3.0", - "@noble/curves": "^1.9.1", - "@noble/hashes": "^1.8.0" + "node_modules/ox/node_modules/abitype": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz", + "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" }, - "dependencies": { - "@noble/ciphers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", - "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==" - }, - "@noble/curves": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", - "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", - "requires": { - "@noble/hashes": "1.8.0" - } + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true }, - "@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==" + "zod": { + "optional": true } } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "encode-utf8": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/encode-utf8/-/encode-utf8-1.0.3.tgz", - "integrity": "sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "node_modules/p-defer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.1.tgz", + "integrity": "sha512-Mr5KC5efvAK5VUptYEIopP1bakB85k2IWXaRC0rsh1uwn1L6M0LVml8OIQ4Gudg4oyZakf7FmeRLkMMtZW1i5A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "requires": { - "once": "^1.4.0" + "node_modules/p-event": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-7.0.2.tgz", + "integrity": "sha512-nDq4JpyYnNPDrndgY3z9vQsB0X1bdsOcDmMFbLvewcnt38Geda9x+gULX3+RiGzwJ1QvzqTwNB4EQp+OwMOVAA==", + "license": "MIT", + "dependencies": { + "p-timeout": "^6.1.4" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "engine.io-client": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.3.tgz", - "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.1.1" + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", "dependencies": { - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", - "requires": {} - } + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "engine.io-parser": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", - "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==" + "node_modules/p-queue": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz", + "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==", + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "enhanced-resolve": { - "version": "5.17.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", - "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "node_modules/p-retry": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-7.1.1.tgz", + "integrity": "sha512-J5ApzjyRkkf601HpEeykoiCvzHQjWxPAHhyjFcEUP2SWq0+35NKh8TLhpLw+Dkq5TZBFvUM6UigdE9hIVYTl5w==", + "license": "MIT", + "dependencies": { + "is-network-error": "^1.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "es-abstract": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "es-define-property": { + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parent-module": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + "node_modules/parse-asn1": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.9.tgz", + "integrity": "sha512-fIYNuZ/HastSb80baGOuPRo1O9cf4baWw5WsAp7dBuUzeTD/BoaG8sVTdlPFksBE2lF21dN+A1AnrpIjSWqHHg==", + "license": "ISC", + "dependencies": { + "asn1.js": "^4.10.1", + "browserify-aes": "^1.2.0", + "evp_bytestokey": "^1.0.3", + "pbkdf2": "^3.1.5", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" + } }, - "es-iterator-helpers": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", - "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.2", - "safe-array-concat": "^1.1.2" + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "requires": { - "es-errors": "^1.3.0" + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, - "requires": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "requires": { - "hasown": "^2.0.0" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "license": "MIT", + "engines": { + "node": ">=8" } }, - "es-toolkit": { - "version": "1.33.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.33.0.tgz", - "integrity": "sha512-X13Q/ZSc+vsO1q600bvNK4bxgXMkHcf//RxCmYDaRY5DAcT+eoXjY5hoAPGMdRnWQjvyLEcyauG3b6hz76LNqg==" + "node_modules/pathval": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz", + "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==", + "license": "MIT", + "engines": { + "node": ">= 14.16" + } }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/pbkdf2": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.5.tgz", + "integrity": "sha512-Q3CG/cYvCO1ye4QKkuH7EXxs3VC/rI1/trd+qX2+PolbaKG0H+bgcZzrTt96mMyRtejk+JMCiLUn3y29W8qmFQ==", + "license": "MIT", + "dependencies": { + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "ripemd160": "^2.0.3", + "safe-buffer": "^5.2.1", + "sha.js": "^2.4.12", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.10" + } }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, - "eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "eslint-config-next": { - "version": "14.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.4.tgz", - "integrity": "sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==", - "dev": true, - "requires": { - "@next/eslint-plugin-next": "14.0.4", - "@rushstack/eslint-patch": "^1.3.3", - "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.28.1", - "eslint-plugin-jsx-a11y": "^6.7.1", - "eslint-plugin-react": "^7.33.2", - "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "eslint-config-oceanprotocol": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-oceanprotocol/-/eslint-config-oceanprotocol-2.0.4.tgz", - "integrity": "sha512-VdCtlvjTHzlhErmy8BYCGj3r4/iSJDxseeQTISe5DSyrWaPJpMv728KxBvu+WsCWfuI2WzErAX1HDE/HjmcI6w==", - "dev": true, - "requires": { - "eslint": "^8.23.1", - "eslint-config-prettier": "^8.5.0", - "eslint-config-standard": "^17.0.0", - "eslint-config-standard-react": "^11.0.1", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-n": "^15.3.0", - "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-promise": "^6.0.1", - "eslint-plugin-react": "^7.31.8", - "eslint-plugin-security": "^1.5.0" + "node_modules/pino": { + "version": "7.11.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz", + "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.0.0", + "on-exit-leak-free": "^0.2.0", + "pino-abstract-transport": "v0.5.0", + "pino-std-serializers": "^4.0.0", + "process-warning": "^1.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.1.0", + "safe-stable-stringify": "^2.1.0", + "sonic-boom": "^2.2.1", + "thread-stream": "^0.15.1" }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", + "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", + "license": "MIT", "dependencies": { - "eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", - "dev": true, - "requires": {} - }, - "eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0" - } - } + "duplexify": "^4.1.2", + "split2": "^4.0.0" } }, - "eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "requires": {} + "node_modules/pino-std-serializers": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", + "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==", + "license": "MIT" }, - "eslint-config-standard": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", - "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", - "dev": true, - "requires": {} + "node_modules/pngjs": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", + "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } }, - "eslint-config-standard-react": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/eslint-config-standard-react/-/eslint-config-standard-react-11.0.1.tgz", - "integrity": "sha512-4WlBynOqBZJRaX81CBcIGDHqUiqxvw4j/DbEIICz8QkMs3xEncoPgAoysiqCSsg71X92uhaBc8sgqB96smaMmg==", - "dev": true, - "requires": {} + "node_modules/pony-cause": { + "version": "2.1.11", + "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz", + "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==", + "license": "0BSD", + "engines": { + "node": ">=12.0.0" + } }, - "eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - }, + "node_modules/porto": { + "version": "0.2.19", + "resolved": "https://registry.npmjs.org/porto/-/porto-0.2.19.tgz", + "integrity": "sha512-q1vEJgdtlEOf6byWgD31GHiMwpfLuxFSfx9f7Sw4RGdvpQs2ANBGfnzzardADZegr87ZXsebSp+3vaaznEUzPQ==", + "license": "MIT", "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } + "hono": "^4.9.6", + "idb-keyval": "^6.2.1", + "mipd": "^0.0.7", + "ox": "^0.9.6", + "zod": "^4.1.5", + "zustand": "^5.0.1" + }, + "bin": { + "porto": "_dist/cli/bin/index.js" + }, + "peerDependencies": { + "@tanstack/react-query": ">=5.59.0", + "@wagmi/core": ">=2.16.3", + "react": ">=18", + "typescript": ">=5.4.0", + "viem": ">=2.37.0", + "wagmi": ">=2.0.0" + }, + "peerDependenciesMeta": { + "@tanstack/react-query": { + "optional": true + }, + "react": { + "optional": true + }, + "typescript": { + "optional": true + }, + "wagmi": { + "optional": true } } }, - "eslint-import-resolver-typescript": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", - "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "enhanced-resolve": "^5.12.0", - "eslint-module-utils": "^2.7.4", - "fast-glob": "^3.3.1", - "get-tsconfig": "^4.5.0", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3" - } + "node_modules/porto/node_modules/@adraffy/ens-normalize": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz", + "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", + "license": "MIT" }, - "eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", - "dev": true, - "requires": { - "debug": "^3.2.7" + "node_modules/porto/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "eslint-plugin-es": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", - "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - }, + "node_modules/porto/node_modules/@noble/curves": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", + "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", "dependencies": { - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "dev": true, - "requires": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "node_modules/porto/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "eslint-plugin-jsx-a11y": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", - "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.23.2", - "aria-query": "^5.3.0", - "array-includes": "^3.1.7", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "=4.7.0", - "axobject-query": "^3.2.1", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "es-iterator-helpers": "^1.0.15", - "hasown": "^2.0.0", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.entries": "^1.1.7", - "object.fromentries": "^2.0.7" + "node_modules/porto/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "eslint-plugin-n": { - "version": "15.7.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", - "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", - "dev": true, - "requires": { - "builtins": "^5.0.1", - "eslint-plugin-es": "^4.1.0", - "eslint-utils": "^3.0.0", - "ignore": "^5.1.1", - "is-core-module": "^2.11.0", - "minimatch": "^3.1.2", - "resolve": "^1.22.1", - "semver": "^7.3.8" + "node_modules/porto/node_modules/abitype": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz", + "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } } }, - "eslint-plugin-node": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", - "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", - "dev": true, - "requires": { - "eslint-plugin-es": "^3.0.0", - "eslint-utils": "^2.0.0", - "ignore": "^5.1.1", - "minimatch": "^3.0.4", - "resolve": "^1.10.1", - "semver": "^6.1.0" - }, + "node_modules/porto/node_modules/ox": { + "version": "0.9.17", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.17.tgz", + "integrity": "sha512-rKAnhzhRU3Xh3hiko+i1ZxywZ55eWQzeS/Q4HRKLx2PqfHOolisZHErSsJVipGlmQKHW5qwOED/GighEw9dbLg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", "dependencies": { - "eslint-plugin-es": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", - "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", - "dev": true, - "requires": { - "eslint-utils": "^2.0.0", - "regexpp": "^3.0.0" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true + "@adraffy/ens-normalize": "^1.11.0", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "1.9.1", + "@noble/hashes": "^1.8.0", + "@scure/bip32": "^1.7.0", + "@scure/bip39": "^1.6.0", + "abitype": "^1.0.9", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "eslint-plugin-prettier": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", - "dev": true, - "requires": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.9.1" + "node_modules/porto/node_modules/zod": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.5.tgz", + "integrity": "sha512-k7Nwx6vuWx1IJ9Bjuf4Zt1PEllcwe7cls3VNzm4CQ1/hgtFUK2bRNG3rvnpPUhFjmqJKAKtjV576KnUkHocg/g==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" } }, - "eslint-plugin-promise": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.6.0.tgz", - "integrity": "sha512-57Zzfw8G6+Gq7axm2Pdo3gW/Rx3h9Yywgn61uE/3elTCOePEHVrn2i5CdfBwA1BLK0Q0WqctICIUSqXZW/VprQ==", - "dev": true, - "requires": {} + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } }, - "eslint-plugin-react": { - "version": "7.34.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.2.tgz", - "integrity": "sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==", - "dev": true, - "requires": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", - "array.prototype.toreversed": "^1.1.2", - "array.prototype.tosorted": "^1.1.3", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.0.19", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.8", - "object.fromentries": "^2.0.8", - "object.hasown": "^1.1.4", - "object.values": "^1.2.0", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "eslint-plugin-react-hooks": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", - "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", - "dev": true, - "requires": {} - }, - "eslint-plugin-security": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.7.1.tgz", - "integrity": "sha512-sMStceig8AFglhhT2LqlU5r+/fn9OwsA72O5bBuQVTssPCdQAOQzL+oMn/ZcpeUY6KcNfLJArgcrsSULNjYYdQ==", - "dev": true, - "requires": { - "safe-regex": "^2.1.1" + "node_modules/preact": { + "version": "10.24.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", + "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" } }, - "eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "license": "MIT", + "engines": { + "node": ">= 0.8.0" } }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "node_modules/prettier": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true - }, - "espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "requires": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", "dev": true, - "requires": { - "estraverse": "^5.1.0" + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "esrecurse": { + "node_modules/prettier-plugin-organize-imports": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.3.0.tgz", + "integrity": "sha512-FxFz0qFhyBsGdIsb697f/EkvHzi5SZOhWAjxcx2dLt+Q532bAlhswcXGYB1yzjZ69kW8UoadFBw7TyNwlq96Iw==", "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "eth-block-tracker": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-7.1.0.tgz", - "integrity": "sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg==", - "requires": { - "@metamask/eth-json-rpc-provider": "^1.0.0", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^5.0.1", - "json-rpc-random-id": "^1.0.1", - "pify": "^3.0.0" + "license": "MIT", + "peerDependencies": { + "prettier": ">=2.0", + "typescript": ">=2.9", + "vue-tsc": "^2.1.0 || 3" }, - "dependencies": { - "@metamask/utils": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-5.0.2.tgz", - "integrity": "sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g==", - "requires": { - "@ethereumjs/tx": "^4.1.2", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "semver": "^7.3.8", - "superstruct": "^1.0.3" - } + "peerDependenciesMeta": { + "vue-tsc": { + "optional": true } } }, - "eth-json-rpc-filters": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/eth-json-rpc-filters/-/eth-json-rpc-filters-6.0.1.tgz", - "integrity": "sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig==", - "requires": { - "@metamask/safe-event-emitter": "^3.0.0", - "async-mutex": "^0.2.6", - "eth-query": "^2.1.2", - "json-rpc-engine": "^6.1.0", - "pify": "^5.0.0" - }, - "dependencies": { - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==" - } + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" } }, - "eth-query": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz", - "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==", - "requires": { - "json-rpc-random-id": "^1.0.0", - "xtend": "^4.0.1" - } + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" }, - "eth-rpc-errors": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz", - "integrity": "sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg==", - "requires": { - "fast-safe-stringify": "^2.0.6" - } + "node_modules/process-warning": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", + "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==", + "license": "MIT" }, - "ethereum-cryptography": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", - "integrity": "sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg==", - "requires": { - "@noble/curves": "1.4.2", - "@noble/hashes": "1.4.0", - "@scure/bip32": "1.4.0", - "@scure/bip39": "1.3.0" - }, - "dependencies": { - "@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", - "requires": { - "@noble/hashes": "1.4.0" - } - }, - "@noble/hashes": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", - "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==" - } - } + "node_modules/progress-events": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/progress-events/-/progress-events-1.0.1.tgz", + "integrity": "sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw==", + "license": "Apache-2.0 OR MIT" }, - "ethers": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.0.tgz", - "integrity": "sha512-+yyQQQWEntY5UVbCv++guA14RRVFm1rSnO1GoLFdrK7/XRWMoktNgyG9UjwxrQqGBfGyFKknNZ81YpUS2emCgg==", - "requires": { - "@adraffy/ens-normalize": "1.10.1", - "@noble/curves": "1.2.0", - "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", - "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" - }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { - "@types/node": { - "version": "18.15.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.13.tgz", - "integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==" - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - } + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" } }, - "eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==" + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" }, - "eventemitter3": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", - "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==" + "node_modules/property-expr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", + "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==", + "license": "MIT" }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "node_modules/protobufjs": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", + "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } + "engines": { + "node": ">=12.0.0" } }, - "extension-port-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/extension-port-stream/-/extension-port-stream-3.0.0.tgz", - "integrity": "sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==", - "requires": { - "readable-stream": "^3.6.2 || ^4.4.2", - "webextension-polyfill": ">=0.10.0 <1.0" + "node_modules/protons-runtime": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/protons-runtime/-/protons-runtime-5.6.0.tgz", + "integrity": "sha512-/Kde+sB9DsMFrddJT/UZWe6XqvL7SL5dbag/DBCElFKhkwDj7XKt53S+mzLyaDP5OqS0wXjV5SA572uWDaT0Hg==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8-varint": "^2.0.2", + "uint8arraylist": "^2.4.3", + "uint8arrays": "^5.0.1" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "node_modules/protons-runtime/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } }, - "fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "node_modules/proxy-compare": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.6.0.tgz", + "integrity": "sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==", + "license": "MIT" }, - "fast-equals": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/fast-equals/-/fast-equals-5.0.1.tgz", - "integrity": "sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==" + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" }, - "fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "license": "MIT", "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==" + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } }, - "fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "requires": { - "reusify": "^1.0.4" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true + "node_modules/pushdata-bitcoin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz", + "integrity": "sha512-hw7rcYTJRAl4olM8Owe8x0fBuJJ+WGbMhQuLWOXEMN3PxPCKQHRkhfL+XG0+iXUmSHjkMmb3Ba55Mt21cZc9kQ==", + "license": "MIT", + "dependencies": { + "bitcoin-ops": "^1.3.0" + } }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" + "node_modules/pvtsutils": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.6.tgz", + "integrity": "sha512-PLgQXQ6H2FWCaeRak8vvk1GW462lMxB5s3Jm673N82zI4vqtVUPuZdffdZbPDFRoU8kAhItWFtPCWiPpp4/EDg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.8.1" } }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" + "node_modules/pvutils": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.5.tgz", + "integrity": "sha512-KTqnxsgGiQ6ZAzZCVlJH5eOjSnvlyEgx1m8bkRJfOhmGRqfo5KLvmAlACQkrjEtOQ4B7wF9TdSLIs9O90MX9xA==", + "license": "MIT", + "engines": { + "node": ">=16.0.0" } }, - "filter-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", - "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==" + "node_modules/qr.js": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/qr.js/-/qr.js-0.0.0.tgz", + "integrity": "sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ==", + "license": "MIT" }, - "finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" + "node_modules/qrcode": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.4.tgz", + "integrity": "sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==", + "license": "MIT", + "dependencies": { + "dijkstrajs": "^1.0.1", + "pngjs": "^5.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "qrcode": "bin/qrcode" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/qrcode.react": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/qrcode.react/-/qrcode.react-1.0.1.tgz", + "integrity": "sha512-8d3Tackk8IRLXTo67Y+c1rpaiXjoz/Dd2HpcMdW//62/x8J1Nbho14Kh8x974t9prsLHN6XqVgcnRiBGFptQmg==", + "license": "ISC", + "dependencies": { + "loose-envify": "^1.4.0", + "prop-types": "^15.6.0", + "qr.js": "0.0.0" }, + "peerDependencies": { + "react": "^15.5.3 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "license": "MIT", "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + { + "type": "consulting", + "url": "https://feross.org/support" } - } - }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + ], + "license": "MIT" }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" }, - "flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "requires": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "node_modules/race-event": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/race-event/-/race-event-1.6.1.tgz", + "integrity": "sha512-vi7WH5g5KoTFpu2mme/HqZiWH14XSOtg5rfp6raBskBHl7wnmy3F/biAIyY5MsK+BHWhoPhxtZ1Y2R7OHHaWyQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "abort-error": "^1.0.1" } }, - "flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "node_modules/race-signal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/race-signal/-/race-signal-2.0.0.tgz", + "integrity": "sha512-P31bLhE4ByBX/70QDXMutxnqgwrF1WUXea1O8DXuviAgkdbQ1iQMQotNgzJIBC9yUSn08u/acZrMUhgw7w6GpA==", + "license": "Apache-2.0 OR MIT" }, - "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "license": "MIT" }, - "for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "requires": { - "is-callable": "^1.2.7" + "node_modules/random-int": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/random-int/-/random-int-3.1.0.tgz", + "integrity": "sha512-h8CRz8cpvzj0hC/iH/1Gapgcl2TQ6xtnCpyOI5WvWfXf/yrDx2DOU+tD9rX23j36IF11xg1KqB9W11Z18JPMdw==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" } }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "license": "MIT", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "requires": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" + "node_modules/rdf-canonize": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-5.0.0.tgz", + "integrity": "sha512-g8OUrgMXAR9ys/ZuJVfBr05sPPoMA7nHIVs8VEvg9QwM5W4GR2qSFEEHjsyHF1eWlBaf8Ev40WNjQFQ+nJTO3w==", + "license": "BSD-3-Clause", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=18" } }, - "get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==" - }, - "get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "requires": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" + "node_modules/rdf-data-factory": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-2.0.2.tgz", + "integrity": "sha512-WzPoYHwQYWvIP9k+7IBLY1b4nIDitzAK4mA37WumAF/Cjvu/KOtYJH9IPZnUTWNSd5K2+pq4vrcE9WZC4sRHhg==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^2.0.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/rubensworks/" } }, - "get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", - "dev": true, - "requires": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "node_modules/rdf-dataset-ext": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/rdf-dataset-ext/-/rdf-dataset-ext-1.1.0.tgz", + "integrity": "sha512-CH85RfRKN9aSlbju8T7aM8hgCSWMBsh2eh/tGxUUtWMN+waxi6iFDt8/r4PAEmKaEA82guimZJ4ISbmJ2rvWQg==", + "deprecated": "rdf-dataset-ext is deprecated. Switching to rdf-ext is recommended.", + "license": "MIT", + "dependencies": { + "rdf-canonize": "^3.0.0", + "readable-stream": "3 - 4" } }, - "get-tsconfig": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", - "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", - "dev": true, - "requires": { - "resolve-pkg-maps": "^1.0.0" + "node_modules/rdf-dataset-ext/node_modules/rdf-canonize": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", + "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", + "license": "BSD-3-Clause", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=12" } }, - "glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "node_modules/rdf-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/rdf-literal/-/rdf-literal-2.0.0.tgz", + "integrity": "sha512-jlQ+h7EvnXmncmk8OzOYR8T3gNfd4g0LQXbflHkEkancic8dh0Tdt5RiRq8vUFndjIeNHt1RWeA5TAj6rgrtng==", + "license": "MIT", + "dependencies": { + "rdf-data-factory": "^2.0.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/rubensworks/" } }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" + "node_modules/rdf-validate-datatype": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/rdf-validate-datatype/-/rdf-validate-datatype-0.2.2.tgz", + "integrity": "sha512-mH9qL8i0WBbZ6HJCA26BB6V+WV2MraKvitez3SV0QegBWVQ4wYO49CgfFBzoAYg6tlnhFXl9MkrOAQ07X2N1FA==", + "license": "MIT", + "dependencies": { + "@rdfjs/term-map": "^2.0.0", + "@tpluscode/rdf-ns-builders": "3 - 5" } }, - "globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" + "node_modules/rdf-validate-shacl": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/rdf-validate-shacl/-/rdf-validate-shacl-0.5.10.tgz", + "integrity": "sha512-I+TRVGeKn5eG/kTzVGRGGNThCSkgX/v7EUSOUEsIcHubyyShQYzRbQqyU45zKzNjLWdqp9abFHw1ULUPzWyo1A==", + "license": "MIT", + "dependencies": { + "@rdfjs/data-model": "^2", + "@rdfjs/dataset": "^2", + "@rdfjs/environment": "^1", + "@rdfjs/namespace": "^2.0.0", + "@rdfjs/term-set": "^2.0.1", + "@rdfjs/types": "^1.1.0", + "@vocabulary/sh": "^1.1.5", + "clownface": "^2.0.0", + "debug": "^4.3.2", + "rdf-literal": "^1.3.2", + "rdf-validate-datatype": "^0.2.0" } }, - "globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "requires": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" + "node_modules/rdf-validate-shacl/node_modules/@rdfjs/types": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz", + "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "node_modules/rdf-validate-shacl/node_modules/rdf-data-factory": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.1.3.tgz", + "integrity": "sha512-ny6CI7m2bq4lfQQmDYvcb2l1F9KtGwz9chipX4oWu2aAtVoXjb7k3d8J1EsgAsEbMXnBipB/iuRen5H2fwRWWQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.0.0" } }, - "gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "node_modules/rdf-validate-shacl/node_modules/rdf-literal": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/rdf-literal/-/rdf-literal-1.3.2.tgz", + "integrity": "sha512-79Stlu3sXy0kq9/decHFLf3xNPuY6sfhFPhd/diWErgaFr0Ekyg38Vh9bnVcqDYu48CFRi0t+hrFii49n92Hbw==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0" + } }, - "h3": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.4.tgz", - "integrity": "sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==", - "requires": { - "cookie-es": "^1.2.2", - "crossws": "^0.3.5", - "defu": "^6.1.4", - "destr": "^2.0.5", - "iron-webcrypto": "^1.2.1", - "node-mock-http": "^1.0.2", - "radix3": "^1.1.2", - "ufo": "^1.6.1", - "uncrypto": "^0.1.3" + "node_modules/rdfxml-streaming-parser": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/rdfxml-streaming-parser/-/rdfxml-streaming-parser-2.4.0.tgz", + "integrity": "sha512-f+tdI1wxOiPzMbFWRtOwinwPsqac0WIN80668yFKcVdFCSTGOWTM70ucQGUSdDZZo7pce/UvZgV0C3LDj0P7tg==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@rubensworks/saxes": "^6.0.1", + "@types/readable-stream": "^2.3.13", + "buffer": "^6.0.3", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.4.2", + "relative-to-absolute-iri": "^1.0.0", + "validate-iri": "^1.0.0" } }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true + "node_modules/rdfxml-streaming-parser/node_modules/@rdfjs/types": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.2.tgz", + "integrity": "sha512-wqpOJK1QCbmsGNtyzYnojPU8gRDPid2JO0Q0kMtb4j65xhCK880cnKAfEOwC+dX85VJcCByQx5zOwyyfCjDJsg==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "node_modules/rdfxml-streaming-parser/node_modules/@types/readable-stream": { + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz", + "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" + "node_modules/rdfxml-streaming-parser/node_modules/rdf-data-factory": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.1.3.tgz", + "integrity": "sha512-ny6CI7m2bq4lfQQmDYvcb2l1F9KtGwz9chipX4oWu2aAtVoXjb7k3d8J1EsgAsEbMXnBipB/iuRen5H2fwRWWQ==", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.0.0" } }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true + "node_modules/rdfxml-streaming-parser/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } }, - "has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "requires": { - "has-symbols": "^1.0.3" + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" } }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" + "node_modules/react-fast-compare": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", + "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==", + "license": "MIT" + }, + "node_modules/react-is": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.3.tgz", + "integrity": "sha512-qJNJfu81ByyabuG7hPFEbXqNcWSU3+eVus+KJs+0ncpGfMyYdvSmxiJxbWR65lYi1I+/0HBcliO029gc4F+PnA==", + "license": "MIT" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==", + "license": "MIT" + }, + "node_modules/react-modal": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.3.tgz", + "integrity": "sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw==", + "license": "MIT", + "dependencies": { + "exenv": "^1.2.0", + "prop-types": "^15.7.2", + "react-lifecycles-compat": "^3.0.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "react": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19", + "react-dom": "^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 || ^19" } }, - "hoist-non-react-statics": { + "node_modules/react-native-passkey": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" + "resolved": "https://registry.npmjs.org/react-native-passkey/-/react-native-passkey-3.3.2.tgz", + "integrity": "sha512-YgXERrBlgVHAYkxGPpncB0zoiRQfZyMMMlWfNTYMyKvOS6muFMlhzk6w5lG4FyEEVrvXHGV4AS6twbmt2Rv8GA==", + "license": "MIT", + "peerDependencies": { + "react": "*", + "react-native": "*" } }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "node_modules/react-qr-reader": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-qr-reader/-/react-qr-reader-2.2.1.tgz", + "integrity": "sha512-EL5JEj53u2yAOgtpAKAVBzD/SiKWn0Bl7AZy6ZrSf1lub7xHwtaXe6XSx36Wbhl1VMGmvmrwYMRwO1aSCT2fwA==", + "license": "MIT", + "dependencies": { + "jsqr": "^1.2.0", + "prop-types": "^15.7.2", + "webrtc-adapter": "^7.2.1" + }, + "peerDependencies": { + "react": "~16", + "react-dom": "~16" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } } }, - "idb-keyval": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", - "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "node_modules/react-remove-scroll": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "dev": true + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true + "node_modules/react-toastify": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-11.0.5.tgz", + "integrity": "sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1" + }, + "peerDependencies": { + "react": "^18 || ^19", + "react-dom": "^18 || ^19" + } }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } }, - "internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, - "internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==" + "node_modules/real-require": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", + "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "requires": { - "loose-envify": "^1.0.0" + "node_modules/recharts": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.6.0.tgz", + "integrity": "sha512-L5bjxvQRAe26RlToBAziKUB7whaGKEwD3znoM6fz3DrTowCIC/FnJYnuq1GEzB8Zv2kdTfaxQfi5GoH0tBinyg==", + "license": "MIT", + "workspaces": [ + "www" + ], + "dependencies": { + "@reduxjs/toolkit": "1.x.x || 2.x.x", + "clsx": "^2.1.1", + "decimal.js-light": "^2.5.1", + "es-toolkit": "^1.39.3", + "eventemitter3": "^5.0.1", + "immer": "^10.1.1", + "react-redux": "8.x.x || 9.x.x", + "reselect": "5.1.1", + "tiny-invariant": "^1.3.3", + "use-sync-external-store": "^1.2.2", + "victory-vendor": "^37.0.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "node_modules/recharts/node_modules/es-toolkit": { + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.43.0.tgz", + "integrity": "sha512-SKCT8AsWvYzBBuUqMk4NPwFlSdqLpJwmy6AP322ERn8W2YLIB6JBXnwMI2Qsh2gfphT3q7EKAxKb23cvFHFwKA==", + "license": "MIT", + "workspaces": [ + "docs", + "benchmarks" + ] }, - "iron-webcrypto": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", - "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==" + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" }, - "is-arguments": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", - "requires": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" } }, - "is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "license": "Apache-2.0" + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "is-async-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } + "license": "MIT" }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/regenerate-unicode-properties": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz", + "integrity": "sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g==", "dev": true, - "requires": { - "has-bigints": "^1.0.1" + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/regexp-tree": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", + "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "license": "MIT", + "bin": { + "regexp-tree": "bin/regexp-tree" } }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==" - }, - "is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "requires": { - "hasown": "^2.0.0" + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", "dev": true, - "requires": { - "is-typed-array": "^1.1.13" + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/regexpu-core": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz", + "integrity": "sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA==", "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.2.2", + "regjsgen": "^0.8.0", + "regjsparser": "^0.13.0", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.2.1" + }, + "engines": { + "node": ">=4" } }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" }, - "is-finalizationregistry": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "node_modules/regjsparser": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", + "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", "dev": true, - "requires": { - "call-bind": "^1.0.2" + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~3.1.0" + }, + "bin": { + "regjsparser": "bin/parser" } }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "requires": { - "has-tostringtag": "^1.0.0" - } + "node_modules/relative-to-absolute-iri": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.7.tgz", + "integrity": "sha512-Xjyl4HmIzg2jzK/Un2gELqbcE8Fxy85A/aLSHE6PE/3+OGsFwmKVA1vRyGaz6vLWSqLDMHA+5rjD/xbibSQN1Q==", + "license": "MIT" }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, - "is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "license": "ISC" }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" } }, - "is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "dev": true, - "requires": { - "call-bind": "^1.0.7" + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "node_modules/retimeable-signal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/retimeable-signal/-/retimeable-signal-1.0.1.tgz", + "integrity": "sha512-Cy26CYfbWnYu8HMoJeDhaMpW/EYFIbne3vMf6G9RSrOyWYXbPehja/BEdzpqmM84uy2bfBD7NPZhoQ4GZEtgvg==", + "license": "Apache-2.0 OR MIT" }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "requires": { - "has-symbols": "^1.0.2" + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "requires": { - "which-typed-array": "^1.1.16" + "node_modules/ripemd160": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.3.tgz", + "integrity": "sha512-5Di9UC0+8h1L6ZD2d7awM7E/T4uA1fJRlx6zk/NvdCCVEoAnFqvHmCuNeIKoCeIixBX/q8uM+6ycDvF8woqosA==", + "license": "MIT", + "dependencies": { + "hash-base": "^3.1.2", + "inherits": "^2.0.4" + }, + "engines": { + "node": ">= 0.8" } }, - "is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" + "node_modules/ripemd160/node_modules/hash-base": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.2.tgz", + "integrity": "sha512-Bb33KbowVTIj5s7Ked1OsqHUeCpz//tPwR+E2zJgJKo9Z5XolZ9b6bdUgjmYlwnWhoOQKoTd1TYToZGn5mAYOg==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^2.3.8", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.1" + }, + "engines": { + "node": ">= 0.8" } }, - "is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "node_modules/ripemd160/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/ripemd160/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "node_modules/ripemd160/node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "node_modules/ripemd160/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "isows": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz", - "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==", - "requires": {} + "node_modules/ripemd160/node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" }, - "iterator.prototype": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", - "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", - "dev": true, - "requires": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "node_modules/ripple-address-codec": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ripple-address-codec/-/ripple-address-codec-5.0.0.tgz", + "integrity": "sha512-de7osLRH/pt5HX2xw2TRJtbdLLWHu0RXirpQaEeCnWKY5DYHykh3ETSkofvm0aX0LJiV7kwkegJxQkmbO94gWw==", + "license": "ISC", + "dependencies": { + "@scure/base": "^1.1.3", + "@xrplf/isomorphic": "^1.0.0" + }, + "engines": { + "node": ">= 16" } }, - "jparticles": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jparticles/-/jparticles-3.5.0.tgz", - "integrity": "sha512-qUKP56Xqh2G7TqFKHMPDYzfZKkvsbLGJu+xJI4dh0YGZL26zOCUVV31MkkPWmfd6SaST23mhSvvvEArFd8yApQ==" - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + "node_modules/ripple-binary-codec": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/ripple-binary-codec/-/ripple-binary-codec-2.6.0.tgz", + "integrity": "sha512-OJBRxjjalO7SrIwydHhcC9wOFLoeKcawoqSEfGZilAtXROYTWHx5kTly2VcUMmMMSEYIh1+yEstBtLBObNjeKQ==", + "license": "ISC", + "dependencies": { + "@xrplf/isomorphic": "^1.0.1", + "bignumber.js": "^9.0.0", + "ripple-address-codec": "^5.0.0" + }, + "engines": { + "node": ">= 18" + } }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "node_modules/ripple-keypairs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ripple-keypairs/-/ripple-keypairs-2.0.0.tgz", + "integrity": "sha512-b5rfL2EZiffmklqZk1W+dvSy97v3V/C7936WxCCgDynaGPp7GE6R2XO7EU9O2LlM/z95rj870IylYnOQs+1Rag==", + "license": "ISC", + "dependencies": { + "@noble/curves": "^1.0.0", + "@xrplf/isomorphic": "^1.0.0", + "ripple-address-codec": "^5.0.0" + }, + "engines": { + "node": ">= 16" + } }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" + "node_modules/rpc-websockets": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.3.2.tgz", + "integrity": "sha512-VuW2xJDnl1k8n8kjbdRSWawPRkwaVqUQNjE1TdeTawf0y0abGhtVJFTXCLfgpgGDBkO/Fj6kny8Dc/nvOW78MA==", + "license": "LGPL-3.0-only", + "dependencies": { + "@swc/helpers": "^0.5.11", + "@types/uuid": "^8.3.4", + "@types/ws": "^8.2.2", + "buffer": "^6.0.3", + "eventemitter3": "^5.0.1", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" } }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "node_modules/rpc-websockets/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } }, - "json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true + "node_modules/rtcpeerconnection-shim": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz", + "integrity": "sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw==", + "license": "BSD-3-Clause", + "dependencies": { + "sdp": "^2.6.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } }, - "json-rpc-engine": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-6.1.0.tgz", - "integrity": "sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ==", - "requires": { - "@metamask/safe-event-emitter": "^2.0.0", - "eth-rpc-errors": "^4.0.2" - }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "license": "Apache-2.0", "dependencies": { - "@metamask/safe-event-emitter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz", - "integrity": "sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q==" - } + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" } }, - "json-rpc-random-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==" + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" }, - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, - "requires": { - "minimist": "^1.2.0" + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" + "license": "MIT", + "dependencies": { + "regexp-tree": "~0.1.1" } }, - "keccak": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", - "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "requires": { - "json-buffer": "3.0.1" + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" } }, - "keyvaluestorage-interface": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz", - "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==" + "node_modules/salmon-adapter-sdk": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/salmon-adapter-sdk/-/salmon-adapter-sdk-1.1.1.tgz", + "integrity": "sha512-28ysSzmDjx2AbotxSggqdclh9MCwlPJUldKkCph48oS5Xtwu0QOg8T9ZRHS2Mben4Y8sTq6VvxXznKssCYFBJA==", + "license": "Apache-2.0", + "dependencies": { + "@project-serum/sol-wallet-adapter": "^0.2.6", + "eventemitter3": "^4.0.7" + }, + "peerDependencies": { + "@solana/web3.js": "^1.44.3" + } }, - "language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true + "node_modules/salmon-adapter-sdk/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "license": "MIT" }, - "language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "requires": { - "language-subtag-registry": "^0.3.20" + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "license": "WTFPL OR ISC", + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" } }, - "leaflet": { - "version": "1.9.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz", - "integrity": "sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==" + "node_modules/sax": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.4.tgz", + "integrity": "sha512-1n3r/tGXO6b6VXMdFT54SHzT9ytu9yr7TaELowdYpMqY/Ao7EnlQGmAQ1+RatX7Tkkdm6hONI2owqNx2aZj5Sw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" } }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==", + "license": "MIT", + "optional": true }, - "lit": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lit/-/lit-3.3.0.tgz", - "integrity": "sha512-DGVsqsOIHBww2DqnuZzW7QsuCdahp50ojuDaBPC7jUDRpYoH0z7kHBBYZewRzer75FwtrkmkKk7iOAwSaWdBmw==", - "requires": { - "@lit/reactive-element": "^2.1.0", - "lit-element": "^4.2.0", - "lit-html": "^3.3.0" + "node_modules/sdp": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/sdp/-/sdp-2.12.0.tgz", + "integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "lit-element": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-4.2.1.tgz", - "integrity": "sha512-WGAWRGzirAgyphK2urmYOV72tlvnxw7YfyLDgQ+OZnM9vQQBQnumQ7jUJe6unEzwGU3ahFOjuz1iz1jjrpCPuw==", - "requires": { - "@lit-labs/ssr-dom-shim": "^1.4.0", - "@lit/reactive-element": "^2.1.0", - "lit-html": "^3.3.0" + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "license": "ISC" + }, + "node_modules/set-cookie-parser": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz", + "integrity": "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "lit-html": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/lit-html/-/lit-html-3.3.1.tgz", - "integrity": "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA==", - "requires": { - "@types/trusted-types": "^2.0.2" + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "dev": true, - "requires": { - "p-locate": "^5.0.0" + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" } }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "license": "MIT" }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "node_modules/sha.js": { + "version": "2.4.12", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", + "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", + "license": "(MIT AND BSD-3-Clause)", + "dependencies": { + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1", + "to-buffer": "^1.2.0" + }, + "bin": { + "sha.js": "bin.js" + }, + "engines": { + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==" + "node_modules/sha256-uint8array": { + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/sha256-uint8array/-/sha256-uint8array-0.10.7.tgz", + "integrity": "sha512-1Q6JQU4tX9NqsDGodej6pkrUVQVNapLZnvkwIhddH/JqzBZF1fSaxSWNY6sziXBE8aEa2twtGkXUrwzGeZCMpQ==", + "license": "MIT" }, - "match-sorter": { - "version": "6.3.4", - "resolved": "https://registry.npmjs.org/match-sorter/-/match-sorter-6.3.4.tgz", - "integrity": "sha512-jfZW7cWS5y/1xswZo8VBOdudUiSd9nifYRWphc9M5D/ee4w4AoXLgBEdRbgVaxbMuagBPeUC5y2Hi8DO6o9aDg==", - "requires": { - "@babel/runtime": "^7.23.8", - "remove-accents": "0.5.0" + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" } }, - "math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" - }, - "media-query-parser": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", - "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", - "requires": { - "@babel/runtime": "^7.12.5" + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "meshoptimizer": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", - "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "micro-ftch": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/micro-ftch/-/micro-ftch-0.3.1.tgz", - "integrity": "sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg==" - }, - "micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "requires": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" + "license": "MIT", + "engines": { + "node": ">=8" } }, - "micromodal": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/micromodal/-/micromodal-0.4.10.tgz", - "integrity": "sha512-BUrEnzMPFBwK8nOE4xUDYHLrlGlLULQVjpja99tpJQPSUEWgw3kTLp1n1qv0HmKU29AiHE7Y7sMLiRziDK4ghQ==" - }, - "microseconds": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/microseconds/-/microseconds-0.2.0.tgz", - "integrity": "sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "mipd": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz", - "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==", - "requires": {} - }, - "modern-ahocorasick": { + "node_modules/side-channel-map": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/modern-ahocorasick/-/modern-ahocorasick-1.0.1.tgz", - "integrity": "sha512-yoe+JbhTClckZ67b2itRtistFKf8yPYelHLc7e5xAwtNAXxM6wJTUx2C7QeVSJFDzKT7bCIFyBVybPMKvmB9AA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==" - }, - "nano-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/nano-time/-/nano-time-1.0.0.tgz", - "integrity": "sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==", - "requires": { - "big-integer": "^1.6.16" + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "next": { - "version": "15.4.8", - "resolved": "https://registry.npmjs.org/next/-/next-15.4.8.tgz", - "integrity": "sha512-jwOXTz/bo0Pvlf20FSb6VXVeWRssA2vbvq9SdrOPEg9x8E1B27C2rQtvriAn600o9hH61kjrVRexEffv3JybuA==", - "requires": { - "@next/env": "15.4.8", - "@next/swc-darwin-arm64": "15.4.8", - "@next/swc-darwin-x64": "15.4.8", - "@next/swc-linux-arm64-gnu": "15.4.8", - "@next/swc-linux-arm64-musl": "15.4.8", - "@next/swc-linux-x64-gnu": "15.4.8", - "@next/swc-linux-x64-musl": "15.4.8", - "@next/swc-win32-arm64-msvc": "15.4.8", - "@next/swc-win32-x64-msvc": "15.4.8", - "@swc/helpers": "0.5.15", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", - "sharp": "^0.34.3", - "styled-jsx": "5.1.6" + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "requires": { - "whatwg-url": "^5.0.0" + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" } }, - "node-fetch-native": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.7.tgz", - "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==" - }, - "node-gyp-build": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", - "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==" - }, - "node-mock-http": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.3.tgz", - "integrity": "sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==" + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" }, - "normalize-path": { + "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "obj-multiplex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/obj-multiplex/-/obj-multiplex-1.0.0.tgz", - "integrity": "sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==", - "requires": { - "end-of-stream": "^1.4.0", - "once": "^1.4.0", - "readable-stream": "^2.3.3" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } }, - "object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, - "requires": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "object.entries": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "node_modules/socket.io-client": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.3.tgz", + "integrity": "sha512-uP0bpjWrjQmUt5DTHq9RuoCBdFJF10cdX9X+a368j/Ft0wmaVgxlrjvK3kjvgCODOMMOz9lcaRzxmso0bTWZ/g==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" } }, - "object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "node_modules/socket.io-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.5.tgz", + "integrity": "sha512-bPMmpy/5WWKHea5Y/jYAP6k74A+hvmRCQaJuJB6I/ML5JZq/KfNieUVo/3Mh7SAqn7TyFdIo6wqYHInG1MU1bQ==", + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.4.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "object.hasown": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.4.tgz", - "integrity": "sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==", - "dev": true, - "requires": { - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" } }, - "object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "node_modules/sonic-boom": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", + "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" } }, - "oblivious-set": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz", - "integrity": "sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==" + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } }, - "ofetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", - "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", - "requires": { - "destr": "^2.0.3", - "node-fetch-native": "^1.6.4", - "ufo": "^1.5.4" + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "on-exit-leak-free": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz", - "integrity": "sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==" + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "license": "MIT", + "engines": { + "node": ">=6" } }, - "optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" } }, - "outdent": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz", - "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==" + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" }, - "ox": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.9.tgz", - "integrity": "sha512-wi5ShvzE4eOcTwQVsIPdFr+8ycyX+5le/96iAJutaZAvCes1J0+RvpEPg5QDPDiaR0XQQAvZVl7AwqQcINuUug==", - "requires": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "license": "MIT", "dependencies": { - "@noble/curves": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.7.tgz", - "integrity": "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==", - "requires": { - "@noble/hashes": "1.8.0" - } - }, - "@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==" - }, - "@scure/bip32": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", - "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", - "requires": { - "@noble/curves": "~1.9.0", - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" - } - }, - "@scure/bip39": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", - "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", - "requires": { - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" - } - } + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" } }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "license": "MIT", + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" } }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "node_modules/stream-chain": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz", + "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==", + "license": "BSD-3-Clause" }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "requires": { - "callsites": "^3.0.0" + "node_modules/stream-chunks": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-chunks/-/stream-chunks-1.0.0.tgz", + "integrity": "sha512-/G+kinLx3pKXChtuko82taA4gZo56zFG2b2BbhmugmS0TUPBL40c5b2vjonS+gAHYK/cSKM9m0WTvAJYgDUeNw==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3", + "string_decoder": "^1.3.0" } }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" + "node_modules/stream-json": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.9.1.tgz", + "integrity": "sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==", + "license": "BSD-3-Clause", + "dependencies": { + "stream-chain": "^2.2.5" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "node_modules/stream-shift": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", + "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==", + "license": "MIT" }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "node_modules/stream-slice": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/stream-slice/-/stream-slice-0.1.2.tgz", + "integrity": "sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==", + "license": "MIT" }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==" + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } }, - "pino": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz", - "integrity": "sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==", - "requires": { - "atomic-sleep": "^1.0.0", - "fast-redact": "^3.0.0", - "on-exit-leak-free": "^0.2.0", - "pino-abstract-transport": "v0.5.0", - "pino-std-serializers": "^4.0.0", - "process-warning": "^1.0.0", - "quick-format-unescaped": "^4.0.3", - "real-require": "^0.1.0", - "safe-stable-stringify": "^2.1.0", - "sonic-boom": "^2.2.1", - "thread-stream": "^0.15.1" + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "pino-abstract-transport": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz", - "integrity": "sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==", - "requires": { - "duplexify": "^4.1.2", - "split2": "^4.0.0" + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "pino-std-serializers": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz", - "integrity": "sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==" + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" }, - "pngjs": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", - "integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==" + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } }, - "pony-cause": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/pony-cause/-/pony-cause-2.1.11.tgz", - "integrity": "sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg==" + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "possible-typed-array-names": { + "node_modules/string.prototype.repeat": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==" - }, - "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" } }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "preact": { - "version": "10.24.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.2.tgz", - "integrity": "sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==" - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", - "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", - "dev": true - }, - "prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, - "requires": { - "fast-diff": "^1.1.2" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "process-warning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "proxy-compare": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.6.0.tgz", - "integrity": "sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==" + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "node_modules/sturdy-websocket": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/sturdy-websocket/-/sturdy-websocket-0.2.1.tgz", + "integrity": "sha512-NnzSOEKyv4I83qbuKw9ROtJrrT6Z/Xt7I0HiP/e6H6GnpeTDvzwGIGeJ8slai+VwODSHQDooW2CAilJwT9SpRg==", + "license": "MIT", + "optional": true }, - "pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "node_modules/styled-jsx": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", + "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } } }, - "punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==", + "license": "MIT" }, - "qrcode": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.5.3.tgz", - "integrity": "sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg==", - "requires": { - "dijkstrajs": "^1.0.1", - "encode-utf8": "^1.0.3", - "pngjs": "^5.0.0", - "yargs": "^15.3.1" + "node_modules/superstruct": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", + "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" } }, - "qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "requires": { - "side-channel": "^1.0.6" + "node_modules/supports-color": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", + "integrity": "sha512-SS+jx45GF1QjgEXQx4NJZV9ImqmO2NPz5FNsIHrsDjh2YsHnawpan7SNQ1o8NuhrbHZy9AZhIoCUiCeaW/C80g==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "query-string": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", - "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", - "requires": { - "decode-uri-component": "^0.2.2", - "filter-obj": "^1.1.0", - "split-on-first": "^1.0.0", - "strict-uri-encode": "^2.0.0" + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "quick-format-unescaped": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", - "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" - }, - "radix3": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", - "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true, + "license": "MIT" }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, - "react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", - "requires": { - "loose-envify": "^1.1.0" + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" } }, - "react-data-table-component": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/react-data-table-component/-/react-data-table-component-7.6.2.tgz", - "integrity": "sha512-nHe7040fmtrJyQr/ieGrTfV0jBflYGK4sLokC6/AFOv3ThjmA9WzKz8Z8/2wMxzRqLU+Rn0CVFg+8+frKLepWQ==", - "requires": { - "deepmerge": "^4.3.1" + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" } }, - "react-day-picker": { - "version": "9.6.3", - "resolved": "https://registry.npmjs.org/react-day-picker/-/react-day-picker-9.6.3.tgz", - "integrity": "sha512-rDqCSKAl5MLX0z1fLkYcBenQK4ANlYaAhUR0ruVSVAhAa7/ZmKQqgDpXPoS7bYEkgBRH06LO1qNFP1Ki8uiZpw==", - "requires": { - "@date-fns/tz": "^1.2.0", - "date-fns": "^4.1.0", - "date-fns-jalali": "^4.1.0-0" - }, + "node_modules/text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thread-stream": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz", + "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==", + "license": "MIT", "dependencies": { - "date-fns": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", - "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==" - }, - "date-fns-jalali": { - "version": "4.1.0-0", - "resolved": "https://registry.npmjs.org/date-fns-jalali/-/date-fns-jalali-4.1.0-0.tgz", - "integrity": "sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==" - } + "real-require": "^0.1.0" } }, - "react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", - "requires": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" - } + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "license": "MIT" }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==", + "license": "MIT" }, - "react-leaflet": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/react-leaflet/-/react-leaflet-4.2.1.tgz", - "integrity": "sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==", - "requires": { - "@react-leaflet/core": "^2.1.0" - } + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "license": "MIT" }, - "react-paginate": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/react-paginate/-/react-paginate-8.2.0.tgz", - "integrity": "sha512-sJCz1PW+9PNIjUSn919nlcRVuleN2YPoFBOvL+6TPgrH/3lwphqiSOgdrLafLdyLDxsgK+oSgviqacF4hxsDIw==", - "requires": { - "prop-types": "^15" + "node_modules/tiny-secp256k1": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.7.tgz", + "integrity": "sha512-eb+F6NabSnjbLwNoC+2o5ItbmP1kg7HliWue71JgLegQt6A5mTN8YbvTLCazdlg6e5SV6A+r8OGvZYskdlmhqQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "react-query": { - "version": "3.39.3", - "resolved": "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz", - "integrity": "sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==", - "requires": { - "@babel/runtime": "^7.5.5", - "broadcast-channel": "^3.4.1", - "match-sorter": "^6.0.2" - } + "node_modules/tiny-secp256k1/node_modules/bn.js": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz", + "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==", + "license": "MIT" }, - "react-remove-scroll": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz", - "integrity": "sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==", - "requires": { - "react-remove-scroll-bar": "^2.3.4", - "react-style-singleton": "^2.2.1", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", - "use-sidecar": "^1.1.2" - } + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==", + "license": "MIT" }, - "react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", - "requires": { - "react-style-singleton": "^2.2.1", - "tslib": "^2.0.0" + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" } }, - "react-smooth": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/react-smooth/-/react-smooth-4.0.1.tgz", - "integrity": "sha512-OE4hm7XqR0jNOq3Qmk9mFLyd6p2+j6bvbPJ7qlB7+oo0eNcL2l7WQzG6MBnT3EXY6xzkLMUBec3AfewJdA0J8w==", - "requires": { - "fast-equals": "^5.0.1", - "prop-types": "^15.8.1", - "react-transition-group": "^4.4.5" + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", - "requires": { - "get-nonce": "^1.0.0", - "invariant": "^2.2.4", - "tslib": "^2.0.0" + "node_modules/to-buffer": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.2.tgz", + "integrity": "sha512-db0E3UJjcFhpDhAF4tLo03oli3pwl3dbnzXOUIlRKrp+ldk/VUxzpWYZENsw2SZiuBjHAk7DfB0VU7NKdpb6sw==", + "license": "MIT", + "dependencies": { + "isarray": "^2.0.5", + "safe-buffer": "^5.2.1", + "typed-array-buffer": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" } }, - "react-transition-group": { - "version": "4.4.5", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", - "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", - "requires": { - "@babel/runtime": "^7.5.5", - "dom-helpers": "^5.0.1", - "loose-envify": "^1.4.0", - "prop-types": "^15.6.2" + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==", + "license": "MIT" }, - "readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==" + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==", + "license": "MIT" }, - "real-require": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.1.0.tgz", - "integrity": "sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==" - }, - "recharts": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-2.13.0.tgz", - "integrity": "sha512-sbfxjWQ+oLWSZEWmvbq/DFVdeRLqqA6d0CDjKx2PkxVVdoXo16jvENCE+u/x7HxOO+/fwx//nYRwb8p8X6s/lQ==", - "requires": { - "clsx": "^2.0.0", - "eventemitter3": "^4.0.1", - "lodash": "^4.17.21", - "react-is": "^18.3.1", - "react-smooth": "^4.0.0", - "recharts-scale": "^0.4.4", - "tiny-invariant": "^1.3.1", - "victory-vendor": "^36.6.8" - }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "license": "MIT" + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "license": "WTFPL", "dependencies": { - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" - } + "utf8-byte-length": "^1.0.1" } }, - "recharts-scale": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/recharts-scale/-/recharts-scale-0.4.5.tgz", - "integrity": "sha512-kivNFO+0OcUNu7jQquLXAxz1FIwZj8nrj+YkOKc5694NbjCvcT6aSZiIzNzd2Kul4o4rTto8QVR9lMNtxD4G1w==", - "requires": { - "decimal.js-light": "^2.4.1" + "node_modules/ts-api-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", + "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "reflect.getprototypeof": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "node_modules/ts-mixer": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz", + "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==", + "license": "MIT" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.1", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "globalthis": "^1.0.3", - "which-builtin-type": "^1.1.3" + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" } }, - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } }, - "regexp-tree": { - "version": "0.1.27", - "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", - "integrity": "sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==", - "dev": true + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" }, - "regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "node_modules/tsyringe": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.10.0.tgz", + "integrity": "sha512-axr3IdNuVIxnaK5XGEUFTu3YmAQ6lllgrvqfEoR16g/HGnYY/6We4oWENtAnzK6/LpJ2ur9PAb80RBt7/U4ugw==", + "license": "MIT", + "dependencies": { + "tslib": "^1.9.3" + }, + "engines": { + "node": ">= 6.0.0" } }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true + "node_modules/tsyringe/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" }, - "remove-accents": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/remove-accents/-/remove-accents-0.5.0.tgz", - "integrity": "sha512-8g3/Otx1eJaVD12e31UbJj1YzdtVvzH85HV7t+9MJYk/u3XmkOUJ5Ys9wQrf9PCPK8+xn4ymzqYCiZl6QWKn+A==" + "node_modules/turbo-stream": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.1.tgz", + "integrity": "sha512-v8kOJXpG3WoTN/+at8vK7erSzo6nW6CIaeOvNOkHQVDajfz1ZVeSxCbc6tOH4hrGZW7VUCV0TOXd8CPzYnYkrw==", + "license": "ISC" }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", + "license": "Unlicense" + }, + "node_modules/type": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz", + "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==", + "license": "ISC", + "optional": true }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" - }, - "reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" - }, - "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "requires": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" - }, - "resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true + "node_modules/typebox": { + "version": "1.0.77", + "resolved": "https://registry.npmjs.org/typebox/-/typebox-1.0.77.tgz", + "integrity": "sha512-4PgDeVyUcdf1tZyDUr6Nqx0f4WR9pusFhjyDyuTWS7tQTd94Yx0zAUevvbRSn8dC8UG1eWhTTobDEuRk7pxclw==", + "license": "MIT" }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "license": "MIT", "dependencies": { - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" } }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, - "requires": { - "queue-microtask": "^1.2.2" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, - "requires": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", - "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, - "requires": { - "regexp-tree": "~0.1.1" + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", - "dev": true, - "requires": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "is-typedarray": "^1.0.0" } }, - "safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "node_modules/typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==", + "license": "MIT" }, - "scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "requires": { - "loose-envify": "^1.1.0" + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" } }, - "semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==" - }, - "send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } + "node_modules/ua-is-frozen": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ua-is-frozen/-/ua-is-frozen-0.1.2.tgz", + "integrity": "sha512-RwKDW2p3iyWn4UbaxpP2+VxwqXh0jpvdxsYpZ5j/MLLiQOfbsV5shpgQiw93+KMYQPcteeMQ289MaAFzs3G9pw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + { + "type": "paypal", + "url": "https://paypal.me/faisalman" } - } + ], + "license": "MIT" }, - "serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "requires": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "dependencies": { - "encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==" + "node_modules/ua-parser-js": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-2.0.8.tgz", + "integrity": "sha512-BdnBM5waFormdrOFBU+cA90R689V0tWUWlIG2i30UXxElHjuCu5+dOV2Etw3547jcQ/yaLtPm9wrqIuOY2bSJg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" } + ], + "license": "AGPL-3.0-or-later", + "dependencies": { + "detect-europe-js": "^0.1.2", + "is-standalone-pwa": "^0.1.1", + "ua-is-frozen": "^0.1.2" + }, + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "node_modules/ufo": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.2.tgz", + "integrity": "sha512-heMioaxBcG9+Znsda5Q8sQbWnLJSl98AFDXTO80wELWEzX3hordXsTdxrIfMQoO9IY1MEnoGoPjpoKpMj+Yx0Q==", + "license": "MIT" }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } + "node_modules/uint32": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/uint32/-/uint32-0.2.1.tgz", + "integrity": "sha512-d3i8kc/4s1CFW5g3FctmF1Bu2GVXGBMTn82JY2BW0ZtTtI8pRx1YWGPCFBwRF4uYVSJ7ua4y+qYEPqS+x+3w7Q==", + "license": "Do, what You want" }, - "set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" + "node_modules/uint8-varint": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-2.0.4.tgz", + "integrity": "sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arraylist": "^2.0.0", + "uint8arrays": "^5.0.0" } }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.12", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.12.tgz", - "integrity": "sha512-8LzC5+bvI45BjpfXU8V5fdU2mfeKiQe1D1gIMn7XUlF3OTUrpdJpPPH4EMAnF0DsHHdSZqCdSss5qCmJKuiO3w==", - "requires": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.0" + "node_modules/uint8-varint/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" } }, - "shallowequal": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", - "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" - }, - "sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "optional": true, - "requires": { - "@img/colour": "^1.0.0", - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" + "node_modules/uint8array-tools": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.8.tgz", + "integrity": "sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" } }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" + "node_modules/uint8arraylist": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-2.4.8.tgz", + "integrity": "sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "uint8arrays": "^5.0.1" } }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "node_modules/uint8arraylist/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" } }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "socket.io-client": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", - "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.6.1", - "socket.io-parser": "~4.2.4" + "node_modules/uint8arrays": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-4.0.10.tgz", + "integrity": "sha512-AnJNUGGDJAgFw/eWu/Xb9zrVKEGlwJJCaeInlf3BkecE/zcTobk5YXYIPNQJO1q5Hh1QZrQQHf0JvcHqz2hqoA==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^12.0.1" } }, - "socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "node_modules/uint8arrays/node_modules/multiformats": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-12.1.3.tgz", + "integrity": "sha512-eajQ/ZH7qXZQR2AgtfpmSMizQzmyYVmCql7pdhldPuYQi4atACekbJaQplk6dWyIi10jCaFnd6pqvcEFXjbaJw==", + "license": "Apache-2.0 OR MIT", + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" } }, - "sonic-boom": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-2.8.0.tgz", - "integrity": "sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==", - "requires": { - "atomic-sleep": "^1.0.0" + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "license": "MIT" }, - "source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==" + "node_modules/undici": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.23.0.tgz", + "integrity": "sha512-VfQPToRA5FZs/qJxLIinmU59u0r7LXqoJkCzinq3ckNJp3vKEh7jTWN589YQ5+aoAC/TGRLyJLCPKcLQbM8r9g==", + "license": "MIT", + "engines": { + "node": ">=18.17" + } }, - "split-on-first": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", - "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==" + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "license": "MIT" }, - "split2": { + "node_modules/unfetch": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", + "license": "MIT" }, - "statuses": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "stream-shift": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz", - "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==" - }, - "strict-uri-encode": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", - "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" } }, - "string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", - "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz", + "integrity": "sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg==", "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz", + "integrity": "sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ==", "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "license": "MIT", + "engines": { + "node": ">=4" } }, - "string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" + "node_modules/unidragger": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/unidragger/-/unidragger-3.0.1.tgz", + "integrity": "sha512-RngbGSwBFmqGBWjkaH+yB677uzR95blSQyxq6hYbrQCejH3Mx1nm8DVOuh3M9k2fQyTstWUG5qlgCnNqV/9jVw==", + "license": "MIT", + "dependencies": { + "ev-emitter": "^2.0.0" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" + "node_modules/unlimited-timeout": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unlimited-timeout/-/unlimited-timeout-0.1.0.tgz", + "integrity": "sha512-D4g+mxFeQGQHzCfnvij+R35ukJ0658Zzudw7j16p4tBBbNasKkKM4SocYxqhwT5xA7a9JYWDzKkEFyMlRi5sng==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true + "node_modules/unload": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/unload/-/unload-2.4.1.tgz", + "integrity": "sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw==", + "license": "Apache-2.0", + "funding": { + "url": "https://github.com/sponsors/pubkey" + } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "styled-components": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.11.tgz", - "integrity": "sha512-Ui0jXPzbp1phYij90h12ksljKGqF8ncGx+pjrNPsSPhbUUjWT2tD1FwGo2LF6USCnbrsIhNngDfodhxbegfEOA==", - "requires": { - "@emotion/is-prop-valid": "1.2.2", - "@emotion/unitless": "0.8.1", - "@types/stylis": "4.2.5", - "css-to-react-native": "3.2.0", - "csstype": "3.1.3", - "postcss": "8.4.38", - "shallowequal": "1.1.0", - "stylis": "4.3.2", - "tslib": "2.6.2" - }, - "dependencies": { - "postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" - } + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, + "node_modules/unstorage": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.17.3.tgz", + "integrity": "sha512-i+JYyy0DoKmQ3FximTHbGadmIYb8JEpq7lxUjnjeB702bCPum0vzo6oy5Mfu0lpqISw7hCyMW2yj4nWC8bqJ3Q==", + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^4.0.3", + "destr": "^2.0.5", + "h3": "^1.15.4", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.7", + "ofetch": "^1.5.1", + "ufo": "^1.6.1" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3 || ^7.0.0", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/functions": "^2.2.12 || ^3.0.0", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/functions": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true }, - "stylis": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz", - "integrity": "sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==" + "ioredis": { + "optional": true }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "uploadthing": { + "optional": true } } }, - "styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", - "requires": { - "client-only": "0.0.1" - } - }, - "stylis": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" - }, - "superstruct": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.4.tgz", - "integrity": "sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ==" + "node_modules/unstorage/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "synckit": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" } }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==", + "license": "MIT" }, - "thread-stream": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz", - "integrity": "sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==", - "requires": { - "real-require": "^0.1.0" + "node_modules/usb": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/usb/-/usb-2.16.0.tgz", + "integrity": "sha512-jD88fvzDViMDH5KmmNJgzMBDj/95bDTt6+kBNaNxP4G98xUTnDMiLUY2CYmToba6JAFhM9VkcaQuxCNRLGR7zg==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@types/w3c-web-usb": "^1.0.6", + "node-addon-api": "^8.0.0", + "node-gyp-build": "^4.5.0" + }, + "engines": { + "node": ">=12.22.0 <13.0 || >=14.17.0" } }, - "three": { - "version": "0.169.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.169.0.tgz", - "integrity": "sha512-Ed906MA3dR4TS5riErd4QBsRGPcx+HBDX2O5yYE5GqJeFQTPU+M56Va/f/Oph9X7uZo3W3o4l2ZhBZ6f6qUv0w==" + "node_modules/usb/node_modules/node-addon-api": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.5.0.tgz", + "integrity": "sha512-/bRZty2mXUIFY/xU5HLvveNHlswNJej+RnxBjOMkidWfwZzgTbPG1E3K5TOxRLOR+5hX7bSofy8yf1hZevMS8A==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } }, - "tiny-invariant": { + "node_modules/use-callback-ref": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==" + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } }, - "to-buffer": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.2.1.tgz", - "integrity": "sha512-tB82LpAIWjhLYbqjx3X4zEeHN6M8CiuOEy2JY8SEQVdYRe3CCHOFaqrBW1doLDrfpWhplcW7BL+bO3/6S3pcDQ==", - "requires": { - "isarray": "^2.0.5", - "safe-buffer": "^5.2.1", - "typed-array-buffer": "^1.0.3" + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } } }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" + "node_modules/use-sync-external-store": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" } }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "node_modules/utf8-byte-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", + "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", + "license": "(WTFPL OR MIT)" }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } }, - "ts-api-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", - "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", - "dev": true, - "requires": {} + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, - "tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" } }, - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + "node_modules/uuidv4": { + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz", + "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "dependencies": { + "@types/uuid": "8.3.4", + "uuid": "8.3.2" + } }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" + "node_modules/uuidv4/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" } }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true + "node_modules/validate-iri": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/validate-iri/-/validate-iri-1.0.1.tgz", + "integrity": "sha512-gLXi7351CoyVVQw8XE5sgpYawRKatxE7kj/xmCxXOZS1kMdtcqC0ILIqLuVEVnAUQSL/evOGG3eQ+8VgbdnstA==", + "license": "MIT" }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "node_modules/valtio": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.13.2.tgz", + "integrity": "sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==", + "license": "MIT", + "dependencies": { + "derive-valtio": "0.1.0", + "proxy-compare": "2.6.0", + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + } } }, - "typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "requires": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" + "node_modules/valtio/node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, - "typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "node_modules/varuint-bitcoin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-2.0.0.tgz", + "integrity": "sha512-6QZbU/rHO2ZQYpWFDALCDSRsXbAs1VOEmXAxtbtjLtKuMJ/FQ8YbhfxlaiKv5nklci0M6lZtlZyxo9Q+qNnyog==", + "license": "MIT", + "dependencies": { + "uint8array-tools": "^0.0.8" } }, - "typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "node_modules/victory-vendor": { + "version": "37.3.6", + "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", + "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", + "license": "MIT AND ISC", + "dependencies": { + "@types/d3-array": "^3.0.3", + "@types/d3-ease": "^3.0.0", + "@types/d3-interpolate": "^3.0.1", + "@types/d3-scale": "^4.0.2", + "@types/d3-shape": "^3.1.0", + "@types/d3-time": "^3.0.0", + "@types/d3-timer": "^3.0.0", + "d3-array": "^3.1.6", + "d3-ease": "^3.0.1", + "d3-interpolate": "^3.0.1", + "d3-scale": "^4.0.2", + "d3-shape": "^3.1.0", + "d3-time": "^3.0.0", + "d3-timer": "^3.0.1" } }, - "typed-array-length": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", - "dev": true, - "requires": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "node_modules/viem": { + "version": "2.44.2", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.44.2.tgz", + "integrity": "sha512-nHY872t/T3flLpVsnvQT/89bwbrJwxaL917FDv7Oxy4E5FWIFkokRQOKXG3P+hgl30QYVZxi9o2SUHLnebycxw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "1.9.1", + "@noble/hashes": "1.8.0", + "@scure/bip32": "1.7.0", + "@scure/bip39": "1.6.0", + "abitype": "1.2.3", + "isows": "1.0.7", + "ox": "0.11.3", + "ws": "8.18.3" + }, + "peerDependencies": { + "typescript": ">=5.0.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", - "devOptional": true - }, - "ua-parser-js": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz", - "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==" + "node_modules/viem/node_modules/@adraffy/ens-normalize": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz", + "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==", + "license": "MIT" }, - "ufo": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.1.tgz", - "integrity": "sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==" + "node_modules/viem/node_modules/@noble/ciphers": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", + "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "uint8arrays": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.0.tgz", - "integrity": "sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog==", - "requires": { - "multiformats": "^9.4.2" + "node_modules/viem/node_modules/@noble/curves": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", + "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.8.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "node_modules/viem/node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" } }, - "uncrypto": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", - "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==" + "node_modules/viem/node_modules/@scure/bip32": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", + "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", + "license": "MIT", + "dependencies": { + "@noble/curves": "~1.9.0", + "@noble/hashes": "~1.8.0", + "@scure/base": "~1.2.5" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } }, - "undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true + "node_modules/viem/node_modules/abitype": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.2.3.tgz", + "integrity": "sha512-Ofer5QUnuUdTFsBRwARMoWKOH1ND5ehwYhJ3OJ/BQO+StkwQjHw0XyVh4vDttzHB7QOFhPHa/o413PJ82gU/Tg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "typescript": ">=5.0.4", + "zod": "^3.22.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "zod": { + "optional": true + } + } }, - "unload": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unload/-/unload-2.2.0.tgz", - "integrity": "sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==", - "requires": { - "@babel/runtime": "^7.6.2", - "detect-node": "^2.0.4" + "node_modules/viem/node_modules/ox": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.11.3.tgz", + "integrity": "sha512-1bWYGk/xZel3xro3l8WGg6eq4YEKlaqvyMtVhfMFpbJzK2F6rj4EDRtqDCWVEJMkzcmEi9uW2QxsqELokOlarw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" + } + ], + "license": "MIT", + "dependencies": { + "@adraffy/ens-normalize": "^1.11.0", + "@noble/ciphers": "^1.3.0", + "@noble/curves": "1.9.1", + "@noble/hashes": "^1.8.0", + "@scure/bip32": "^1.7.0", + "@scure/bip39": "^1.6.0", + "abitype": "^1.2.3", + "eventemitter3": "5.0.1" + }, + "peerDependencies": { + "typescript": ">=5.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" + "node_modules/viem/node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", - "requires": { - "tslib": "^2.0.0" + "node_modules/wagmi": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-3.3.2.tgz", + "integrity": "sha512-WPHuWnEOWpOTko+P9f5pR22y7Ozjq6nJse79uBOk3j6ke4ipbGCzJtXfdh/QGQzYHQTU+Iv5HXjiYeabdjdvaQ==", + "license": "MIT", + "dependencies": { + "@wagmi/connectors": "7.1.2", + "@wagmi/core": "3.2.2", + "use-sync-external-store": "1.4.0" + }, + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "@tanstack/react-query": ">=5.0.0", + "react": ">=18", + "typescript": ">=5.7.3", + "viem": "2.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", - "requires": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" + "node_modules/wagmi/node_modules/@wagmi/connectors": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@wagmi/connectors/-/connectors-7.1.2.tgz", + "integrity": "sha512-L5ATHwEjJCWOm/tRWAyQ42hFpe4UrrReqQT8pMEsM+A29CkJxEm0n7/C2Ki7O1hiZ2D/n5emp0s4MfCFe9pdwQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/wevm" + }, + "peerDependencies": { + "@base-org/account": "^2.5.1", + "@coinbase/wallet-sdk": "^4.3.6", + "@gemini-wallet/core": "~0.3.1", + "@metamask/sdk": "~0.33.1", + "@safe-global/safe-apps-provider": "~0.18.6", + "@safe-global/safe-apps-sdk": "^9.1.0", + "@wagmi/core": "3.2.2", + "@walletconnect/ethereum-provider": "^2.21.1", + "porto": "~0.2.35", + "typescript": ">=5.7.3", + "viem": "2.x" + }, + "peerDependenciesMeta": { + "@base-org/account": { + "optional": true + }, + "@coinbase/wallet-sdk": { + "optional": true + }, + "@gemini-wallet/core": { + "optional": true + }, + "@metamask/sdk": { + "optional": true + }, + "@safe-global/safe-apps-provider": { + "optional": true + }, + "@safe-global/safe-apps-sdk": { + "optional": true + }, + "@walletconnect/ethereum-provider": { + "optional": true + }, + "porto": { + "optional": true + }, + "typescript": { + "optional": true + } } }, - "use-sync-external-store": { + "node_modules/wagmi/node_modules/use-sync-external-store": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz", "integrity": "sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==", - "requires": {} - }, - "utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "requires": { - "node-gyp-build": "^4.3.0" + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "node_modules/weald": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/weald/-/weald-1.1.1.tgz", + "integrity": "sha512-PaEQShzMCz8J/AD2N3dJMc1hTZWkJeLKS2NMeiVkV5KDHwgZe7qXLEzyodsT/SODxWDdXJJqocuwf3kHzcXhSQ==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "ms": "^3.0.0-canary.1", + "supports-color": "^10.0.0" + } }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "node_modules/weald/node_modules/ms": { + "version": "3.0.0-canary.202508261828", + "resolved": "https://registry.npmjs.org/ms/-/ms-3.0.0-canary.202508261828.tgz", + "integrity": "sha512-NotsCoUCIUkojWCzQff4ttdCfIPoA1UGZsyQbi7KmqkNRfKCrvga8JJi2PknHymHOuor0cJSn/ylj52Cbt2IrQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } }, - "valtio": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/valtio/-/valtio-1.13.2.tgz", - "integrity": "sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==", - "requires": { - "derive-valtio": "0.1.0", - "proxy-compare": "2.6.0", - "use-sync-external-store": "1.2.0" - }, + "node_modules/web-encoding": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.5.tgz", + "integrity": "sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==", + "license": "MIT", "dependencies": { - "use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "requires": {} - } + "util": "^0.12.3" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" } }, - "vanta": { - "version": "0.5.24", - "resolved": "https://registry.npmjs.org/vanta/-/vanta-0.5.24.tgz", - "integrity": "sha512-fvieEbHy1ZS23zrcX+topzqAgA4Uct1enngOEWLFBgs9TtOf6RDFOYatH7KSVdrABzQDMCQ5myQy+nTSZZwLzg==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "victory-vendor": { - "version": "36.9.2", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-36.9.2.tgz", - "integrity": "sha512-PnpQQMuxlwYdocC8fIJqVXvkeViHYzotI+NJrCuav0ZYFoq912ZHBk3mCeuj+5/VpodOjPe1z0Fk2ihgzlXqjQ==", - "requires": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "license": "MIT", + "engines": { + "node": ">= 8" } }, - "viem": { - "version": "2.37.5", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.37.5.tgz", - "integrity": "sha512-bLKvKgLcge6KWBMLk8iP9weu5tHNr0hkxPNwQd+YQrHEgek7ogTBBeE10T0V6blwBMYmeZFZHLnMhDmPjp63/A==", - "requires": { - "@noble/curves": "1.9.1", - "@noble/hashes": "1.8.0", - "@scure/bip32": "1.7.0", - "@scure/bip39": "1.6.0", - "abitype": "1.1.0", - "isows": "1.0.7", - "ox": "0.9.3", - "ws": "8.18.3" - }, - "dependencies": { - "@adraffy/ens-normalize": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.0.tgz", - "integrity": "sha512-/3DDPKHqqIqxUULp8yP4zODUY1i+2xvVWsv8A79xGWdCAG+8sb0hRh0Rk2QyOJUnnbyPUAZYcpBuRe3nS2OIUg==" - }, - "@noble/ciphers": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz", - "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==" - }, - "@noble/curves": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz", - "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==", - "requires": { - "@noble/hashes": "1.8.0" - } - }, - "@noble/hashes": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", - "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==" - }, - "@scure/bip32": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz", - "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==", - "requires": { - "@noble/curves": "~1.9.0", - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" - } - }, - "@scure/bip39": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz", - "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==", - "requires": { - "@noble/hashes": "~1.8.0", - "@scure/base": "~1.2.5" - } - }, - "ox": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.3.tgz", - "integrity": "sha512-KzyJP+fPV4uhuuqrTZyok4DC7vFzi7HLUFiUNEmpbyh59htKWkOC98IONC1zgXJPbHAhQgqs6B0Z6StCGhmQvg==", - "requires": { - "@adraffy/ens-normalize": "^1.11.0", - "@noble/ciphers": "^1.3.0", - "@noble/curves": "1.9.1", - "@noble/hashes": "^1.8.0", - "@scure/bip32": "^1.7.0", - "@scure/bip39": "^1.6.0", - "abitype": "^1.0.9", - "eventemitter3": "5.0.1" - } - }, - "ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "requires": {} + "node_modules/webauthn-p256": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/webauthn-p256/-/webauthn-p256-0.0.10.tgz", + "integrity": "sha512-EeYD+gmIT80YkSIDb2iWq0lq2zbHo1CxHlQTeJ+KkCILWpVy3zASH3ByD4bopzfk0uCwXxLqKGLqp2W4O28VFA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/wevm" } + ], + "license": "MIT", + "dependencies": { + "@noble/curves": "^1.4.0", + "@noble/hashes": "^1.4.0" } }, - "wagmi": { - "version": "2.16.9", - "resolved": "https://registry.npmjs.org/wagmi/-/wagmi-2.16.9.tgz", - "integrity": "sha512-5NbjvuNNhT0t0lQsDD5otQqZ5RZBM1UhInHoBq/Lpnr6xLLa8AWxYqHg5oZtGCdiUNltys11iBOS6z4mLepIqw==", - "requires": { - "@wagmi/connectors": "5.9.9", - "@wagmi/core": "2.20.3", - "use-sync-external-store": "1.4.0" + "node_modules/webcrypto-core": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.8.1.tgz", + "integrity": "sha512-P+x1MvlNCXlKbLSOY4cYrdreqPG5hbzkmawbcXLKN/mf6DZW0SdNNkZ+sjwsqVkI4A4Ko2sPZmkZtCKY58w83A==", + "license": "MIT", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.5", + "tslib": "^2.7.0" } }, - "webextension-polyfill": { + "node_modules/webextension-polyfill": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", - "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==" + "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==", + "license": "MPL-2.0" }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "license": "BSD-2-Clause" + }, + "node_modules/webrtc-adapter": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz", + "integrity": "sha512-TbrbBmiQBL9n0/5bvDdORc6ZfRY/Z7JnEj+EYOD1ghseZdpJ+nF2yx14k3LgQKc7JZnG7HAcL+zHnY25So9d7A==", + "license": "BSD-3-Clause", + "dependencies": { + "rtcpeerconnection-shim": "^1.2.15", + "sdp": "^2.12.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } + }, + "node_modules/websocket": { + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.35.tgz", + "integrity": "sha512-/REy6amwPZl44DDzvRCkaI1q1bIiQB0mEFQLUrhz3z2EK91cp3n72rAjUlrTP0zV22HJIUOVHQGPxhFRjxjt+Q==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.63", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/websocket/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/websocket/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { + "license": "MIT", + "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } }, - "which": { + "node_modules/wherearewe": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wherearewe/-/wherearewe-2.0.1.tgz", + "integrity": "sha512-XUguZbDxCA2wBn2LoFtcEhXL6AXo+hVjGonwhSTTTU9SzbWG8Xu3onNIpzf9j/mYUcJQ0f+m37SzG77G851uFw==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "is-electron": "^2.2.0" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, - "requires": { + "license": "ISC", + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-builtin-type": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", - "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "dev": true, - "requires": { - "function.prototype.name": "^1.1.5", - "has-tostringtag": "^1.0.0", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", - "is-finalizationregistry": "^1.0.2", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.9" + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-collection": { + "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "requires": { + "license": "MIT", + "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", "is-weakmap": "^2.0.2", "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-module": { + "node_modules/which-module": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==" + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "license": "ISC" }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.19", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", - "requires": { + "license": "MIT", + "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -20714,50 +28667,189 @@ "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wif": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/wif/-/wif-5.0.0.tgz", + "integrity": "sha512-iFzrC/9ne740qFbNjTZ2FciSRJlHIXoxqk/Y5EnE08QOXu1WjJyCCswwDTYbohAOEnlCtLaAAQBhyaLRFh2hMA==", + "license": "MIT", + "dependencies": { + "bs58check": "^4.0.0" + } + }, + "node_modules/wif/node_modules/bs58check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-4.0.0.tgz", + "integrity": "sha512-FsGDOnFg9aVI9erdriULkd/JjEWONV/lQE5aYziB5PoBsXRind56lh8doIZIc9X4HoxT5x4bLjMWN1/NB8Zp5g==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.2.0", + "bs58": "^6.0.0" } }, - "word-wrap": { + "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" }, - "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "requires": {} + "node_modules/ws": { + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", + "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "license": "MIT", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "license": "MIT", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "license": "MIT" }, - "xmlhttprequest-ssl": { + "node_modules/xmlhttprequest-ssl": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", - "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==" + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xrpl": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/xrpl/-/xrpl-4.4.3.tgz", + "integrity": "sha512-vi2OjuNkiaP8nv1j+nqHp8GZwwEjO6Y8+j/OuVMg6M4LwXEwyHdIj33dlg7cyY1Lw5+jb9HqFOQvABhaywVbTQ==", + "license": "ISC", + "dependencies": { + "@scure/bip32": "^1.3.1", + "@scure/bip39": "^1.2.1", + "@xrplf/isomorphic": "^1.0.1", + "@xrplf/secret-numbers": "^2.0.0", + "bignumber.js": "^9.0.0", + "eventemitter3": "^5.0.1", + "fast-json-stable-stringify": "^2.1.0", + "ripple-address-codec": "^5.0.0", + "ripple-binary-codec": "^2.5.0", + "ripple-keypairs": "^2.0.0" + }, + "engines": { + "node": ">=18.0.0" + } }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "license": "MIT", + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "license": "ISC" + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.32" + } }, - "yaml": { + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "license": "ISC", + "engines": { + "node": ">= 6" + } }, - "yargs": { + "node_modules/yargs": { "version": "15.4.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "requires": { + "license": "MIT", + "dependencies": { "cliui": "^6.0.0", "decamelize": "^1.2.0", "find-up": "^4.1.0", @@ -20770,82 +28862,146 @@ "y18n": "^4.0.0", "yargs-parser": "^18.1.2" }, - "dependencies": { - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } + "engines": { + "node": ">=8" } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "requires": { + "license": "ISC", + "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "yocto-queue": { + "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "zod": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", - "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==" + "node_modules/yup": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.7.1.tgz", + "integrity": "sha512-GKHFX2nXul2/4Dtfxhozv701jLQHdf6J34YDh2cEkpqoo8le5Mg6/LrdseVLrFarmFygZTlfIhHx/QKfb/QWXw==", + "license": "MIT", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } }, - "zustand": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", - "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", - "requires": {} + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zustand": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.10.tgz", + "integrity": "sha512-U1AiltS1O9hSy3rul+Ub82ut2fqIAefiSuwECWt6jlMVUGejvf+5omLcRBSzqbRagSM3hQZbtzdeRc6QVScXTg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index 57e7e511..293760e4 100644 --- a/package.json +++ b/package.json @@ -9,49 +9,68 @@ "build": "NODE_ENV=production next build", "start": "next start", "lint": "eslint --ignore-path .gitignore --ext .ts,.tsx .", - "lint:fix": "eslint --ignore-path .gitignore --ext .ts,.tsx . --fix" + "lint:fix": "eslint --ignore-path .gitignore --ext .ts,.tsx . --fix", + "format": "prettier --parser typescript --ignore-path .gitignore --write '**/*.{js,jsx,ts,tsx}'" }, "dependencies": { - "@emotion/react": "^11.11.4", - "@emotion/styled": "^11.11.0", - "@mui/icons-material": "^5.16.7", - "@mui/material": "^5.16.7", - "@mui/x-data-grid": "^7.13.0", - "@mui/x-date-pickers": "^7.2.0", - "@mui/x-date-pickers-pro": "^7.27.3", - "@rainbow-me/rainbowkit": "^2.0.2", + "@account-kit/infra": "^4.81.2", + "@account-kit/react": "^4.81.2", + "@chainsafe/libp2p-noise": "^17.0.0", + "@chainsafe/libp2p-yamux": "^8.0.1", + "@emotion/react": "^11.14.0", + "@emotion/styled": "^11.14.1", + "@libp2p/autonat": "^3.0.9", + "@libp2p/bootstrap": "^12.0.10", + "@libp2p/circuit-relay-v2": "^4.1.2", + "@libp2p/crypto": "^5.1.13", + "@libp2p/dcutr": "^3.0.9", + "@libp2p/identify": "^4.0.9", + "@libp2p/kad-dht": "^16.1.2", + "@libp2p/keychain": "^6.0.9", + "@libp2p/mdns": "^12.0.10", + "@libp2p/peer-id": "^6.0.4", + "@libp2p/peer-id-factory": "^4.2.4", + "@libp2p/ping": "^3.0.9", + "@libp2p/pubsub": "^10.1.18", + "@libp2p/pubsub-peer-discovery": "^12.0.0", + "@libp2p/tcp": "^11.0.9", + "@libp2p/tls": "^3.0.10", + "@libp2p/upnp-nat": "^4.0.9", + "@libp2p/websockets": "^10.1.2", + "@mui/icons-material": "^7.3.6", + "@mui/material": "^7.3.6", + "@mui/x-data-grid": "^8.14.1", + "@multiformats/multiaddr": "^12.2.3", + "@oceanprotocol/contracts": "2.5.0", + "@oceanprotocol/lib": "5.0.1", "@tanstack/react-query": "^5.28.4", - "axios": "^1.8.2", + "@wagmi/core": "^3.0.0", + "axios": "^1.12.2", + "bignumber.js": "^9.3.1", "classnames": "^2.5.0", - "date-fns": "^2.30.0", - "dayjs": "^1.11.10", - "ethers": "^6.10.0", - "express": "^4.21.2", - "jparticles": "^3.5.0", - "leaflet": "^1.9.4", - "micromodal": "^0.4.10", + "ethers": "^6.15.0", + "formik": "^2.4.9", + "gsap": "3.13.0", + "it-pipe": "^3.0.1", + "json-edit-react": "^1.29.0", + "jszip": "^3.10.1", + "libp2p": "^3.1.2", + "myetherwallet-blockies": "^0.1.1", "next": "^15.4.8", + "normalize.css": "^8.0.1", "react": "^18", - "react-data-table-component": "^7.5.4", - "react-day-picker": "^9.6.3", "react-dom": "^18", - "react-leaflet": "^4.2.1", - "react-paginate": "^8.2.0", - "react-query": "^3.39.3", - "recharts": "^2.13.0", - "styled-components": "^6.1.1", - "three": "^0.169.0", - "vanta": "^0.5.24", - "viem": "^2.8.14", - "wagmi": "^2.16.9" + "react-toastify": "^11.0.5", + "recharts": "^3.3.0", + "uint8arrays": "^4.0.6", + "wagmi": "^3.1.0", + "yup": "^1.7.1" }, "devDependencies": { - "@types/leaflet": "^1.9.12", + "@svgr/webpack": "^8.1.0", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", - "@types/react-leaflet": "^3.0.0", - "@types/three": "^0.169.0", "@typescript-eslint/eslint-plugin": "^6.21.0", "@typescript-eslint/parser": "^6.21.0", "eslint": "^8.57.0", @@ -60,7 +79,9 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-promise": "^6.6.0", - "prettier": "^3.3.3", + "prettier": "^3.7.4", + "prettier-plugin-organize-imports": "^4.3.0", "typescript": "^5" - } + }, + "packageManager": "yarn@4.5.1+sha512.341db9396b6e289fecc30cd7ab3af65060e05ebff4b3b47547b278b9e67b08f485ecd8c79006b405446262142c7a38154445ef7f17c1d5d1de7d90bf9ce7054d" } diff --git a/public/banner-how-it-works.png b/public/banner-how-it-works.png new file mode 100644 index 00000000..e823bb78 Binary files /dev/null and b/public/banner-how-it-works.png differ diff --git a/public/banner-video.jpg b/public/banner-video.jpg new file mode 100644 index 00000000..8cd17962 Binary files /dev/null and b/public/banner-video.jpg differ diff --git a/public/banner-video.mp4 b/public/banner-video.mp4 new file mode 100644 index 00000000..ab4560ae Binary files /dev/null and b/public/banner-video.mp4 differ diff --git a/public/build-the-future.svg b/public/build-the-future.svg new file mode 100644 index 00000000..d5228274 --- /dev/null +++ b/public/build-the-future.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/circuit-left.svg b/public/circuit-left.svg new file mode 100644 index 00000000..5f32b4f5 --- /dev/null +++ b/public/circuit-left.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/circuit-right.svg b/public/circuit-right.svg new file mode 100644 index 00000000..ac309485 --- /dev/null +++ b/public/circuit-right.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/circuit.svg b/public/circuit.svg new file mode 100644 index 00000000..0d5bca48 --- /dev/null +++ b/public/circuit.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/favicon.ico b/public/favicon.ico index 312003c6..1c503839 100644 Binary files a/public/favicon.ico and b/public/favicon.ico differ diff --git a/public/fonts/SharpSans-Bold.otf b/public/fonts/SharpSans-Bold.otf deleted file mode 100644 index 20dddac2..00000000 Binary files a/public/fonts/SharpSans-Bold.otf and /dev/null differ diff --git a/public/fonts/SharpSans-Book.otf b/public/fonts/SharpSans-Book.otf deleted file mode 100644 index d692b870..00000000 Binary files a/public/fonts/SharpSans-Book.otf and /dev/null differ diff --git a/public/fonts/SharpSans-Light.otf b/public/fonts/SharpSans-Light.otf deleted file mode 100644 index c5abccd7..00000000 Binary files a/public/fonts/SharpSans-Light.otf and /dev/null differ diff --git a/public/fonts/SharpSans-Medium.otf b/public/fonts/SharpSans-Medium.otf deleted file mode 100644 index 7b409599..00000000 Binary files a/public/fonts/SharpSans-Medium.otf and /dev/null differ diff --git a/public/fonts/SharpSans-Thin.otf b/public/fonts/SharpSans-Thin.otf deleted file mode 100644 index 7585606d..00000000 Binary files a/public/fonts/SharpSans-Thin.otf and /dev/null differ diff --git a/public/fonts/SharpSansDispNo1-Bold.otf b/public/fonts/SharpSansDispNo1-Bold.otf deleted file mode 100644 index 4fab5b8b..00000000 Binary files a/public/fonts/SharpSansDispNo1-Bold.otf and /dev/null differ diff --git a/public/footer.svg b/public/footer.svg new file mode 100644 index 00000000..66e6ee05 --- /dev/null +++ b/public/footer.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/public/globe_how-it-works.mp4 b/public/globe_how-it-works.mp4 new file mode 100644 index 00000000..e57dbea7 Binary files /dev/null and b/public/globe_how-it-works.mp4 differ diff --git a/public/icons/x.svg b/public/icons/x.svg new file mode 100644 index 00000000..f00db0a8 --- /dev/null +++ b/public/icons/x.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/chevron.svg b/src/assets/chevron.svg deleted file mode 100644 index e2841539..00000000 --- a/src/assets/chevron.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/copy.svg b/src/assets/copy.svg deleted file mode 100644 index f5143e3f..00000000 --- a/src/assets/copy.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/assets/discord.svg b/src/assets/discord.svg new file mode 100644 index 00000000..29cfed58 --- /dev/null +++ b/src/assets/discord.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/download.svg b/src/assets/download.svg deleted file mode 100644 index 51a339ef..00000000 --- a/src/assets/download.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/error.svg b/src/assets/error.svg deleted file mode 100644 index a0c592ff..00000000 --- a/src/assets/error.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/favicon.png b/src/assets/favicon.png deleted file mode 100644 index 23060f36..00000000 Binary files a/src/assets/favicon.png and /dev/null differ diff --git a/src/assets/icons/box.svg b/src/assets/icons/box.svg new file mode 100644 index 00000000..2e0a80ad --- /dev/null +++ b/src/assets/icons/box.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/credit-card.svg b/src/assets/icons/credit-card.svg new file mode 100644 index 00000000..91097391 --- /dev/null +++ b/src/assets/icons/credit-card.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/globe.svg b/src/assets/icons/globe.svg new file mode 100644 index 00000000..8388d410 --- /dev/null +++ b/src/assets/icons/globe.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/gpu-manufacturers/amd.svg b/src/assets/icons/gpu-manufacturers/amd.svg new file mode 100644 index 00000000..01b4ccb6 --- /dev/null +++ b/src/assets/icons/gpu-manufacturers/amd.svg @@ -0,0 +1,10 @@ + + + + + + diff --git a/src/assets/icons/gpu-manufacturers/intel.svg b/src/assets/icons/gpu-manufacturers/intel.svg new file mode 100644 index 00000000..f04ff001 --- /dev/null +++ b/src/assets/icons/gpu-manufacturers/intel.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/gpu-manufacturers/nvidia.svg b/src/assets/icons/gpu-manufacturers/nvidia.svg new file mode 100644 index 00000000..ae65b09a --- /dev/null +++ b/src/assets/icons/gpu-manufacturers/nvidia.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/ide/antigravity.svg b/src/assets/icons/ide/antigravity.svg new file mode 100644 index 00000000..a046b6b6 --- /dev/null +++ b/src/assets/icons/ide/antigravity.svg @@ -0,0 +1,2 @@ + +Google_Antigravity-logo - brandlogos.net \ No newline at end of file diff --git a/src/assets/icons/ide/cursor.svg b/src/assets/icons/ide/cursor.svg new file mode 100644 index 00000000..1f8a7c33 --- /dev/null +++ b/src/assets/icons/ide/cursor.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/ide/vscode-white.svg b/src/assets/icons/ide/vscode-white.svg new file mode 100644 index 00000000..8ea76324 --- /dev/null +++ b/src/assets/icons/ide/vscode-white.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/ide/vscode.svg b/src/assets/icons/ide/vscode.svg new file mode 100644 index 00000000..72bdcde1 --- /dev/null +++ b/src/assets/icons/ide/vscode.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/assets/icons/ide/windsurf.svg b/src/assets/icons/ide/windsurf.svg new file mode 100644 index 00000000..01040c06 --- /dev/null +++ b/src/assets/icons/ide/windsurf.svg @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/lock.svg b/src/assets/icons/lock.svg new file mode 100644 index 00000000..8f587d78 --- /dev/null +++ b/src/assets/icons/lock.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/play.svg b/src/assets/icons/play.svg new file mode 100644 index 00000000..800a6c3b --- /dev/null +++ b/src/assets/icons/play.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/shield.svg b/src/assets/icons/shield.svg new file mode 100644 index 00000000..a48ff989 --- /dev/null +++ b/src/assets/icons/shield.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icons/slider.svg b/src/assets/icons/slider.svg new file mode 100644 index 00000000..6d333fe0 --- /dev/null +++ b/src/assets/icons/slider.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/users.svg b/src/assets/icons/users.svg new file mode 100644 index 00000000..1b325d38 --- /dev/null +++ b/src/assets/icons/users.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/info.svg b/src/assets/info.svg deleted file mode 100644 index 4b0eff10..00000000 --- a/src/assets/info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/logo-nodes.svg b/src/assets/logo-nodes.svg deleted file mode 100644 index f2ad95a7..00000000 --- a/src/assets/logo-nodes.svg +++ /dev/null @@ -1,8466 +0,0 @@ - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - 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 -uSw8isa39K1DTqNGdkiNPS9/u1YfPNpN0rqWKM1p7ayazMq9XXKdH436jp2puh3esa9eo7not5Xa -ncncNPuUGayzSIfOnMn8G3d9zIwVWddWL++sIZ7Pmsm9oU8rT5m5Miq6zUM8ZS9zuU7aQ7d1e7bM -5q7PtixNd4+WSU1SskOaZvGOlbHd3L2jVMeH1vXuwTLXXNpaXD21eu1W/qCm5lkzaK0l2800Vk61 -EtmWpnm5zpops8zSk2bs/26t7guXTp3JPNLXltm39eiZtRnallD3ZBrSj575rdaRpvnsGcujPV4P -nanF88o87TGaujXfjytNVp688u3d7mwllp2fuavezfR5jMaKdbUtUjy+NJjns2h8eOwO71QaMx7V -Tl0a9J1CY3nNtV1cPGtp7J6n0NzSrs4qz+g4jfdHd0tbdt6fQ5Oqt77dOzpZaYy2zjHXdJ6W9ENr -zIpubdE2zy2N1Sierer5GkzcM5+zj4461eqHNG1nT/u2Us2Yviy01W3hfa7S7FFPpkmz1d2m01jV -Hlujt2S1c5RIda6DZFM3Rby10/xqp27woNNopZ5cs5pYdatYd66SbsfWJCrmbfWs5yyNldLZNegb -fZt4dlRvVP2zW1LDc+vXSk82mT5UaTTPzt3UFt3tsUqTN+Yq05Pn27NpiupWu0vjPD22xtdMNMLE -m2PlE++mz8o6RjbmXTtamtvvsRsXKp3tlffkD6ox3i7aGmGe3zka+6Rmi2l+/9ilbbXWTmYaXPtZ -M7elpmWba+eGT4Oqd3ymjIu11rTzTaMuPXhGqU5tZuJxmtqjmsaOTqm5EeFr1/VzmubUe7wmrX8t -JtIxvXm9SWarmcb07qQazSvb1vU7m2nuio6lMbpWzQ73x2hel97jNPt7y7a8epxp/sxzzdo8dnPr -6uI5THOndegmEfE2zDRrsnNrXpuWdU5TjR1qrs9qHrpRKt9rz1oHNY2V1ZaerniUbGoPU+8s5m3S -Wn9FeWybNJ98Szc6r3TAoERItAMGpYIAKFABI0EATBaEChg7WEgQQcQpMBwUQIIJEA8WRIACAwmA -ccCghKABIoKBARIYFhBYgLCAAPHwYAGBiIcGLJiF47BgTw31R9+DqWpMZ/K1NE9taYODNL1Kh1TV -GLl2dWntkJY2WBM+U9fnGhi8vu7y/TrlBg4YlAeHsV2rMqsd2qIyvsTSqspDeK+fIQ== - - - 2l6HjOUGpnDNaCM6Lk1r4IBBmVABY6YuNNz6saqaI72d+Pu5LG1gFGkv625sYO52Rz/lYp7boOY5 -8z+p/WgDk3hjnurp61g1cMCgRDiMjeHdyTpDk4t4KOtm3GDtU6Wt4zXXx2lDpmh9dKiBBg4HDAqi -aaaVVyQzXVzjMaFJV+rdsbMpxCLVXbueNK9d7ilLPaPk08tXKZ6bzS3h6c/qGXsaWt7ZqCnZ6uat -x6ilqYumP7pn9pxYeRPV2bPZk2qdrLb3XemLdrVuj+n5HNqU7Z53n2dK8+q80eYs66t7zzrXM6uu -ovw67yjaWG9aPbX3vaL8HdpRpC3VVBuqpupuuc7tmdPcw1sxz6qN1VHXiz7+/Uhntdvqrqod75kr -uzr8avkYj1DP/YzRYi3e0Opg2hRlIuqWFU/9NvOON+EdShvTzTKd/4wGP6ed6ZBW8WAVXWaZTddM -m51Pf7bIMs3wkHxuNsQ7aWU+osVEw1zz1nnpPt8uu/T5MsnyeXZZOm902etE65XZ0Ie+l51uUSp6 -7a40JuYRnX5W+k4TURrNdZQn0ZiqJp/Xx3der8eIehJLz2apAwZlwtGOKpJ69eB5tVbLjp7XzlV5 -n32ndqv9yavbfZVfI7ofoh194Lvr6pCV3a8KyezuVD+8o8sBg2IBPNbt9fqN5YBB+cA+i66Oqq70 -tPOrXF/uHmddndWt3Vjlq9MVKdbxSk+5PoCcFi3wgG6PzwGD8gH7HPokYqd06ezYoVYdW/nYVzxK -Wed2eE5pkYxKyfZe7Z27/d7BxCXEc5qnP6p0Ltd3Tq1a+zyZtu25LPtxXg+P2iG8K/KdRNOq3/Gi -kQ/9vGZqamT/a9c6+MOiY1fSo41fff52kqXrUHkvz5CsxlxCl5Fz88p5vbWDtuTvplU+aUl/lHjQ -SIpmWXirXXWHWZtYTyqXqfT0RD4pPV+VabO6p49J09Zn74BB+cCl2TmybVQrUvWVv1dfHkxn3cHU -1OuxOse0U3lKeZ5Zv5+9rk3HMr3Kd3qTbX+Ex3q1O3g1U9VROq1N1fqt3d29NP+qQzpfIb2qNF92 -wKAgrtXN49IeLOcX8S7pbKsfPOfTfEpneedn4qXlPXXx6q38ofX05z3DJKQyo1T0dTP3metVzDTm -4rH0repVfs/fI+dPV/GcL7SZtNa3u2+lomJlapoOyUl651T2ofG+aY0+I0Nc3633U+UXCY9Vpc/q -XGq+W6nuMSt7Vdl5VdJi2t2qNIte97vpZFXdzb8lUx9ZGdYdrbIv7e5UdbLeqRLRdGr4ssAL1amm -dHpcu05UwrtXF4vwRnSUdXZIRv/4zkJVK+0m/nTzkDq3juz26yxtp5t6uiee1FhEdPha197h1w4Y -lAc+nhGv6qokxfP0DU15RdehYZ3pplNVfbtXeJ/taL2Gqja836nu3WvuMSp7ndJdhWufXIfWveuJ -jlGZ6CqPXXfXyWiv1F5Fd/bKmKWnruqWWbl3WW1V1elePFfVFeqtC2/movMqnzDx0EWrVHq5ever -xLMurbIk9N1WV3Vfql00BwzKhFfVDW9rfG1e0q3ZqZ2Xbw1M3upeWVRWI3zet4pUe3Bd971V7193 -+PWp7GWJpfa9inhSu/L66pd4vKpTavusbO1om8ucNzRa2pHSm3SrWffewfQWnmnROU+6egr9Qyqy -O9zzc1pV06mXmnir11yIeNukk2q7nr0dMCgTbqq9Z9GeV7kK9Sp/5/fhyfCO10QH1VmZibc6nXiz -wmPq63+4ajVeifbQTVS2OlWpHDAoSPrsMOtZel/1rXRR70rlXznTvuhyUjnNhc4z3nMrqb53v6u6 -VMQ7urCQbveqyruztMpqq/Je3jpJpU/LvRtVYdnQzEt490sPf7/3TGVTH+699HmMyrYrvS+V6t7i -ucq+UzVVG48aFe1u1/YwCa9Qjc7K6Jxa97rSjP/aQUwsU638USvbwV11A7M+3Eo9nf0VmshSL23X -i/k6aKgNjNMON+tbmruUVsIGJnfzjD6tyt/p7vV1rC691zylYZll2eWzU5btec9uNDqL9bxb2rGq -jD47VeahLDusLcMsrTykZYn32Sv3DmX9ioz2xDIqqf0Kse5+qz3xePZqsfBq7ej10SufretO/7o6 -d6W2aLpbqdW+V3+qb3TlPVqV2iHd0QqtfrxdVmhaq/vq0tmqCocwHEBYRDAsLlhAwAEFCvCLS8f0 -0p8lHSXbu+856b1peT9ly9tj/hetX8o7ZUyfz7nOVIvUqqRHm/Tr2ls9npum4V7tUq3wFm/VxrWT -zxdTnat5Rl3jEi2eXFzK39lVshMtIuE6Ke+EVEe4aiezvX3mzfu7o0Ei1Sz75ZGeXz08ZUZke5T2 -++5zf6y8t/qXpWl6z03JeVa7t2g0amhEP8bCfTkTT8eyf0u6ZXlSJef5Lzplt868VfIdO124Sbh7 -JzMVz1zWVdvxpvqIlHZprz3nBsZE9M3C39nnaCsRka4yr6fKiA0MqhnW3nSjVIO29D1qzz1iA7Np -v6raJvlsNTDV4Oc2ERsY+/FPK8SYGtmnSaiVarZE5UuiH8P7/iqj3qpFJ5pN69UzzRbLVO2qeSev -jOTb1UjHdKa4lyb9opaW7/CViVs2PJpoinbrhqiIa6+0OnZl7psabhYai9Knrowl0fr+ytvx9HeL -aka0dlaYaD26Mxr5TuU7ZmXODtNwccnM7tD3y5v1VuNq5k/uvfe51X39uhPi0asn/KKqnVJ6Khrl -3Xd219s9VmWUTKm4h5vHEk36dWSz3L0JuFtUEhDAkhEZkur+Uov2pFobfK/Hyku7Y+bdwPHgnNrx -b65zVyeZPonITk1GC/H8uj/4PFad3rLoFBlMq9kdpL1xrVerO3bp6fxzMjcsK73+8JwQF9P6+/qU -TdlZ1mPGsynp7bgHvahV1h9+j/nIEJGKvoh4urZb0XCvaLireLZ4iIpGeoaLhYt0O7V4XMrTg4u2 -aFt4atH4fGHtXYhrvRpz9+gqohXt4ve6p/KKLJ+IRGhqWabd233qZqrRfu9o0NQS82k2uvY0Pf8S -5prNnunyeKnHhlZWzJ+WHjSf3qrdviyXNp/l2kstmy30EdmZU/Pk2rwke0lRT6+1iWWzarO8XUpz -q+Z606knKZ8umzv6lU3Junkrm0y8VNWTlreQUtcWMeusZTlgUCwwH7V/rP+xBw/oftLymGHi2UKj -6qnfrS2d7q3d2d+S6dreTlFhblk3bTwnRKV9rjPtoHHX17VzZ9WpM+vuVFtHl9E1/rd6+VIiyrv5 -gZ6t/TbVRag3Ud3t/a4/lTkqofcQ80l1VtPzh5enyqxs33N7mtIsU1zFH11aKq2l/I9tERK9Vmv3 -pKbZdJ30luSDtsGypsHXFun1LI/aJvM/2+qEJcws27vbqbTAAjbvTS1zqRavSPa0Wr3tmrWbL7xF -3NPZVjPtt5Wuls538oknk8+S2lt59om1iupDT5edtmjzaEu2M9tjOmBQPmBrv12tyHbHqjsd1Sn7 -Rd87atYpKtyivM2MqOozO3qbOvXq/S7xJNVp3e6uulvjPW2pdyrjyeljt5JemcJ9qqYv0VpHVyad -8ItmJ6DvqNTQrfJpGEYZMsggVSZhEwAzEsAwKBgOCEUDkgmF4n0UgASAckBuTjYSx2ORgGyQOcYM -IQAEAABEAABgRuCgAFevLOF+jEDbQTmipVYF2YArHgN7oiRvTWTOgcz4B0bqkci4R0aFOXEOoiMQ -360B8kb2Tss9C/QCOP/4WZcE2qKWut3qW+shsuwb31w2scuicHsx5bGAvtiwbphJOWghwRcG6evS -YJondN+dsFGPPm9eqxA2GFrS7sUrI0m+SZsYGLMiMm+iqLt3f81oUXQ7agpjzMotAU00QDkA2GLR -ZYyvNklYkAezEEN8PKuCnJVxPMhktfpUajiY2E7g1AJeienYQhS5EoVVtvogdlBlPvonSWD2dCUS -Nl6jyXUlttV8CwpXIv7/0dSVmJ0+cWFlUM9R7vMRBElYNoXiGTggoEOgrsQAZwBT8u3XiU9HGnSf -CPXhXhELsR+G5Vpm1bt7q252MQET09l6f4OLyyK95glkLfHwR7zJa5mirTICDvTKS/4AZvxtRyAR -A3fLm+Dcqw+Qt0tFqaNM0ZGiice5TJxI+vhELFSAYygwAJaZTedC/VugwqB4bwmsmM+2LSZ/4o4A -vQBHO+3qQQ6DQbBnX0WlUZEciHkp02KeyyD8i1ZcV1ASjPmhbX59lrz0OaOdRh/IrAUuKX9MLSsE -u1vcMvkSxODaWJrbJb6cbjSxO8nZu9gPtHxCkC5wU8qO/l186XWQjdKysbpElkzh6V3EGtgKs16T -he1pUAGjol3E/EpcwlqDTMYyczqRYjOuMg2mhwDYswi0fD9wCRThi4ugOqEvXjy42SKbNCTE5qQm -tj/lVhwOGaCiHNf7FYx+y4Do4sz9w/uJgx6jaBbcZDyFOLhpx45SQhdP6m4gzbDKL3GGpotzulgF -qAF7TiWgI/bZlOYxoJlpT+bNA8QXH/qLC14EXGWjl9YmfHELcGXkCvCe9xraqmSL3RaYtbOw92qT -cshmE/HrqEI9OlYVEQxRH5fV7lcxeBHQtsOxMeoahpUZHiYlztDYDiteP8e2qHbaPEtw9XPme58I -s5hULFemCtGHWlaCjJEPZzZXbjjsnUyFM+lV1LmxqJ5gDN2TNvAkaIWrYaefP4yGiuoZy2Zga2cd -ZUCAKehkIcMoI6M1/5qcNFzBaxwqAy64xi0MYmjt3i4whLXttACn1VKucDvVKKkg6dRiFAXwRo1Z -EyR+2rVJ4H3Txl0ELDCN+SCsobRsH7iINC7ugE+j4eDA6USbpAaCDC1hYWCUoBFmQex9hiYFdukZ -nUqAb2cSD0HLOZPaAXhwRiINZNtmo1mARG9TRgJrlhnYNuDQMBsnAWS7TGMBnNSyvQgAUyvLal9M -pKCc6pyTI0EfsmxBJVYMzoUaEXTYASwJ3fNs4oIffeyAXxF4AwqwxaEzPKCVZF8kzjAOkOd7Tnui -WHqMRJTChR2P+giqdWGI/wDAfIjAwa3oOApDZMsWACmcnYxyQhDAroTOAAc3mgrVI/DORDgLqB5J -KBptAEh6AMpfBW64VN/j9IKK7aeNQojzD1Rktd+7YY2XX0+CgibRnboBysmHDQOuB39bfhHoPv12 -Bc/2UvH4uK5P1ahmuj0an8znKbb9qMsaS3U3cjh1euLilLnIYMIw3uOC38O0randn9qlebd/PEZK -BnCWpz+H+3VebLnvV3V9w2WghujB3SjNxf8oE+pN4D7UqWxfLZr5FHG64srR8gZ55H1h/ShH9twa -fm8zxUhEQKWGHqOrcvDxrfq3fGf3yGQpfXYnZQf4wE0SXDYe80XIjLbr0ThRmcoHmVbAQ3l821kb -z2LFHb7YRVKwHqHInZLjYIBZUpUUDFZHstFAUHToFgb0AqDr1T+lxINX+tU7HDCxTw== - - - WzUdRr7sj5Et98LyYhgAFhoKIyZ5gqIY8XiZBAz0TtP6hNoOmx+x7jo2czh5OqRm7ErPWW7FS62c -SI/gzNUde7jjw5EnA8z/TcoJReItjw7EetwipMCQtUGYwNZjM/F/NHCN/PQLohrG6Vt52tHhqTak -iWq9PoEWaXnjdDZ5OE89M5Pd6oFllEwvTvYU0uR//eVjvKJc0sWm3zCqSfweJuB369ZgqdV2DGAL -wWJQfFm7agnxoijSLKILKTrT5bdeqWSiteTm2JXZk0hvIA37JF4le8SduFDSqu+UxiGzm2KJ0ylE -k7wOpXCNIs2iEJkptKmnFcWrs2PpxJ6cw4lYa5JDE165xN2XHp5BoaUIgxRVSmuWwaRJsocRrQKJ -YieEhCO0KRDNGH3wntIUeWE5d0L0TDY6Zci/m9GL0MuFMVGQt+NCkoCecRV1+fGAk6r5PEGJuOzx -UyIO8zwLkOnveMEOZGTndzUqRceTXygs57MqDBqO7ymRy5v3ghg5pI9uWP6aX7ugLDV+HgFCNH/O -YFOa8XIH+iTzyAHGG+knBuQKM0L4nSDZ23JTdmGpraZzC3BAjWiWwyeO+cpCdRjpKpKuyiGnMGez -4EaZuuNQftLxg6RuwkRcEGAyp3tn6X1bGHNBkvhJUBnZ5NGWXkZES3q6Tsic30R+IhCviQeBMrzp -s1CuodrdUQ+NlFBCY4fKDOEQXlqBk7LRZh9VeNHoxrmiyWAyHh5yEapsjCorrxfKCf0Vf7GVjo1d -CRL/ld6KWGokyyaJ2awlzVKAQL3VLI20dPiKyEf/kCcdlXp0oKgRgNFvL9LeFPf8LenVJHKjyxTl -WnkxA4B4SZo6t/F34BVuJOrLb/Evg+eBmfSmr8IwYQxEYX/Xi0FGfqQeTvmxXE2U/Eb/kMlJuFbn -q1pMzhrZ/3HJvN9XAg1G44seRp+2znub7SwLmvxD45h4QrnRgc/2GZuZwHNlSMudfSOSkJG3wM7M -8yRO6TOTDX7hv6No47PAYM9MxUCSnntqCdYQx7o9pjbmqmCNbq6z/RsLODOi4PXMrNJLaW/8qWPm -cxiZiJuRugiYyyF0bubFaq5cIz4CGV/EhOFlTnTvl+JlwvYQtgO7xJEFc/paio+EkAW4VC17x4DN -s3ChJLhsiMxgHsqr2B44z+S9i05aC03podVmzb+IF5q86jQTTe6B/5xaUxYC6FVeAf6j2UCF0HTx -38TjB4vJqXTpugetGQEYqh+HGq9HS0iMsNvvmMcrZ6fU6OOfXNY9k1useyPkOZO9CaU46lIytf9N -EXqmb2Mmyiaci8AXcKmEE/5P3XMHnKBA1nMAW+M0D8c0Izm/dcuJRLYxYljVJqiJMgBEYXjfdCI9 -cfXbiuUoBtm1nLZYVUcAZqbYWmAJUemwgRcEmHrYybR45iiUgCY0M7jNnqXyP2e8gWxKXphzM1ma -Zt3P2fYljMCMNS8ewPRyeeqfscLdYeeMQRPOezHkF5/zoA/TP/ucyp1p584fdPY5ERHIrpq45Y7q -TG7yO0yzBqsW2RVC+GAypoN6Q0N2uRDzotGcmXDdOhGpK/t9gSCc5bTZoMgnooxteVsbGjG/SLjJ -sSc9IsaZLCukqdg60Bfj5HRvYgZjnA2KvjQEEpU+dV/Yo1LpqslTinEuXNx/rGacLYahPQp4Rulg -apuVDcbC2t6f34WixeLlVR19OHHxH5mHc1c+Az+PeI6tcjBO+ZNrgJDzPhgNoJkbDzlVNXu+5iGn -CGucy7x59Euhqb/EAwg5naicausVuxnQLajUz4ejr8p5V2aMiTMG8gzQJAbqI/+wT/RzYwei2Q+6 -KAuPvi8O691ApC8HUA9a5KwSba22OYnmjwPuLVaOT/SNklWP1Mex13ew87j7TDghiWWcnFqdwAhB -bljGqU+FYh+7IxNWAaEPB8SZGrY4EKdpMk3qvfLZfiVDnO/6f1ug5uK7e6eckZPocQS5mueVkwQS -US7MDY7cnzIp6HTIKegNVmwKTMAWhhaPc5Pk7oONra/tb68W19D7RvP419RClMOHX2r+t+YsO84I -cBYh7XDLDG2ws2AGidMXWxZPJV0ocdaaRRJnVbXOFJWbSpyormbiFbJZuFDRCmd1tRNOnG6YTQWh -BUPusFzzEFdznGnhrvHPwNrEJNE+pBe7L668gCs7ThD3A7S8cE51nLop6OrAeQohHScNg0zjb0bH -WeG6ccsWGqIcG3Sc9HCW5SnL7CtOx7WiUTUuWwXrOFDmoDtDhlOpXXht2KnLcI52Mzy/q+xxRpSj -ONHupjKKh/mhCooEu/3b1LSuMimlCIuJnKzzJUlxlrD2Foqe2VGcA9VT2K9INztOJT9WqOM8D/sG -bzucHaeLXEUbkhWHl6J25NaV3nScNVA6aTqaKw1YHe/FwfsDaer5zivXT6c5DyZ+KdQ0WpiGqXm1 -MlgxGEmFrGBR6NserOlpDU6xyRB3QbFm5LamID1pki6nm2s+i7fYHs2FXnMHrEIEr6lKBiIE8poe -epoMfs3kT5W3XvOWoVrP9poIUiO0Niqjfs1OQrJeM51nGwOp5I0tqX9NsGNt+yu9ZhXcusp6zRzE -IVW8prpNLRvAplw6htmGiM2nfhTBxWYtqDmd7SRCWO7HZq0endqZXrF5dl+FatuE4889WBdSEynk -ARxxllIzq75MbvPrjnSoU25CkedFMJJ/k3piTxr3jdgThFvGIcJS+f2yDi32VHYMwMSeeuMyoJc9 -wSJ/Kt4ENXHNnsZaSWie97S49Y7x/cUsPIk8EHfPh0W0kJjzANZc4vN1BfMTHtuG+ASAsoOQzXrs -ic9oT5b+JfEZXT+KC+IT5UwEE59KesFKsje1gPiswYnSC8SnaHKwcQyfGdqbr8NnCYEOsF7rHJ0P -wW74BJcg3Ls5fLKYL/tl+ASHT80gLHzaw1AQQOHTN4iiF+Gzi9ZQsgX91rmnjTWVECRo4fPV1Og7 -ck9yUpiWL/fEHwqVJMFKAz4SyyU3YL/YKwjpHwFdE9wEB7pGnALLiTwHbhsfYhF2agw+4HbYHsUw -4EZtkmqRwFlf/7ENMk4EGxLZaHwWwA11Y5tKNXcPuKVDzPj2HvUL3MQN+jb8/MpNeNu55eVHnPJ4 -m66+Dkze9gbfUO/f0iZw2/8iJncOLzduE13ScFQNS7jtjm3aTeE2BB4TnbeRquPMR95GT+v7uI2G -gJWn6G1/4232rTBwc2UQ+ituu29x62UUtx9J6LDZFLdHEUoSUtxI+vg1FbcoS2cWR1D0VdzWDd6y -WHF77rZIlxjzEK+4dcc/qFHcKOJyEyPkhCi43Dgct9sOKZQ0MWhVM6ioSS6QzBt3XLKDri0QLsOG -XG4V9vgcDN6MITstBT/4PbyaWtgrjhHrNQ6gftjSwge/7vE+GB5EolbVUmtZAra2dhADZxucEFOV -4M1n0DZlHBCvaa+JTJZrx9cOwV5iypShlM6AbNAKIAmqm+7ELmLTjMx2pIjSd+aJ7h7uuaXMzIAc -4FePhlpIIs1CwF0GQXf4Ev/JFA15WBgW+JKIgcbWuPCYVyD4stKngZ+eJG/9OsAmqcQbAZtGAcz/ -H//JN7nz97KA5/roEEQoMn/uNFTbEVgHrPOWJgMW4r3UGKRAZaPJBL/iK/jb7Yxm0j06B/4c826L -yZEV+tQKTgFBTUSnLySEwSDZhqTN74lDfQMh+AuDK2zneK03W3Q2iXsWF3xn9Pvg2kG9Lt0ORsao -SYqyhwwjTKEtxNZcN9K05CgPFDiRbyWhLbVnHokQTSsaKFeuZRK20cwkzjFrZrgmqBC0Mp9M9gbW -gMUGez0B/RUb9wUy0wedKQNmju00s0w4FG628mJSZXg/bjbz0t+ZCZvWFQG/oHuGmcwg82wHvUrp -bGdKkvdT4y6F/Lfp/iOivlf/84gjPJDNphs6EnxIkVhKn7cyNhqISgGTSEcb8G6lrj7q+bTMbhkh -2csuMUppEvZ+dOtv6HsQ9QXkY5VMEn5IwI32AqlWteJb8XsiKQhEqYM2Uoc2+8ECRzqKNBN4r/Fc -2+Qf41gbHQuKieLJ+FGEqnaYb6wTj1TI8Q5pzHvNTfF3FM8FsTDKelBwvYFYhWqK+DGHp1BmfNcj -XuASIYFZi6h1qu1aHm41uRUKPco7QWJPoiUwmERlAZC9nkJdOUF0NeT5srvv8CXysziIcReFDGMR -6Pgb4j+EYyup4x6Od4Wjy/GO0E7KAggVmY07LcCBWrCoLON9WNhRfUUEJ5Hq4aLRtFBdC5GJqvH/ -9kFqQoqu54C/gVkfC7DVyBuQfzK3HQDvUAmeOCMShSp62SsB7FhFThlUMvVqKACIKzwaoR4XjYq0 -OfwNE67FATkcJcSo4k2HV3h6Vwxwi+r/JuTvGDQa6Yj/W6VZfH25kJJzL1fq+1Scy1OL+hQcSSGq -NSHzXL1I50Vfnt7ixEM0f+VmmoG9h/udTWvMfYxYNr20+vPIFWzvk1mk0oWDfL5LxR0rRS7u7fTi -1UN6UiJQf0CHoMfOHhi0cB8rN5mu3Jo3J9i6RrGNH+1eULRU4F+RqTC32hPL4FGLvFt1drYgkd8A -+wngX03wYOdciNsEc8ANmQ/GQG6K6k44LH+Fp00jGwxqBL9rcWWdYNLghBapXSzF9POnhB9JTM1m -wy0QB7OiCtD7tLCRVgsd1C3XtZPoqOQKOWTEEV6QoshzlQmtdVA5m3Yy7rIOUqE45OEy4FjFlR8O -IpYAJPSI+oDUmEp0/DtDvQitFf5F1EKCJdKxMSrPuXYEje7dSYRuDjALswYT0LtSlEB5+brKyC9P -kl4ClbzrsywCx1RHQRE2UJgSaKpjk5uAvDZJbEZ0SZRTOTxNAOoCKwhbcQCS3QYWCsfKw529mOUh -OmQyVlFJqJEbQN6S5sX1pEvDwzZk33Pq4YPB+0IIxXI4q82jsV3u+QVy0dQhOOm4WOWpqS/64pFB -eUfq20RqRXdDW5QSmHVmjWiaVYVM1wLl5k0SxEGBBLHVK2huxVen4Wdg52zF6KQksTO+68Q6XCgn -xJXjdHKxGy8hD5eJXbCSsx5Eb+uSMcv0Hvp4quxLzIYIE51IiuqK9qPamXkZfo1Xiu9QSmMD3N1z -e9I90VBfZQ7ePWFAibKD+tP/D9TP2ZUcRBulnoJWzW8/cuSdGrk2XWAwgrK2g/Q2mqmspWEY/738 -wLkvxUzy1/MjEUnpfVA/Zb68M01dzVZzKmd0LMOpYClXaxDQDYRhIbzLF/5YRrKMh9HTDGq8BXXm -8/4DzJ/76oQDQy2VMAHR9o6DI7WuUMFWHw+QA5/AcXhAn1BxA0BgvHSt+zFeQJB7f0TLdv4iNcns -sk9/l4RUS1sfUsHC8ws3H5+oxokDRN9ivJmcP5N2eKmGz1YL/t26gGvawJlukWFnN0asdXYy7NB6 -Ke8ldsZzoxcTOjeOFsx7YQvJfCSQofTqRzCurAZoR4JoEZVtyghYo3gvScHmKsj9Zw== - - - I+MUIEHeqItSmc/VxF7f5lnjNILwTKtfEXss/W1EVEnSGDcE40aLTogbE21P4CkUTo5AVARWtT8I -6+st+8CFvGJzDwzpKmkeboIry3fYja2A2CEhWm9DB3ey8iqHQYQ1xXBgytUVbziPVTe2gQ2pqnwN -fUKVGTUINBWhaKhKUtmaAamoLijDPEIVZwwJ3VMDhYFUTgP4ghU1paYLOgnTeraQlaUOZYEdSkW7 -wo0k5cAKREKKBSpU5+g2UkAxjO4DBcsnSpATdCCK0ITIZ2jXlsAPoakkITeVUUe3UsHDQLIV7a29 -DDiEid6RZrHrnWONS//tuY3rowFPc3Pmy+goYbEm4uAl3wpJElytaxTRsTpiGrEfDTkx0LlmK3rZ -/Eg5qQVsiZBuxfcEpIkpIXsX2Cd3BMd5yUSyznIpEtC+qlGR9QibeDVoQWB9AqUPpyUR345oHlAE -3nhRHMqhIXMxAQgDxkOpUBZbCCLtFAhpAF8TriiCOIsIJoTI9vCX//ZlQ51+d+QLrQPOwCeQUDQf -grDw/c4UA6G+Dn4EOhOqUAXCV49YFgCs+kCunzTZ7gXj/HFd6x3tNbnkx8vM163OOb7rhiguuR5Z -C7t6nvQB40oOVIR/Y3CGmWk0d1KrGZPtISHaVLWKyxRC+nknGfHzXN9kd3WgGTAMH5zM2I3o+BxG -FfSHLwnGAoCj4OhJOjlU1yiQ9DH6bbSU1xBrWLlpa4shbnRKP7ItC2VmrKlkoOs7jX6pg2jtYRSk -yEGeOVuW2sqftdSUlbtZtEwouJaW2Zq0q49O81v0vDydeXGg+XQyEPeNLKWf0goREio3RsXpxxAy -Bny/bb1n2gDnw/8zGj95sMDVU5IsVFeKc6nzuGI1gr3GrckbCXCqg3OpaZVXcwgEaTPLasWk/RcK -uL6oRK+9IK5SC78Wini+0rpiLWFummNENlXvpLuUbyLxaR8POzGmePKYtJVDOkbD2h9F9tKyQJsW -8kErmBTy30tMfXJ9NgnjDd6zjsPDFFRx4zf1n/pf9rnMAJcmNZmXrGY1d7DEb8mV+W2OghIVzmTu -Q2J4QryXjFgm1KEQuSYrI7h/aR4LzUMafEniWzTR6Q6oWxR4hwV14QrncRC217JtA+kWu5xkEGoE -/7nX9Dty79j7xO2/Sxz2rjVzBQP9bEw9wfLkNuCMsG3Lq21jglgCeYUPRBTLzLYQ6yMH7ypW58zg -9blzXcALWUEzjVPyFLYgt/FsZtjfoOFTP9TMPFHbIjZVSeeSFRfoQIsN/nsuuNfGCyOoc3nQnFxR -eYoNGDgk/5HUeEZGHnKJZDNIY/afxlTN+Uowf+Z0Z82Wp4ks4vgMSW/7wcjbkk+z8Q8uDmVuutgw -YgRuOd3gWgq1gJ6Z6e0QTTSuHIpiqOCuX5IFFvlgDYzM3mB7/38Z5ioqKca/cz9nIZsARweV94uG -hJ+dbxBezNOq1IZULFNt88gXmQBSqp+2xHLbESLUI/nai/1Ta7t9RKnBdWTWwlOWCHYpCBD7h9rA -bAvrhOiFjMCmM7JPOEEDIL1FBIP6XAz4AgFrJqiPaVjPPWE3udQQ8VjJEXwgk284EYEyvozGwHJr -h4vWaoBECv0Sbv36gg2qRVZ00hvqLJM2ENE3usVbXRNBTz0n54VlBPHWVxFwixjYswgcTsgjW5oB -j52UPQOZ3ZqRYdW+vYasmHj0GPGfGvBsF+0HHNPOtJvUiWTFgaQKsF9ymf0h4Tup9wDC9MeOCcAN -jMeg5HK5bWBzwC/GI+xTgPqgF5F8LVzPoSW/q4WcM8AQ573NvlNykYTmCjGvy+KatiToPxYPqbyc -nJyrUY07HnkOgvy02D8X1vFQQOOjdfHW2VqgPSsmusVOnYhkq8HBgshPsiGSqBCj2Fyi9kDsKnUU -L4JWSkHMCTh0CjT5+xZotwu/6gXKk4rz/vF4jjCHvosy7r/BN883wI9qo8NSoS3Op0vSrOsgpBbI -cu2CXzzWSAm/wNzk4PDcgmbRj2D1mazcKC7Bu1SVTbhmB93dEjLRJolkSIA42Agikawy4A+6fX67 -W2AOdtxSCUGy/k4+s6uwXSI/jIzjdLfIoVYUVoUjaEyd8sz8j3D6ojRTgxQLqJiuU8VUVvaF5iCG -y+rcCcoscrvIIY5icWPrMsWLxmFAxuacJtKIB+f/AO+Dtxnr/ot4OkwIfq1P3G8Tm84F2u2wjGNh -N0ixhbepGYQ/rEbOToQdJvmA/C86iEeiUHWzO7fTweOWdlyWUArocj2PKrMqKRpzIrKtbxj69QJV -pbL4cwi10Yrp7EFMIAbijiw4egm/AT4RgnUW5drQEl51bajvywfZE91B3XbLQNHfKTVfx20AJFj4 -IyW5QLMpqMYcYvemLnR+WrE0PA0s3oICsn4DzQCQOCcDYJ8sWOGYGRVAMZbI0oCyaNlJAlocarvj -Pl9MCj7GJ64x/QVzi3o+G4JJwGE3ZfuncubDnUxpeimUxWyLgZdalX4aV2GAcS8I8KOrop8gB560 -Ua8CyaA1Z77M9AC/CnUYCFgM32RKWaw7LhO71FK0SLWu+rWB9++OU3xK3Hd/NxUO7SbQEb0Kti5k -m6CCO/dMdYDN3F/fjt0648YSq5jIkNi1UIcoKmwabkQNnWgG5fciycAc2V+ZvdjddFeux/w/rBay -Avu8yYJVq2V1QuQ1rVfnAqwWkLEsyGzkp172llEj9gJ1fy6zIE1VK8FaWjCnhfXLJ2/apv5pCGtU -7B8Zj8w/kaCN8vlDKlpjOosDV1QSNtCziALBJVqsQS91O27UBcjEwJBmGO4PcYj9398/6e/6PLTU -mY1e7YZuCIBX5T700NqYB9rRt0ubcarTaIhmYB3lr1mXK0a+xYbhHNdRUxeFzNkSK4ZBHWh+devd -u4MMPhEwPvu61saYe8hlsdqiOw4nPpx8lArpeccZaSZoCZ3e86iRwX2HfcOLJUXBBUMSOSkZm9Pd -lyfheOXjnxUVae1ToZdYoVPilxPFoand9AugWxlniPY8KgHqc3VF93JNnZ3fiIcxaHFO8/gBV5A2 -DBfHn7+3bcqO2AiMvnRfF8a/WdQohGpU9zv5V2OZ/xU3nXfTil8tRpHroUZAaUbKPp74vrQJjbW5 -6SbpJnwxhUs9nQjG9QPmGzfRV7BEZH9bZH7SQiGNYglbgUYuXZ0yo1w+usOiAAgcghFZ5kVwOCPg -B7fLn5DzBb56LUBtq1A9Lf/BKRwY82U3DawXTFn26B1PAaFHyuJm9RdMdkH1cFQrDfcFImqRilD3 -k4XxuBwqYtvqnXgm3Kqkx/x30n7B5KZGL9dJA4Z/XJn/6z+XfwJ1H/QiofVAq0YrSltZEPM9I+67 -vbnSg1YmHLry+Zp493BMc+kRYatA5afeZR9Za38PGTT7KI6CnC+8dZEVdYp0uCEUQy4IOB2WN7f7 -w4oLi4rjuDkjGmMe3srnggKixzJua+OHXstt5ZSVPXxgG0dM2Eo3lvu/R0tgPQBHKjWkq6tgSVTI -Vw06AXQQ6kHiRMShHqujHygOnRT/1Gk+hS5GKeiqw7zX1YKRRgnXdQD1Y0tpF6GlCTptdL62qHHQ -D8LETngBYiArAi48jARiM8jvY2+rXvSjB6Ad+sYS1N0mO921slM+jlxkNmArb6NBnvZzfYSc8Kbb -+ijaArMLSTJ45tDY6EbIiLIgb4HGgVIBoqkjXv1z19W7CiVt99upo8GRlW0/tcctzoZZ4PLad8I8 -nKkwSvmaVq5k5goWkvleX3fQ1UrPz1BG5Azz8aQVB7jszkA7Ba1U3C+hSVuZiBx94C589ZoHpT7X -Iih20aC4aOX9tKDwjI7Kgtn3T4zcTxzpBREVHgCD5X5HdFBjhhcg1S6tUM1qVM9QaDbxcQfHu6rN -euL9NOmz/iMFIbTvbuQkWXc0IjRXWmhhCDVk2J0xmaihgMaFTFKilKAr1qdsiNC8BQNISvR3xaFh -FQkR7rPto+EJO2dkXwSO+atPalSMIg0mX4oT21oLKN878kW0fobO7+aTUPltb7TEneUaYyDU2KNs -m6fS5inwk4MSfouVVU9UaenVnVtYueBRrIjayhdVhxWCX/dgBJXz4wFtW2347zx0OjLEybcPGRHu -rdtwD6PMx2HrI+x/ZPPAi2+inlPgVwPE7nFTZp8GsIbQOydHWENhC1VXBLpX48HSKG3Pz4bn8s1/ -lZPeS68M0QswUb67o7/3OQJZ8ZBgze7wX7ZUsQBYFTH7HGGUV7kTzyi0++ZumHg+R6Skq5Ao3hCp -oTkijW/Wx3bek8LMplddtOdr0hUFxC3So1PMRTp13b5zyVoRPbCALAX2GNLbmmdrm1JMDE54kE4z -x5+fh2fymQKHH7Hfr9sTZYxvkOkJIswmcbgbYhJATOIV0qPvXOqGD0ze3dquKIHsWcOof25XrvtF -qj5cngtIWSkTkFpAyya27UrMWhp/Oif3TxnNDFcUF5Tf9mqDu3mRr94tBRLsX21cptrQgfWwjVqZ -rehU2SMPWD9gYPU3iefPSyjDiKF+VpmzXuU/8utUrFZTsN/R8dy/Unoop6uS2nZDzj6JhwMyOrHI -/mMXZhNIxOXPJjR8NDkkq1odaSx60Mr+S8xFoXnHfaV3Gn/ACpUCOGQPM4/gQyvliz0+P3XZmICU -ClNxF0hXM+7dJ+o3o/1N2xvwrV0+RrfMxbr2ZHEQAjociRFr6NccelRIu9bQByWe+NDVOkr4OhrM -xKFjdDAvgzY6A1pdZnMgzARgFDMkuB/zcUpgZVeGnpdxN/eF0eeijOHZvVKoPFeE8qGoy+mtGAN1 -Ch3N2ZskzQuLLcybl1dxwotUT/fffF5Sx1QKpdDcUcAxBdkxctL4JlatZWtxpP3IC5K/fsUFqOvN -0cvDFt5BVYbjBFW5xEwLKHkOq/BmejkImR/CrSC+eiKn1sNlVyeuevMsmvTGsjNhmd5fmZsrEG+z -oi5LPN+YHpQAZcJDSTdhyZuw803Y85gZA5x0GH7whq123nHScaGzTeyHSw6TbIlCdPSHqF56LF7N -DzQYGiFDOpMo8hPQQ05385YTVKujZJZm5NZqAN5s83I3tJiqkVcpxV4qLgSAhKATC6RAiux2sFKe -3kV221ERICMnVkHAvF0CL/Q2uEM9ujbZ9B1O+yLI1x7zVor3ehvbKgMo26Xpa2vAbBmAajNvJ78i -ES0QtesQOB5XzvGPn6haUhmevH2gvLU+VeNsgH0rU62SZj2XEqqyazkukdmS7FSoqtp3VBGsoyS/ -6bDNDY1F4BROBdWEp+Kqfax0QIRZmY0IjuZ/uihw1+sC7ku0J8B40MgbD8ti5qnkB5R6ETuvqrvn -gmbKcYLGIsbMJUn+HZa3aVxIW6WfpIS4sZB+xOZwm8xIKav1RfT9+7T2xmjrRH8r6LPWSgm6/Rd5 -+6OX/7OUrzUw04XkgX4W3jYcIAwO3GCDo6gb4ezCtokxuV5wVtz3XAxuSd/3lkEbeA== - - - yS5cgAts4QaSsri0Mh5IwECl/Q8ayIgC05SZLnG/o9YZuDQCL6RHHNjMdCI3RzYLh7tyIQYSNET/ -aVHRiG7Hy66gQKWiF4rFXMc3u8ypmVCaQGRPICgh6oeGCqqUj25RbEngstInz9vTfWDr2AMJ69b6 -ltvs6g6N3ULa/fGlVHmhrqrVmndHivBplQ4Tts1J0w835B0v+p6mBzrPHdN94/UdntaJYmlbo72y -3sNj/69z4RD3rWCnx1yweIvDND3f1rMsdA0NKPIVRbRhrrKUkOZr8Pci0in8AVHY0s9ceZIEKbNK -1lV8H0zLvGPR64ebhop6688j2uFdDgF0wC60ZsvIJaRSDeLYnKyyxZvr0UDnzeFRR/V7rLppvQ5K -ntb73l73YbQy9w5wElsy8Vzv9OOlW/sDd8gJn7xkNZIEa0TucwzqIunr/9IL3t/HYzB0AN+da5iE -NJTU0ycc9LVV7HPA3/9rivUdZ97CcKcARPtB2ANMV5ScP+nfbfDnwQOc5uuItJgJrS34xxOecDBj -sA1w3m/2eKhzUZUlqad2/ArDiwumZLWyE85UtFfCZpGe+p/VXqmxUCgVFz343qd3hBongGcDeqB/ -p5z2mMd633liYIOGSne3i/8xpzZyOd1b7uOhmHdWmX+YQ/tqxONTCS0YBy1xE1r59XkNGUMBeqFc -FsHJ/yt+qT092t8ZxEhZpgO1tpdeux13AJIY2geQoe/vTB6pKSmmX13Pirjq+zKVxCY15igG9bko -5gBHu9+5XqSBab6IvnRRGuLClyigqSu90NRaSVj/nm5MAdWfrHLd08JDd0ecnm0Xs+kYHPCej1w7 -pKZ/k80jTCdIlw7rtmFseqqnP8uizWGnJ346WVYo9jIKkiBGKjitTvdm5TtXtmd3Bw63rRiyjrdu -5m/htZnEIlxcb1c8c3VSSN/Idzm5efWUJtk56GVKC8jatagtOuf7BfJ3FHm9OX78ZiwcdnWjctw8 -iQ4REz2lJs7TAj2E2DSTgSW6Fw9/uPg8x+uxmEa9wqjvmQl24r1qlxJH52Ldw/aVw0k5P5iJkUYw -fYGriJlkbrcwziu5L7lQMMlXDmlvziT7h4AgiDBd/+aCc1OAuCfA6B3ksJPSmXFHMgE1qQf4yBEW -OaNJYMmXO1AGO5wBQcKW6/228+tUA8vYLsvR4wOXTDXBR8yCQolvH2GhFK5ySZbsNQvaNeGRkP/e -ZkUOLdU5cOYLlPW0s36Z2SDKL7DTdH+XzFscU82mQiKcUMGylJ9fayh2UhG+tJAVi6S1qWBWJzDN -WhrMJtBMyz+ySNloFlneEixHG6wxGVEO/B41dzYTGtTI5RZuFvR+9MCM18MmUjED2HigPJZfs8Ld -Z/6ovYYRAqwwWMiFhAawKx7/CLEk13OvHe6glsG2wHBtpdriJ2Q1uX4RXaeQ3/xUr0oiS5OGlhY+ -GmvaV/EkzMlFLnZXuW1yxSvQlFLZpwvzroiqO5WK9gOiqBQFYwytOAwThSW0in0Jf7SKq6t3Ir0V -5e9vJKBe72fGly94JPA1U70d8eHjGgY6t7W1FgmKkzqEKK+ia8jWpZy3Hs2WIbvEXjnPxq+OXyRE -nZGItdskeXWS7iSrq4n0oXYkiamaJAdzJTOpEj5AOuVHFKIcjfL7tkK64unVaYGZGPMv3UIcwbVt -FVT0Uat7A9TCLFXsEccr3c9Gd+Mbkt4164ZlxY4lICMstR/vdC8+ZXtLCcMAX8NfeclcBXA1q20t -INKUnDgB1lLvKj9B9jSG6sO5N0YtyFNQKMKfBZbMeFIDTcCmPkKnZaybiWDQzmmScssZin9zz1nz -sgH72TIhY11GFnlFkqXUS237HCKfbV/kw8Qjeo/T8l/qLjxGlcrUVqlFFbRkDkf2tsbG2ifA+l3i -0Z+/L+cc1YgMchZk7F6ASN49UWQ7xa4fAlQKPZudGCh2MDWZLS/cBxmmWAYmmL4NvQgbC5gxvzQb -d8DmcduTT5DCf6xkmlrlTWDgKegVK9WYab4/THyNmwvlKs5cyg1oktMhOUqnoyqHqbjZ6VHuYapS -yI5khJDHh8khdmOh62krNC5lJQxp6NEyRuj0cAJWEtAMhboCUTE9s25dtdqbRrOu0sk3vY/Qa56c -aEpvMS8avJ5zUB/mLUVzP9YEMeInVp7Ug5ojLB8K6HaIvB8Sp5YLCBQiRJkCmAp5g0MiZeoBDD1h -4loAkntQA7lNCm/qC5+htIidGgKgrySf23YW2eMg0Oek0ufChKqREUpbJmMYwMgxnQ8zsqGSKPVk -pUxGuSLvctZvoMD4XcPSmBPtgawdUyZKJhocnQlMsH6KtwNhg1l21xKduOupAqZOKCk4jR2nA15z -jPQA6VrSJHL6MdPaMhS6jbC9cK3OTFPRCWdBikmsflBrmyodhDuky8W9Iqg0OvN6VuEPIAL3WVj8 -dAepREFEj7xjA4R0FxX3WoZnLL2d0dG/6uVbKD0fa7fNPXpqLOs9m10EC2L8sLahQiRiKPfW1JoS -kVv0dKeq5p3O2ct0BfPMf3xrz8ZHjhhunaTrUTpdKMYp6F/pYG2yAzfXx57px4zN7/K18CHHv+Mn -ZdtuwBNGCpQsEMF3bnvul7nyKE/+p10cGWxX7wxntPVcDfJy4/YOgnsG21oCOqBmN/b/YNS+detS -1raZPI5CAQ2jdEQ+DdP7BfS2sPcvgSi5XIP6ZAHG4BJRxDYsICXbxHxuKPeRRu8/dB/mflkXMJDv -ynyZ3egdjnIMDDTRwRx+ZpWlN04PsRNe5MV5BeNpeh0GfjtgsAld0Pq+v6BaaWYZNKdYALJ86F7W -EjTwdV5mwASOE46aPaCIME5nj8CdovOdeUhAIPpDsPsEOxt3yMElVn6OiXMeBKeIgmP6rANoYMo3 -eE8NCj6IfwbktmndQTf0MDd0uftbBvLqck5BzA0Ts2z7APqqFBzDm4DBbPJvzi/4Ol/sK5B6BGKJ -Lbu1K3LH4rJhAdzKts5QRemQnqKFyMxBWhmx1nqL2fTcPzMRYPn0AlzXRgrcrdhPN7RhVc/NiEhv -mHQnTUFTm06/CIBFl9PSSz/6eCPzeI3/QtNF4fi9QMyJOyE/DTfdM2Yw9VWkwjNyty16DaGix+Wn -QgKZ9fL6cVc66cMR69EBrEeiIZ2MInIWYaAfMNUPacR4SvJQ/2lwGvJMs+z4zEvOiMITApddxze9 -4N44ZM+05rGlDddlyROYA07LTJ7oIIHtXe8owHdGf8dovqcUScQf57IFjy32PSHSlbhy3yUtCWTx -luOD5/4QJ8TDe1LnWYwrzQs2EtkN/DvyXAV0GttwFSdvfCwyC1GeNvYMZqA8/QAT77bDZR2JKffy -XfnDRnUeXauVYbGFHtNk7Y6YYRSRiHIlnJVbQHsx3N8kY4rBfCZdnRj2p3r7VR/P1Y/Q+WeY8gNZ -j0yJ1puiVJvQt/F30yNTcyIgeYwHS0mGo/mPO6OIbSqJpir3Z7rRnz6cmz4ZAzUD/lf4IPBqU24a -jcQ3ZeKP7cpjVfziyOKfuYtv016PqNcxFD27aPRZkW6dM2h0fiyWAz4rI555n0qV+w/Veffvhwx7 -lrF8TnjpDY2CDFxH1D0MHLlksiZoX0O5Wbsb1RkG2YFVIq1er3IeC7/RiON6SdAB9uiMfPFzF0iY -9Xu48FWkj8T1Ry//UL6TVAk0qZT3z4gfJrxP9LWCljFUM9+tjvFWK+63ruutKrNUOAunOeq2TkcD -qx4k6R2fcQOC8anbxd9KGYgbcJBtlfoo3Uoe+GjIzrreL6vnaMycPQ54yF7o/OCDqrTG7pp/dvii -JAHiQZdLt3KkduXIz8cFUJIxls+UOVmF3Uk1cye5RCeJQXYDOImiZzvCLzJ5k4lK8gCO9PMbN58X -fLdSEAJ1BgFkbnx/Gd67qu3t6ZlJ44WLxSXyMW3J4NsQSVsvNuRNBcmiy5xPlmImVdHPDRdYdNv3 -2lsXs0HZHtvh9ZpGBtcs6s09JWEgfYpAgDXM9HzgWzuQinHCMhvRgZiAKaFQmgwKARcWmNEa/rAt -DEFC5QujVO/vIlEs56+4vrMqxvmydSUgfnkOANuuVhM80LJiqymW/SaHHrgCsA304wCsuUf9XADb -EcA0eEEbSqFqTofsQr3GoHxjCctPnzExEjc+vSARSpSWE9pmkBoe9cFqy3P65bcXZVCTx6Aei0H9 -9ikb7epKWF/d0U6JkkSvOugIblb9XfTzbDXlBJA2xKtFZaRufxOJQ7VvK4Pw7DuS0wFwYkCoaZE2 -JfsTEyi+APJb8uAnCYeBYrCdxatp2r6O//y0yT8p7+J8JsxAOKgSca/DOKSwVSxw/ckTBU4KZUdt -zQmqpOLnpV+MmITMzY0YFBvcTaKBThOtduprFLKpQ4YSHcnuy0MThmpFkWTc5tG49Q7zIQ3ajwbR -DT4tF4mOBtf715Kj0b2hlB1YnaelyhrRM15VpN60wteG5RZtBGNEelKflmMnOWZFDlI6FFfLbfOv -NyNdymMUS/+yJxREPYscXcDqzBifzI4wBfOQkSdTCepkyvpmadbNkjNjcv9bjSxj1NzUdPD420n2 -mkzjt6JMZT3/lOY/awBSrkrLyd+zuDDz11wZqm5Ct3nzmMW5uXHI1t9IEbc3hKSXO6JuNPhkOCND -oekTbRVlOznjhGOmiRbR57nMVsE1BG8H+wIpBUi15KNSjIruGE78ccFmBOQ/GV1jcQ4offZxors+ -gsDDGFKVIRVChZIwXwbmDawToixfIYkiVgdE6HBwL40z4ngOp4c4bKyPA8WYVz642HnIXeD0aLrj -5X1JH32x+yYMUxNPZDAD4Lg1gF6MzkI+o+gNke+DH4fEVXm6maBG3QGC2GghGI5sOQev1FDaoogs -/jYprcBWJru3GtkvtqipXOEVd9GxFFn/Fbci/fyPxPWYE6Rotene0kP/hQAeRinFZ1XSxUgUG5Lt -QNONYjf0NNtw5dcABfgZs89J56MBJKFvyEA9V2G2cDBtwvLsyCTFFfQYk836STYCEoCk3651IiO6 -ZNerOdNkHP/xZdNvizSvZKpT/X3U69hnNo6op40ZGsgcJkfEjgIeehTDAeazR164FA5ORDbvG812 -KOtKnT+f/rFGpKn3ZDoOjK2suilMMPJRcQV3o9nSCWsiGfAPpsm6ZWEW7fgdaZfoUDsssalMtGky -QAQGQL9aRU6mitrA2C+1+Gu9ifRV/jgeyCbtZuWV6hcSvVwxM61vO127rjyZ+V0MFoj4y8B/sCeI -YG6lSd/nbQwKrbsOHyfDw2EAcVcVuLvM202NJlV9JtFejkJ78P9sGSGs0p40SkyTEuauZ/N/eH9/ -9++pXn6dogztvomArBPTaRiqrzBjxL761U+B9WbMBN1zEytOu2xRaKZj1YusgdssbwErM6wW8oVP -ScoRdCqCOLQfN2SJT83et2NGVur7x4F88+JYAwnhwCsD977UMJDhCwR3gaZb5/pQgA== - - - DUgYXkL2Y0IOaGdCML5gBgR6005WYUMlNUSCzQ1Y07AGjFRxkAvGQJq/vcTSD4F0MMesQvOOiI/C -dfrP8JZo87SUy0J/HtUqgkWgr5To6MtZNA1Fz3Lo8CXuxEn4WmzTBz1X25xk1sJsQ1zuzk53xuFd -v90d49jXsXPIeH1VwAqqVmgnUVzDU2+r2YRi96D3wmLGBsVA9ic5CE5o3qCc5zaf3oACvXkPCxyF -s643lKdHOgcQZ14xq3VwUBF8ckPHETPANipd/HPNjPHbx4flX2sAeV2QeqD7mH6Q7sV2aInH5PMc -zIu/LMDnGpEEKAstGHDebL+IDHDSAwCm6GCMTppzH7MpASmpSElCSck4gNCtBYVch6XNqbsz0rYz -4faGi5ASWzdSWiBwVuSs+SdMjRwkhJ0JYyprBA8ziwZQoYJ12WBazWKX2HTm03/LMg6qb7anqcAV -2XevfWKsyUzdbpnEPMBK/AoSIi14osCmVWMm0lmEPM82EplL0nhS5ycxIJRgDN/jUcyflJ9Hue/0 -LpraMsyF9waVQc9G1GaPOEAQWxGvxhMCHzNqhVg1I6v3yxjgrEYvVmu2UQoA8huSHKflwQp80DXz -Cb6YFOBXxSwanfounIgPEDqBz2peNHpgafzFTsLtDgDIJcyhh3N5uZXOG/2QAKrPNY3Nb4lsx6EU -4ZCOTPQjJnA8frEvEtVgB0YDXTvML/VsGHmNwHbj9Evwsi+JVsPAwV6CnZ6YTI1ifKLmGaYKLASv -EcE1awQFDHxWN3ZA8KGacVJDAmooOA0HvfJ8iZmDsEzFUBAhI9+r4dYUaPNwKWx6TxW3YG8l948g -w9ILb7uB//mwVIH+F05ynEf3n2altb8TogQgcZH0qESlkiByrKZ1fycS6KWTUqsTmrRTnhRD8EYM -rJOr2pLhbe9ZimbawdBCijrFuEBFiDF+cRjjvGMsCMivG2Nn1cP6L1IabcTjTc0bFPpwKLq/Q0UL -x7OGPSMScMWi61Mkj6wscSMw+9ERkd0QtfO/Z+cYrAXjiCqNyj34Uo09A+OnSDHNmyriX6zn46qB -LpAjoTmWf+1R7mLWCz1PdYV1FFUn/Hd5Yddwhgmr+J3MIRAapo8uf6wYrFCeF1Ux8Fk0fyBKwhLK -FMRra2pJ8ifMA+/Pw5SJkT0I/cx3PWfS8g68XlcWtZzMCnqFxvpY90uoHCPMrnPAAXZrmS1SXRPx -9WGkLHlgw0gu08AhXT2OlWqB6+FYt1+EomnWJaGADcHVukXsSP1dQ0XNtf4cRC+7u6pJqL3uiqiQ -gLl0J7V9BKbr7Zc7mCIQph+8Mwkp68EQerrJ3G6Cq5AOC66ouge3q7qR/u3fqiAD0jx0McmvZPOF -nMnIFmkxr2MhVBxCkNeJXx7C11/ESLt8fiqltVraJ6lUnuVR0/ZQIx38D/N/AgW1/R5A/QhQhMj3 -/k8kIaEDqZN0eyTT+zGLfzEC9EcsmoedzOkYFcPSe7nnKSF6WWzDR3L0tIcsJim9Iu83yIxnzSHp -YPE4ZNITT0yN+uohabkWa5Y9cY9Sk9mkoMfmDD59kBZdjxuCqivB8TAQC4TopSiPIes9+oKhtNIx -wyE+L+kzkr6hye3T5UQKGN0TRZIscllpNa7oWOJPrQ792mVqHPbnp3TqfNpjmbTfU6PBnb7gLp8B -blbSZ/Serv0bUHvq5Zwr0SjEnZtqN1mVoQ3ufgj/ZHrbY6g82CvQzS+UmMrzoztH1fCuqELCRzr9 -t9Oh4CnKm7wxNBMWCglbVESQPYIRTwcPNgiJOrAPgcyRGv96tlzqPPdsoq/BxLpythQ+pE2lHU6l -CQG8XQRJJXQWS5GSZSZktMhUdbkBZJD3pGJJygBK5p0mK+CUZg1RLMz6eSKU/OimhAOZw04dVaJ1 -9M+S0XvvBJUYA7a4ayUzbayBsa7qs3hB8iJw5o3cSRM2m6SUd/uEVRziqBhiFpz0HvdX6A6l6iXV -TxSi70LtUiTbTw2JGOJplYG1am6Sn1z/iu39h30NdfUBCpLZWE0WMIaM26Bn6n6TS7IXELMQ6E7d -3tTXiSqfJ5L0oxwetFhwD+WRSsdyvnLmt3yllpDKYit2hJ2M8E/mXOdwRXRUz/u/KRko9gSPeZSd -a0zbFtN0AoaCUIq9FqwMmJympyP5sZDJCmyBjw2NPXaxmHBrHDiEhPzI9SNOQlmP8VPxfYa4+QmD -0P7YfnJdHqfx+Z9afMqX6HuGGz3eMfg3DZVpGaYFddzSZqBW7LQ6wCGmlS/t4pN6q3WJDMO8PRGn -WjStC0aXpD4ZBWMYM6EfVRRc3qwJgMz61ATb6+erAzq+W/pIAfoZaASS5Yp5bxgZ4ALmqDqlxTs4 -Z1DKekPdPRO2Mo1y4C9VseM+SWzgL8RFKnbgKgW3DfRfvUV+VBGjcso+OWYY748ql0shTbQ0+fCx -pVlQwfc7IPnKI8c6cvQpQg9G1gjyfR5Tn6ccjGB0Uo0ikS0LynluTI+YK7YuNQL/wsDaA8VJood7 -MVQB16vlyOd5tipyq/L+sOcqY1313FXONHrT76tUu94Ot89m70pa2GcYw95XQvDNroDVBsISmxj6 -TyiVXsnufaDlCwFYhjooFncuWKXtruu2K0A5+dU+CN7nS97cQs0WU3bEnTI9Y4Nm8/bmK51OpaXZ -AtUBHP2hyl2UnEkAX+XC5UmYoknLtwTwNy9/UQzSXExMD+vPr4eI6Bs96lyYdIYqJRh5tS303Xt3 -J1a+82gQrEd581TBK5y5WoX0tOWNNDYIQNiglPTMQLW1RCZ+gKDjl//i2IJthTomadFGWzdWIDCP -LHVPzsVsGDEU1z3cny3x3p4clyGtzRuAcW/iUO8nrT7jmOjEzq+6Bv7TTAebr4zYIyX12ihMx1Hq -itNcWa2Tl2+FzeX7yoXfmBFKLsCQRzFUxN+aIQ/88Sj9IW0x9fiBwnjeLkbxioxhatLNTbrhpLes -Xw36pCFmBp+HMKI0D1M+Ywds+pY+1fNUDSbjstPcheMnXMIKo4S45LyidAJKqVfS6TtntQogY1MG -F1TM/MkpOp7MY+TXahRrkFT3AXXGZSq5JLIipOwNT0DmU02KbAkmcBxfga8mv75fqTdowlhvDt8b -mP5qq8fLQNbbGDtDr0+oJFw3IXucXoiVmtoc8+5RJzDnZB+Rsg/FdE1coaz3AH4rCB43kyv8cuX+ -7M9gKQOtA0EGZAfhlqYe0Sujzh44/HtW8HT/fUNYvnKhUQMQ+iqJdoBUwIQY+TKgwgVYdcjg8zHs -TuZtvkSspyK5fIcjq8T7WBse/r9lT/oDcrzciOWrNtdA89ecoLmzYIJ1YhRcc4ErEbSXuYgI+bZF -C5J+9Vd3xu1d2cMa4gyO+4Z6flmCD4P3fSsYzA5ck08dSlGqe/xk9oNtLTzRDpP3iAB1xI2THNIR -BnKEvy0mFfCnJ4pzPhR6ljLYx0cSEzUKPvvfM0mJjJOovpREJLPwBYkce0TfOCKvNiJ1lXoh8rE7 -D3Ef87jEiFf8QEO7uxi1GeyjpeKZvCtd6AMR9v7BG3/tcUeyG5umOQyTEaJkdul8gRC7IoIg1IBA -PITEBDnIFsXyKko+AgUk7FD21UGdhYTzaSAlSOqBxmYWJS8DBjGn6MAoO8Rkq8UYu2xw34/fKdvc -sh2WMdt2csVxxj/PkzgBfTrB/2lgQAHSD5wMYn0+H8RY5cpB0n9yB1rJWRIHPlQol+9sAq7I395V -y88PUYPC6cvmfwM/UAz8dxwkpgK/hedjAXxqIe7KfmRgtIXuvvX+0akfIKnVgU9h+3hIyfVKdo/M -bqaHJdphJYcVGGck1PFgTAM9J1UsnLecceATbkaeNk6jYyNjeZD9ToTwkZ8fb7YoqkYov3EgUgDI -N5/69QdhLj/WVOG86ROu2xtBXxi4BCFXkHELMbdngZ1sLQRTKsjA5ABaALUkqJWGntgUdiyq2Nfk -HDaF6gYrb4hottB7E5t9Q3/TpgS1TUQa4I2QdogkejEmF2PGCi9/D/C7tnwmJKVCzAbJviOGUsQR -xk1hw6Z8Fwn9QEhQn3KKgvy8cqPO/p+JWrnTi3rnwQwL4PkbLrWW1oF9Da5ZD4+ceYhylY8t8IB6 -Mn0Soq5/7K9UqYqXQYkkAiSV1a486bpvkdrT4nIBPgBYVAtgH+ojAMijsmZorUYcHJ4R359Hy+aH -fRhttvYOFT+4uOM+JLcJEtDKOWp/TPqQKTYPdJJRz5PZeXWXsQwhmAEEe0pdztgj8mrryV6mjiHd -SE3eLs5qXGYFkspiOkJDJHTqQGAwgwA1lYgVUUWavQhFZUAchKKxSIg4YL3EJN5MnTUcfqIuEeoC -MQEyO9bSunAttTBCiIgjDdO9vxaESVPeCW6pnGj9HSCZNyR+RGq57BaU6wWNaYhCZlrKd1+uMQRe -ZKa/1R/Dt7MlszX9Trpz0AS4mV7LJAiZhPyBYT4Edkqv33X915do5AFsWaii8ayVXN/Eovp/qTNi -WMYZIJa9CweSzKrQUL6SP0V0NAK2qUo2wirKUH30ijnOSLcZiVA70hMoY2bml5mis6kcO6Sj42HY -kV4l2EYJABucHcN9I2bvZ1Jrplo54uZkdroRftQIkWmE3daYl89mxYkz1fcpgpoorSKcncheb4pE -XqxbRqZJY6bhsOh0YXdMOyiSD1wdG54Dki/HS0lC6CZIA3FgIxHSBp3vTlwTa6J5GxGmyYrryAcY -PtQIxALlg7I+vN+HkAIwK0CwL1kAZn5kGECYI+p3M1oqAHgAgSCAHmBmmNW1y/Jun6+vWFfmIO6+ -OEkqY9GwJb1AynESdFLDz6CmlMSAlHhCXXJkzBmEOBEI5Em9wvJ+Fy+6s7rgGLIA+9rUfeWPj4vv -YMqiXUVjwbAcjTlR+yqCIHXUVeZgUoIqr5oDN76yTSsaEJ/cI69TX3buG6j0AJCtBjiWAUCf2e/f -Q50hvuuz5pqzJy5FPkcQD2M85evxFt2Jx51rIH7a9gH3zoy2TPjY3QnE+sEVq30PlNPi9Y5ld0G3 -v4MOn+LYJ/naZrq3+NGRYrEEE+yBu0KHHC83SOv5G/5yU0eHcyWXFNX4UnfaqLmi2GJeX4IVxKE3 -tYrzcLzPdvV96vv205UmdDiZo8sgvVqBdq7KP6dwvVAvDiIJL63g8AEJCG7IUnUlBC+NWwC3c6by -MhXvt+ViemXqzBxsGyk2/otbVLiA+LsWvOkGmlBwMA7oWgeabYJZ3lwEAdObkHFFav9mRROTfgtZ -TOn37ZyzEVjrG5h8aymYNhVZv3zzmvgK7wcpusjbsChRRCuWYv8maKwkTKQvQcA/FELfUdwdpHjn -3RTERkBYa4sUrDQ8eZzIDYjLuwQVB2CShlhoJdblEgVdXN7ZkM7y+dQz2lLNLzRqQT7YfTdQZYMu -82z7B0pd0fOeTzOoomAdXdLc3nBM0aTxCEjFN78+sKFwhrvRRUF6P8RpExBLpmMdPg== - - - /V+ypOKFyeLFhkgHitleveTVF6Pu6tm6CjpXy47vqhQq2JTNlxGbaA7sDJ/sSorVLMnt7yVXD7hd -4rVsk2oJiQ5qYyeSjyEMiixE/WCISir/cxZ0sCwGagxkIPpfZ99Osw+5m0XtY/DURoYxHBGR69WK -gSKdLhxtrVQUUUCgzE9W0mx442rIxEUOJW4wMK2Gz6piVOl6hejkbVGO9P+1AAL7VNpdXCsFVrRc -mjxBJA9sDeozQgkScJBBFwGyonakGSZ2REOMjsEHmPUHWxaxUX/a7wDWDgQJAtF2kCyuFaVAIGhW -u2um6gU/CDMctynj+M8WMeOeDS2bF1IdzNQTTw++vSeC2pWemFeCT8E9s+BDsSv2H41yxbjhrWAh -wgsat0uBzB5Zl/PU5Uq6vJdOxbnIzGXhyzFK5ljWHDOzW2UoPCkWyQnmlIKnK5i3EE9DwrD6WEiB -ZHzg7u+4UnChCfw58HWziDcWPF/u1ckjrOAwvscjCezgsYO7EyznwNbqPN4SQgLWJLIB/8CtrvPU -r7f2MpJ8oyBEbb5aQBJfX2NYQ+VrDBqcmR3xoJk1TsW9bgbSeBWIiGh7ZPTbnyNAMGLVHlD58dtU -YhdwjIfn90QgSDeJn03+ZL/STsbw27Flx+IiFsz9CB6G4PI+eEH2zef5MJHm+wFF+QrE/vgXf59c -yescjLzOjnJbagb+u5WXdXrLOybg9qJzkT7LNZ62eVo34axsnM3DWgDLaUziymULUv5/5wUYTY8p -4EkNEwj0qRYcRZGTOgXDJC3fWudtBShegZixQFXlpUK5D5rb8rn9khUX3fPpHqp7B657NGXJ1yRE -eiHulByIgM7KrnRCo50aabkoreVS6PsS56DSIL5itHEMV7H4JZNOebOPjSxKtkXTz9PNy8/Z7eeX -sJt+I8tP+tQlpiIh5tKp9hAPKg0fE5qtcGkP6+iepTCbZYEoFxSXkHDJvrEjucTzrCo6q1jlfMqs -vjLB/AzSfH6QyiX2LmOxJ5wNV3TFHobomWwemmg1EW8+Ctkajs2mHVnUOmlQIf10vdim5blSrfU/ -mENTi56XyhIe2Ex/xdWBQ+EuXTHcbHUpKdvphr4rTDqFfYFhWUVDP2M3nMHoo1NfmjqaFeoygKJn -gLyeHOar6jNQgkktn7rdXu3UppOH2weM6sMyR5+FbiCZTguK92EabJJiHa+fmtWEG5gqELs1WrB1 -MEjqXyldUAKzHupQ35vhVxXpZ7ZUKuFjoTCLHc2uoWXV8vaN3Upxz9Xprj8HiiSJfQQqeVp1pFGw -ejXcAYRTwkmdLtbBROVhrECI/5nCxFGb5tIRz5mpaW50wLhP9NMzADdcWZX4WsP1yySFwzFpWvM4 -+L4GyR7BzzS6BxBt5ICNqg2rIY1WFDwHWpEiRV+ZMAFSr/15ZbX+ry6410XXV+JzYbV0cR2AIcfF -a8PFOQocPc5LNlx3iwsNuoZWNGWLnxngoZnn2bKBXliwzGMBnG260MJRtXCVFt6vhaO2cOUtnJkl -rUvStJA0eSOti7T7zDHGlfyEoCgU40Dyn/9YzkAW8/gP+9l5n5xjuiIP4EXZckizJgRsCDIzTfBV -fAVEBihiEMhx0VLPf1nzjJ7gq+LHAzzgDinGpdkmaPMyBNTHwITXPJFfn3hQ/1IAeRBTGpTrp5j0 -FuCBwVFMW5wcOaoyR8mhoy7xxcHjJKpcPGUurp0Ln4ScUICmfBWQNZUuYy5VdClAWZoNAjVQ0oTl -Tlj7CItnQRxToMbB0pQczoLXIOBjdSP5sQCPLO19ELkKE4YKlWJV8h28F0VZgFxtHhkvGDK9lNY/ -KQeerodr9maDmR72gDLj0OwXxCnp7byZmRSiv0KHFp5l2XgYDgQIbAEKJgN2yLowFmmxyubXI6Kp -+Pl7TvyRVQepn8bMuDwAgnmG3lBuCuSsA8zGVpLnETmx29+tFjxZbOVmw1p7qFRIXAYabLLQqXRi -kYlO/I/RJtAGL04nUmaOmdXwnMjZdTsh3ZP6G3FRr68I3iGkT5B0pMiRFEJOhkIfuzEMwkfAozfY -I8H+rQoU1Il6BiO0erHQwJEUFXTNrUF3t0A9ML/rr835dqhGQaKlqQZOtT0tpoi9Rv2Rlw4TJhYF -wUeHz0nGWBEysF1NBilVZTS6DGczPEAJGl4MkGcJydfAIAECIyCnpAkh3IJwAsLBfvAyLO0VLeOB -dyU9SOYDOAABZAjotexKX+FPSVErjp6qk/bEadC0bAwPIqIe8889nQEY6C7gPR7Iazz4t5JzkZzS -Z/zczaECtL2Tq9JbDGdFMKyA9eUJnuwvjoFqtmQUzlBfGYEyM9Z7L75j5igjVykbTWjlAj+B4jUw -ml/6GMJVXzchhZIdT2NV1moCCIxk8MlbmLHDy2qZLfXW2E8poRf9s+CoSvpLyRcvwcIuSilIkowY -nIiw8XrXKLyhS1YLN8tLJXCeyOV5/aXiGPuTHyss7UTBnTDIE4FeovSerLcTJullwR8rUbEqNLDC -nd39ZBUcl6aLQVluS3QwrnDZiTvIeTBmJ4nSTE+0CW6ml5ZDWtMvEDinV4S+YJhQiBOdRBU0WYcK -o+ev+HvF+HTRBLHVtlhHUXnp7RKqmpyhlGAqyvWgFIwslMqt/EoTFwEXi6SHkfBTBpNGylV5jHl2 -85pQOXIEKEObfXXYxCFPx902IxiuMvCvECvd7JjBseVrFMxfB/NOzrI5F3++m3QETWev+ra3/rV6 -Nk5IOGlfC9XWUUErU4dDg8LxTNZHYISFW/aWuzTGn3rAlAhmf4LfFbhpweYanHOw0gNsGwSm/7Ma -OjkjmKRpt811Xfu2dBpWumJKPBMj5bpc9sxpnunbx2AKtGK5y6Cw6N0ZnT+G96MkwBMDFlMAt7XX -F6MXMq4py96HVZ7fX8JC6CHELMDUy/6aqOmAcEUCs3fMhP1+xo1rzch6U9uLmSH5YXJv4H5LoFrd -qDZaZkuAaWR4yJHqf6SpAyuV99EE3qpEhCVEsgZJLX8gQnr1OLoujrRdvoALE0jxugBfQ+B7FJ2o -Qv95T9POGXUmPXcHq9g34RAPPwTkTRzNkVISDyvUKVbQQr/6DQAWKrAjo+INGelRvO7G+22sjoAj -F5oHhNz1UkizQQRuHPAoygEDD9FryRc80hBq7DsuUNOrOzI54aNSSV7b6bgcTRk5dX282VwJdkpk -UhjWVrXZYie3msLV42OHuHrn6lhdDUFh/3i1cfJlJsAYHNacWGdk7Xll/VAK+MxrN11GK9k+Hivw -39dFXpQLxI4PUjxo6xABHNDZhk+QATgXrpR6H7d9pISpoRoWTzEkxh4gg9qxW8k8B2YFiGc8BK0F -aQ0NIULcIrTe7MJql76DU+aOwzlHIgMxZhT7eu/SZ5xa/0p3Ee2FwXK5gNiSxg5UBIuPDmJqAxeL -rMIqHfH+D1c27BRYrxwIdew+xJvk+lcb719TEXGkT3DFO+gOVj+bLhjsVQnkk4WKdxh2+aq9sWVT -C/OtAGlytx4E772kHw1P338JT8uhPS8Aetc95XT+uDZeAsHnPpnotvN3W5LLRwlSx8gS/NEBvJb1 -utwjK1B+Yqq03Cfs/UXKynIN0od0MRMrngVMZgIubX64IGHNydueAUhCsqMRV8tUMk5OK1msOPSd -i8VnX79B1ag94VPAMmAUOE8AC1wSzkxvYopcV3eMaB+5ePPujt3DdMbx3V1RWoxM2HUSWizaf2b/ -z5uhw1rP/fREOe9HgkEXwOJu4lznPrVSpjU74UcgKNDwWXbEK2BjktWDA73nIdH9v4vmvE24C6v1 -o6Tb6uupWojVlvYHS28M9hq5ySEDAtQNLU0WGhE5KQveviQLo41Clh1xTgQOLynlrpftQjd4YYWe -rclGC5NCIZ9bilOqwolRtnPQs97qkK03AlAMmVGCsmbxnGd6P1EqNRHf/0V80TS7tqxfHmMAIdHB -M3NsvJiw4JMjuba2Vf3es4tYvcVGu13LwN6iymrDXsy/q4UwjEKCLtEg7BIR9opJmKXqLlTFMKws -C5Q2jKkQ+xXLW7KVLJ8w0ZWuAXocFDE82cdxPXbaVZFHUFJiQcoWCzrQsQVOXHFd+C4kzO3QpmdT -Dp709CL25RLTI+wrXvd9BCj+YH3sQBWVZXNiuLpIjILSYT0ezvkN+me5MWOXxl/kMD2IV7gifdfT -BwTOBqYOWdp/4Z6BlmA8LZ+oKUHjmj9I2/m5/tt5f22SeTv4Z9URnyHUqC4E9LRnoJh53wQTwS5L -cChqaXEfB7N+bqAVrLjiF0Sf0i1gx6W/qzFYOPKaFJPIrJ7eYX79vtL+Hz0m1qzi8metWJHq2R70 -tnfCv8oJ/VLz/Enn+YN5PrMW+tO0L71sfgRevISvCCEQd0HhRmvT+x2hbWTy0EuH9gUpSZlSkkok -BAsFAFQAgAePCHEIEglCFWFilMk/gUYlcZpO4Ke8miFIFS+KzYjq177TvCqs7NBknbD3peDg3JQn -TFwS1XFUIM/0GwkVqQ4uo3oQWVFwcK4zRDm5phZSMRH+Px8RkeDMmBHTy1SMqK2fkSoyD0oSTlFV -FH/FXtnDag5qP9txLqyaA6quqjxzPuEglRmb1czzqlSY52BomZYbn5JwVc08qCmbXA6R1pDnoPRS -nOOpqFwhMTNELiZTp65RmVNMhRDaSJLH52CiIYpzMDaJlCrbRX1sPqzZQeGXUIXDFA/IF8a8JaxQ -TbgqJSZ7poSX4QXVeIQ2VVFNeYZ2KTwHbLhoU9mixd7PQZFeW8oXX6WGyCgoqv1fIwztHbg2M7p8 -vvBzcOyQCpKIPjNVRPu96oLvv6eKiJts6CNObIR5FX3idOOMU4Xln6qScGPx2VOrxqdqTzW+ckhM -Ir5zwcCH/KaXtnuGFgQAAB/Yh3aYVlWMu7FbqC02NXQgFSZbpGBklJNIGE9nqg7ERPPwSoIEhbYH -cXIwIZLLGX6RhFiR5JvDU6qRKKNI0alK5hVSucmQsqbTpGuQcqEh3pvKrDN9mE7zV1KJooecJqQH -WVHGhNwBR17xGp22IrmIlZDPlEJnCpLxwiKktpKQC1XJMUISOCEFOZHoDtaSEG0UIR/7HJX60E0c -o9VQWbaKC41X4sbHncZZlDvGIi81wjmal7KqEZMERSo1krB1eckm1NwRNKIikmFZ9ithahTSUIRC -inRTY7UKrzKWWIM1R9Uceod7RF2I94nPq3h5gt5QfRarOzWaFqdZuTPG26miSJSETevgG1GIbHLL -kOMHS+vAn3uLyEf26RQdfISvkKk4ZEF+ClG8MxUzORhuYfKnhkLm09qMNYxqyAH9cIwnmgntaRJR -IetIm+GE5iGv3zCdiLnZiyPE1TcZTiqUqwpWMXxr+CYkp6C+F8tCZbtMyBpD8pidctpIYkpqRos5 -yUyorBKymMxFJo+IIRlJk3xG8jZLRziR7qRoX0rfNwK3UeTReVMh60pB41p7fGoV3A== - - - CekmWo5bZILQROiueNFG8Xl1tSheP8JpdJriq9RodTUurmsvaTUe4girVo0izLTuBn1PMIISpy/0 -k/pEyncEIx6TB34TmViDXGjiNNJQT+LlTSY8epSYxefJauLVb2/0lfieiymG6HnHEnZBjSyd0yfM -pzzTeLncCoeX/5db7DTsBR+mLmDr4eWEEWleJHZMLZg4v4Rx2jphF+JtGI9XhFfACFWbwFqY8bmY -hvhAJ42jKte8QJPkYUuRYxAiW9JItKmsUOKldJlFCWIKOeplT0mgYq0qQ8Sqw5Ry/rY/Us3M3DSk -RcgW1mZMw8pyuI10kCdQO7ZsSrtmByqlFUakitLYJE4Rd5bYxEcwsRLhxLBXDLHLL0aILcUDm2oS -hsgNbZe0pbPgssQtQxDDLA8qSEo+OSQ1wsnRhsjB5MFMZUXL2lHK5mQXOdOyS84reAxO3JsZOJ7G -aSC5YlXZMop9d7Qd1AchT4+3a3x9y23LPcGJB/kScii8OWq4kEy+PZyqmdxkbigMqSDfqw0Mhkd3 -EePT3hNKkYODB/RXPhUT5dLHd80bJlh3sUyr5SY6xxaqhAlFKPU9WQUJ2mzETovv8CIseNAh7SGG -Ndq1skoh7TqJoaVHguwqmSClBInm7u7AIS2TSqiwqwkOFlu1O4aVh43Ut2ySclfEHTMSOj5e04SS -Ed8LBgoe9G6VwghNtYMMWaegP5KFu6WJm1aLP0Gviqb8EEHfURyhom8JRuzzjMx0JOLziOT3vlIn -vjmFehLx3ZaYKG/zf/Fawj6DahOnU5jWGgpGVdyxGFK8M4aoedHWquKTUZwWC6Z9+HG8JBFGq4gI -J7Bj16AJ+bYJ7SIoauSUe+cTFR562lLgq4QR22XsyYl3jb2tB9Z8XuWP6Z7KO5vFLP/lFqlAsiL5 -3AyfyXTiTbE2C7WbGN/PtaLyzA7npjn8cxHSBPmrQc4/83E5ZHOiN8iHgug0J1+bGsu8WBHKNYVx -7N0XqGZev+YrilAztup89cM+Lc5nyKE+81Nx7hou1Ic4nYfIQ+/NGTVBYgclUpw56w4Uq9hMxWaW -4fyzoFHm0T+EbHqKODQWM6eQBsdkXmKHkM2Xh2yhZMUyBZlVzCPzxqT3Vw25nL4iy1YH5RVruUp5 -PwneSIuYc52yUQWRfA4JsSkKNWNfKpldTooI4yq+f4E0kbKISHcwoaCRi/lQzuXk0moYrn1RJxR3 -YBo/qKOcwrRTyGXWsI7SS5S6SYlnQ9Mmp9jDcMWQV77ALi4mw9DWdTqrvLSEbi8WBctoH25OhoTF -OBL8CVY5l5UIMTgx+uozl4oHxmackZwbtp4E4SYy8v0OxVVeMgrdZMLM5JO5oySITOaP4s0hF5PD -dMRwTlwzk3GlVrj94RxXQbSGbBQPu0LUHrJP0UqJEK55X1PPj9M8ahZumTeCQh/v5lVimBjN5TNf -icO4TIwJrXCqPwslvv2CkFCIKs1w770QNBSmJuI+FArubgtDySJ7TBim1hrLTtsnHilx75iC+yIR -mZc7YWRrvC6hZBQykxFZyIxjI6OwIxokX2VhtjnJMisFKebdpl4yj22gQQQ+QIILLjDAAQ4ggAMO -gCADEWwggQIcDGCjQAAznOppNj7HCrVVKP57HCinrBGkLFJAivZAZC8FJV4LYSmt02KoPZDGu+0u -4cut8HYWikqqceGdVbhjO0WLbtV1p7JDW8M9RhKCdtMWSFQs6ajEx9tR93FVYD0zV+3M2x4TFUYT -H8tOoxpuH03DaNhQus197rGyb36I6mSfr4LUxOeYkJ1G2kh2S3fXK1Bdgdy11b6KKdVkjyDDUKYn -h0KRhe9DEtJlJfdGrNooVMqLUjJ0CrF2tYxqiakWUssKOlneoH6qKpCEm6h1QwEXC2v6EvlFig9K -nQ9OkCEBqIZKUh08gkXBQcsVZ4YIcfzQKkYVyvwRGX5i7DxsCmWdUIuGEr6Yu4Kw3ri/9hjTxy9O -0FiuDrI4mF/5D2rIp7b/kLO1H53HSw2idegu9yALlT6iqYqX4hUsUZxWEZr5tIo0IUpW0yhPuPg9 -K00ZVfuqO4tYsj57adMQHm8X6lpiUBSdawVrWlvmT7SobWSiLGzHKdbQ5WQxj0jSOXgjGJf5w+vd -Rcqwzqp0gyjciTQldFcO+l+EvsoF86mPouG8SlLkMoJcqWCX/TT7GWsN7/NTl6iSQJ7NDOcjikCf -C72ktKnIqzVS+oLdJF8sGo9XklhVPpIJF2MzQhYEAAAcODgofhOmRNZpr0BsGh7UPkNjE40Cid3Q -7CIzhq1rFo+cKlsrzoFI5eXxA2s4bo8XuOC1nkzSWTxVnnN1SJhVh2VhiEOOknyxLMkMr1gxoSaN -OTZLW6pxmunbPFgxgibCkZB8nmJLaDb9pmITYT3QrHKpSqDtlpIj53pTTrUSLWFm4tnE1KcqhsJK -pGoSP2zWYYWOKBYFmnGyyidruXQr5+bTXoVbi7WRSfHmjkzGjVmR6Lxa2TAbBc/o29babF/mks4O -LpdtYme4zDHhshKakT0xlTmEZDKVWeaxqvwVyg6GRhpD2Zxii4cc0NyxuVDNWWMgD6XmdtifV/3E -ojlJPdwl0rlnGOgdf2ilcEPEDi5U88xV20vYWmOBFZ47L6IQ013VS3+I1HmWjmxKLvNYHdCcyAW5 -h+pQsX4smx3QalHiWc0mOps1dkaw85JY6A9Yrz+vGQWXyKQ0ZzE23RZT2TR2sKJZzR0UVhH7jOn0 -zAuST5hvQolRHXzvvq4t9itZPEj9k5FN0alUM8Gtxb8JHch+6t6LWd+EuJd7e1CmFe1FK1NLdzNV -GxFFfV+QJJTmixmRUJvPq4bBzjT3uJ9DcA4+bY3ZEtEUg+9o9hCiQDQbOweXWcgY54xsyL7L+E6I -D8jN6DPSpJrNF5MKlaSxYYwmZGF6qMEoB3vEp5hxbJRWfTyMQA38bK6ieS0zxdTYU1PPFDE+4amo -sJqZaT6vKc/o0Ocuxs4Zx0w281Vm5OReyFxWp2UdHTEkjFFemglfiYMrS7uRZ5D0zMsUYxMRaTRG -LVJY2qgE2kpqrXBSekf4n75MHhcK42b5hvLaLlWiUNRQvnFGK3J1/ViCzCwIAABK0Hqm5DXlPHlx -EoRzTavykXzmeSWNqLmFHuxxVainUWPPiObxKXc+DYZ9yvMLed4aDz3y2kqhnqCZT2fukQoUs8un -zqIkp0yRVN6tiv6Sc9a6pZtX8fKqVrDEpJyRw2iI4kVVKZGfoxEKmRwybczjb1jk9kg4GY5TJgKJ -guRxl+KmDU3R51KrcFBLVR+3xKmcoqQuConxZmWRRvVRclBTMyoJSSxEZaZvUMQ3q09NX+bsgCfd -3lBQFN1RuhFL6aoxjMZblri9nmQSUuT71PycEOVSUV4JKps+p1GqJ1J8tPsOyaGqfKx4y0L0qD+4 -8i5p/XU4SsIsCy0atyuUD70kHIh62i1ZnInS1aL7zleqPWX1jCoTo9VHhZuUIxyKFOS++rksEMn6 -aoyopyraq8gmnvxOQSUhwqAXrU5BVv75HbKDb2ZH7ga/3f0EsQins9G7Y2hKb2K09Jhgo4++j/LQ -UjtiSoz4tpIrB1tKY6Hgy88QJeZJVnTMfxNNAn0le6kJdhrBIKkiI4a+Ww0uLvVFz+nGRIrYi14t -LjSmIOeyPl5qHjHfAblupsg3G70QJVZBN8mDEhH3OnFFn1c6kIfjx2KXsZjF7g2lytGsoN3DCgWF -EG2O+fj6i2FOlR33xdh4QBmF+ZI3NGZuGjqoHIlLFI2MPBB2uBJl4vHMYSkWtUREjFmkWtpEdnBZ -lnFeQt4SozyySE2SZrrIGAm27OCkdNrsIT/CnpYa10uSXh5kN7c7KT4mt4wHZSo9ITW7Si9HxkH2 -xomZ70gOKWLMiPRcHcGKoX56MUXrDW5glE1EDD0qQg9xQytkkfahcE8ipstH6Kt0FDMKpZDeyaJk -aGxRTORioWDROXMpU+lREvPRUIalmjqhf8RiabAXC83eJeTylOyW8sYwl9a19WXhyv4lpBrPqPo6 -gOfRqSBt0Yd3VaiSOIkIFPcoOBhv3qoJbg+EgmGpcmkeGqculmh4R1O8UfvPOGMrIklWXEwLRJOo -40MbiZYeTisrbjw+DlOjuGuMeVGDaSXD2WFonTJjpLDjczfEEnLX2E0rGBU08gh555WUkrtnWHUz -ePslRSkH3mb99HJckqHXm8LPNySSGHmM8qFXxz3WaiVUJPIYZahmDTWSNOqmMUgLGdT6Fkowhuwo -h0xF6YpyV4LCh1Np8NIFDj/ewn3DVoIkdEhDD7VIVOP4jLKNl9ZRn51YsT80WhQsyH7FjFR3blIe -jVRLZqoTczBqefxwIQtjuiztnEYB0crmK0MTTMERRQQFtshcv8eFzF0qc+rjmnqQ27tiGM35vzt1 -PiTsPpzxTHHfP/O6dk4jRTtnGqLjWrz2cl7CdR2SjtzD4+w0/zzuEDT0NnvRPFodIcrOmnAaDrvY -N+drvISp8fw1rVA08gmPhb+Fi3s88nlaVamx5x8KOWetoaGStHF+iKgVt2KOmGot/SOJYk0unFhm -B56Wh5TVJhVSsn6lfJtVrUpcNUP8jCMx/qrjirnMhcZ6Kc4xydBNHanGETK2HUFktOIVCmukzcTY -houEW9E4DimJE/yZYUNiBzXdD5qNV4rroJecxlFRtIPNheaAXEEx32pGk2Q+rISQyXybKCMqMl4w -xjSzmIqYU5YzViKsOWE8RpoGZSzqyPyK+WQHbyuiRP1jPl55pmJV808egQDhAbFd8TI7BMlrtget -ltRWpxyVB7E9mIuqzDE5vH4+c7pMNcpRszASUm9RBcou5WAfdU8xUqmKF2XiI0zakl8PVqFtUZSq -VdiHsvCmKCeVRjSusdgnesvrXLZ2rtJoL5f8urdx3XxAa9VWnUFB0dUSnBmZsRijcdpD5jMy9GCq -kqBX1wa96jJFlcqPYIgEtSrEEaxyX424Z4RCyDuO4IFD4u8nqynOf5pKcuYlYqsk5OSMVBexhSZM -qkLv50GXqLYqKgelSMjNmtmQVAlvC6Xm5pgkJpFe3shOaaz6k0Rt6oQqVULlVLUV7zUiVVBIafIW -bssu2RaxLCLUTXFtLUOWiScvZE8qRZaFt2ukdyG3jC6prarL7WJVPhNCKpvk+i3sliXELTjEKYlx -Y6S5FKSaKNSRiNowJV0fixpVVFovJGSpW6mOUO0pubWnJGXeCp/S1B3SUZ0+6O36vGavFivLrOEn -KlvqEJIaxouEQp7wH7RmuJE7Lr8mz3RBrS4uzSG1mos0rRhEo8VpZFFqrpMdM6jmIP4H/5TozjPW -JXx6qkKKVRnR7nQN2m5UfVkFEqfOEtaEyA9kwok0MpwPXssd5kNjYES9snHk9hckDO7IZ3ANSX0v -adFMZOQQJWmVReRzRtZY5PG06jOlevifbUT7blfQocbqzvoLFgZ9BvlBwZJ0mcTtjw== - - - pnTIuD/S+fHx/qWDRR9p3CG7PQpZ5RHSteTkpKZOkwgOeflgVMNT6TA+4MRcE+LU3TIM4YMi/rzr -CK4DBlHMwlQHsjMcpA5mM/zqSJfw7YkcVFC0up1i9xyBXPIpHVQoSm4Py1E+RFyuMqdVPlmE0gFF -TeV+iMmiKhoh+SeQDkweBh1QjGMlyKKJsoMxM4fyxx5VTSA6mOi8HVQxxDwgVgxrDfZBRYnLFDRh -zIO6GMIHHEl0ofVwWlRf0ZoLaAtLVdQHI6KKc7gGmQMhryIHRbF/iuROPpyQC5UmiJMgcuC6Dy4K -8r/pHEx9RuqyvYLIIRdFA9kwQ1ZNzKsocOQHkYOdbHLItOlgSkRIjs0BXW0F7mBmB/UKGvncwesS -5GK/7kC8s18PbJoaVafkKW2K7H3cVUSD09A2RB3QJoQqTpGKHpAPXpEQResByTSrvsgzxSGSONMJ -GlVChLUHjCAjpZo+DiY2+4SSCdWTqQfU2IVjky8N1IORvEz+Oz5JdpJkgVZuTaJTJurBfFYmXx7e -EwVLyWUIhbg+xGJwNLho5Qiv5lMn0JMge1hDlD3ksVLyVjW5hNzIkngExXXID1gu0UgNlWJIUna0 -ThVW0cRPmIo2IsfCPaFKppEIa6MHQsVqRBDhQsPGD0UhJWUMD8hiGvLoCkRDYx/kaKgdFLkiyKa0 -IXbgYhsO0YahEfLiEr5oqBJyRwlFXDzGI5wtEzyb/zjFQq4Il0vIbHBLyFObUGzwHHC+oR1M7IZ2 -rsUNOSAeULFjE2W+RV0kQXpOVCiasthzkJTYRT2o3X0NilD62COeBx6Js6nksDrDq97MaFTbEZR6 -U6LKhM94IJ+JuYcWYjgO45QqEczxjGQRc9fUu2dqhG4KC4kpmA7qJtI0UxhqaIgeUMb1qirhUNA8 -t4Q8GBczTeh4IpQHUwzlQduyFeaAFjW+g8WDOYdCWDxBghQLhUURjdQ9KU09ga2JEPUP7Jt6h8iF -55xigqy+ZVzTA66GIi5EC/sOwg+8kYl4v4MHZ2/YQWvGVXLwm7427OC/kKhhCwmnCjuYkuAvJUHm -wI+wZd6bQsmQBI6jvlVP2CuSgmdFz0F41XIw7EkwrKIePAx7xc0BuThknmQqX5xVAl1CIxrGVwuX -E37S6B56OaIWflrRuCzxHQ11Fr9WnlPDz4lXfrHsT4ZYpvjU5YiVhi5Dxgk9q3V0C3lZWoykylKl -qjKTU9lXkKkmNlWug9ixnRWN2BlpqlxTOlVm3TV0IqGKM1qybFY4ZGJVDQEHYnJRRpeZRKhgifhe -8J2hbhXV2eJVl3GFrAuhFX1oRoi1orNk5nIyCX/ZSHHF1b9NdVY0fDczOjH8gbgyDU3KjXy86JBJ -GPKhVNFKL3mEqrrOkArDxWf3Q8JVJ2E4EalUt7buOVP+Wl6pmFtqsRvplFxhgsVZHF+QIWgkUnUH -zSzI/2ZqKmbiplWFphOPoGKFPpUFvaQNa8aljx7UGHp5NRly1l5RY4xQZMMUB30oMhFptLqXUqP2 -b3A8dSdEQzLVeEaq/klRv45/l6EL24UEBVEEkophEi5qKopkLt8RJEeUZahuRo2J8b0XU4lmQxpS -7lVJLRbEhecgYxB9JlhzDCFGexJxjnsmRN/uuKzEVJKz/UtT0n2Xwob0QwxU5Kg76HVX8N1CHJAr -UnEStwmHMMuxGUEz+a5DCblX6ywH5IcuABiACEiggQYwEIIPaAABDYAgARYMgxCcYAIWgECDDDbI -YAMMQoBBBC7Q4AEWnCAEGlRgAQYeyAAGNshAAwngBiDA4AIRYAABCz6QAQKiHtCgAgwcYMEIMMgg -BBpUYMEHMkBABzbQQAYW4JwkEuoTAg0msAEINBCBAiwAQQYWbLABDB5QgQ06wIEMMGCABRh4IIMJ -SJlAAxEsQIMNSGAABlgQAglosAEJDDCLCByBCTSIgAUbgKABBTjozMSRRDoxzpx5VIysXzjHizTn -E0LBgeUyW+qgZF03QcVozRr/RE3Qe0VnNV8BK2DYBVFBXSMVnCxTpYyCmZCYrRZK8R2MKUCdEp5c -maD1C9/IhuFEvY+1d5LW0DsPGv1rpdQXLlc7LRxqJCLSkDaEThbHR43ZRSLPxjFiVZSIX53CRKvZ -icZDjoeCRqJ7UHUxWplC8Xp0bFV9htUaZAh1Z8dvF7S5N41iEYlB23za2PhEUbXXTMK5WMy7xD3G -0KHuoSIiztsqkyDFtkxD2iKVydJV2E4KDtqRzaWmc1W46BUsysFOQcxQhSnVgVzelzgSKZPqgKJq -CvXAspIXSBJCwcFDiio80QmKR6g4dTCcHpA8iEJjEclw6XgcNxW8jCOIw5r6iCJsPCIvMiUT4ie8 -lEggIb4oPTEmto0tQVktJdVPeWKr4km+sPeHQi01NKzQMNjBqSAhos8pI5Y5MkS0CIohKTvaeHh+ -a5MKqioNnYoORW4Xmp8oXNpNYYWmQTJFJVa6JnEhEtib5LlCiJNzMu4kqlFFaFwr74mecUiINJWd -qtQUQy1NyBotolNYStOqd2IfrXRo4sr0n1qr0TeKRrTLsMhDoa6NmrRfjcyx0Z52UoNYu+ZSDb3U -qBU/+yLJtIZbcsr7RcnlVizEuDdVUIzdGRcklaiayuElkFimCAnkTi2xZOq7gYOWZML23PQCpUJ7 -IENeLJS0NhraAyp9N71P4mT41J7OV2WSFrOHDO+UTXxDJchSqWW+93JgKV+LVPjECJHNIPt90wnx -CFZMSBC5xPOBkHCto2RVDUUHU9OTqJA6mLIcdTjqntEynQ7cmaN+SUcdI7zMmEVSl6dVNfW8EnWN -CzsFaqAdyER13ktFuQczB97bxTgdmmWVrGGpWKqGqrJFU0UtEtZVEoqthpFtBevGdGpaAucirqmL -jliYHtBQ6XA9qgpC5UE1xBqMImFYtBSUqkN4sDLidXt6206DSiq2giTalFgtzUqoU3RAMtSZcj/y -TGuzeags3JQruNAJpYPZVC80OkcnKBT6CE1I6ANfRfkjCCABSZ4Dx+q/++Ls9KAceE6XAj3uAyJT -ikJ/iE7YLPOuFzk9KL5oQQAAcIEQW3hVZIqXg2pk9Fk+D0wUSAebVm+WaOSun4z60DU3BYvcCyLy -BKIZclAMq1Q/4KqEIxtZi+qgujQ1RHHf7UafRYjM6CTXSjHxR8lmabpWSN1QeMhRVvg6b/KSCYk1 -ZFroIq3V0gkRSis1TWVIiDNUzsWfW3aHKj1gXy5LrMVEpt+gtzJFZskoXhQ1JDIr5pHESr0lcqSt -SuW6Byyh0ho/fZtcm8typR9Ls0qJRrMKvsuvplTZQ4pR0ljN6iMRqhfpFRLyQ0Iu9pWSK6RQY3LI -SkZhyXE/qkocxNNnb4Q8p8zpMq5QsRfW67YHVFXHDIW3MWNJzF5qg31QVDNBa8cH9xB9zNrJ8YpQ -/oFYplixohBHR6gkYqhqY8WxGE3Ei5V0WCSVeKw2mydkxOHRom1/aqEpH9bzgakskS6RMNlvHVSO -sxycqZdDKmSytUeR6eUpPfVqnKaKEiVm0aQmUWLXkOiRavklH79aHE9NeIiuaiv8stDV4BgVHpGR -KAvrZaqQRhFRjSuqXPNStxSVx0QVVa54A5k0bdUckbteQeWwS9ogp7BYEdyMJ+zQLYkmnEs0CXu1 -V7m0EMk4Lcs4w66k4iIxq1ouK0/EsCvKyjIXD4msJuJSYleVpS7iWE304HUxjbhzkpEDYZgRdZL+ -E0s/UagiX0RRJIK3T6dK5/5UE/dBaZ1QxZRDyOWNHKzk3OhUej4lVLaUURI2qx8hNy7tstlcjUkz -dxWnMX1MNcmYQj7/s19G0edXyjT7Lxl8H0Q0U1VoouSYQ6d45jpEUVEuskNRGwVikYaKZq154Sm/ -DLFpPtJGEZGDNHERTflC68ggy3XTSDTbxDkyitSPPFaOxUtqWBFkqdCEo2Yw/AckjmFDDhwi8pma -yUOKjlHETEWRGK+abDI03YGLfIq7+LEiqIIkFZdop9v26VqTsyG1gwlJPKihOyguCA8eRGEefDh+ -9J+ap8x3yqs3psYIovhUKA8oTrRQVGUpmbnJ8eBOQhMdr5JwnESyfLDBPPBOMWljnV51pVpcvMCi -x2viu3rwBzGUIzpz0YHpHpxU4/RASNZ5h1U8CQ8oDm66NFar6GAnWk1E6gdVc3TLZk9oRtFXRs5S -GogOyuJJAumAN/0wOugtZM3ffTbkhh2qCCP2YcLelAlaT6kTeYuwQgll0V1mGE4HVMes6MAWenpQ -v8wZ5gP7wDVVfc4fuHRGfC8JRxA2aDKyA+obVQfzgKZ4jaR3kMJaYxLNwQiVdKjS7+fy2sGDxMJw -OLdwfn8TzxtmLPb7DMP99nYe/K5GvDVBbsfg2sIj1aS+sHjiE4wgHjzqYLwmJN24IZ2mwnjt4MQI -HuOkvYu/WJfFPYsI3SI8+LjpY1NCUuPYZuE+ckeQ9BEZiX1bpUY4cscYVa7Lh74h3fQZOeBLYor+ -kU4niHSbZksnNI+JScUiE63JmoLKJEOnmUVMJIyIrtC3R9RmWtWK2SmiJ4L9GUZGwV4s5RGbqBV2 -0mJPsijZY2F2HMfB1S5Z3DPNOhHYmSosWZTftGLDi3a7xhaluNv+2E49ZCvmpIVSVzRiWRXJVl8l -EttBIpXEaiWkkPdVqdwZmjGtr08ZR3mhu6QJUkJRmhr6llaEadTJ8snBmiXicY9CxOYvET2DIno/ -Jiqd0IWIuCSzGSmT1hiGiufVEerpHJq6w1FB8UuppI7/Ipb4Prn/+C9+lHwV9Sgu4v9HoehgKqSx -VrhpqjyKmvJ+Uxdln6bsmHdk4T2Y8iK8E58YDePUksXoQOKdKE96wHJowQpDB1sfNGFwfASFIbFN -JqODEm0HpJU3eawK5sGIiMxMzUEoEMDBSyLcKSRisg6/79S4CmFjyIdN55c+aCPqieFAJkc2CmLw -UUSsihgiIs9XkzhIiPwRJ0T+1EQaMpk2z8E3RkreSE5HRIkrGyR7JV8yRFOSmikGlRRHdUOt7G1U -dMhmO139KAqlHrD1triZXbudi5QgocdTljwoWhJJG8RTeUh6vkKeWIhfqZSVCK64UpGVnuopJlUq -FwrZrCu9kGZ1ztOja5e6Qn15Xg4kbHJM1NUecEhCmiTRqc2/5POm2ZDJUkmcHvJQNhoR275MFX7H -Uyangqou1mE+uKJ11YIc5JaoJQ4i0ZHjMlOlOVz+EfQikSXirXNIyq6R6lS64qLMz4SVdFHFPFEi -8aznIh7VRtVqxlVUFooaF1XFMIpqKMojQikpU40qU8EJsmh4onjMt2ak/EB8MVtkQqlkqLQQJ9bC -JOidKpqBBhAAgxEIQEAcDgZF44HRaFzzAxSABbaIOD4ShMGAMEBsflxyWhkAAAAAAAAIAAAA0gOz -3TIk+0Wlceh9waZDusFRSq5rW3K2j0ySkIjeaiw1Re6ul/CdFZzskkMLIzdQGIISeA== - - - E/LRJe8RhuAON2fGqipuUq1WstcRCmrIGCuzrXNOlzeUmRD3Qg9I/BisZPBWiQgOl1rJPD5I45rO -3SOI7iLHIMFGqTExgZ9WJloI7maYQmyR1D369mS190ofBODx2/c9Hypy1dpzrWn5qO1CEBJViTso -Lr1PEzbD1i+pNFYjz9ykCLv/pjxFDVgdcEzwNJcchAvKf7KwYpzXRwOBoDlDQSRHp3gId3jeY5CF -BHmiwn0/EGi7xwg6wgpBHf2F/G8XW1NVWJcuBAFIXlhNGq/qywk1PZ9SF8tDkwgYWY73TO9+A1JP -mAY0sISuyETp4qc9Z9jsX2aa0xmjyln7u8xLwqtfjBu9MCV6Mi4Aydnnh5M85VGJod6zKNwowsNk -H2ZwfKLnKHjAzxVtyEGub9Jzk8A0yeplCHQuWSbDHlUEpWAJwqjIHNhVFgPqu16im4YPUdWUmdRX -eF5/WjMVRtDHVeFaQX0xA1lehFAeS9jVPcclUPCatyCKcvICVUDLC0p8qVsg0y78jZv+gbwyxwdr -5g0oTHrJwfgKLE38ERq/xk+BVAM+1f4fgVC8mo6hbtZAKH0bXdIqVphOpIssBc58UCXdZixd+CXs -nse4M3o15YkRHTr95p/JvFyp7Tswls0yAWQe4SFIogV/6tVXaCoyw4ZOJCOd5eG6v+D6fnO7IpxB -O35INFxJHkJ9FMlZCUC346UixIHlzpDhybhECuU3krQJdwY0vK3gNm6DlgW7CE5LLFH+nVDNQ3Wx -T3ZA1Rc4GQL1U6qvomCoTXCrmIAoePJz0scJkndtWt8IPOoYfmHm32BYeKJTwVqar7SgGKlAf4FL -8UHQsoSOQ1LXCY8Fo5OD4LNHRSlh1XMpW8BF4QuYFDtfUlh3Bx+FhqlzGd1K0NUm6AxD4Oaogfwi -w2MmYzXDv7IbmUc8eIlXfZCSV3YQa0zjkDTTYDpLodpQStBkk5LmuUjrE8KO667sfBt27wGgK6X2 -tbi3tpLohJK9gcaSZE4ladlDkUzjrI2gLqAB4F1uuXb8bz+iF2m4zZS1asimVv5K0TtxyYZuI68E -GwW6xxZZdy3DR7UtCMSq53evsgeSeVfFZB7LkxKW/9owAjSqB+YTB5UpJYQoYJO2i1O5t5YQE2Ak -0fpRnvpeyg5QSVI0FHVyP8Ar/HI1lRRNIsgDVxlmBMxDp7KlmA1kfu0bbvBpsqzwbYYzA8hg2xww -6xJmeYkinipraqioKDmkaSqGgTa9utAJqVfY+sjHioWRjaIaFRycUr6tS1qyRVnKAAHdaT5zkrM0 -Q1wNVtUfSO4PmJG+NG8jXvpbSUL4o4Gt3rsQM3xk80AJzsIzurphIGAAolRtwvUSdKkpycYCp4rg -Mo+B3uXgXkap8A/5VlyPrLiCiLjgHqROXoE6wtedvRMBJbqMhH16bderrAX97Ujt+eFeOH7TPYt2 -imESEyjMD1dl0NKEIjklPqGD2fjODAHdFXHR9HvxZIdbVIaaWwhIvyzKuZpOQ4kX2/Sa55ZzDDwc -hhhhTPXPQQi9ZIni3vaYPJrGFLG0KPsP2T6F7qknzgUCcYViScFjqovVogX8RAswcjSmRMzsyJee -Q5iXEvwjedyKmmXxHaRAZpL2JKkpkGVlTOmCScMFUSfOp854AZKzwPBlDEiqAzTGItn0hYCJpCAQ -zErTHIKYkr7++ZtuZkZy0GwhtAPRcEs0ILX0CJ0Bwn2mwLtYro2TCxChKjY51o5z+Z6jVTukUyc1 -y36Wt0tP/hE4LC17NdHP/LFXoYb0mJLNK7JHuv+7LJwQsUIsJPngyftiv1zwPgZ5fDux1BSbuWz2 -TEgk78BlzyLiHU+PkxeMnsozb4lNgWnZDomc2TU32dgoOHCxxtnLr1/MNtVgeM+6HgsPE12B42t+ -7EUbGCTYcoXKkl93kpRi/ogPbU077HiYOD/aTvSN551aH7rj5xbACGTioQNwQ4r7I6huHYg1bHCd -QkW13OXBuX99Qq+Lmzd2LY7O0WkIQg6ZyIksM7lDRR/3Mxa1kc+JJKjyU0XSkkyBw+SglckKTxUq -nmKB/ylnjRKpzGKYBUxajLSPKtx2SXZUBA+06pICKyjTYUJqm1VgkTYNs6v5qLFd2Vn1cMcfC/O5 -WOLVezES8IjAJGyIQIsZmhMev80Ue+HucwoZNIhtUe77v9adyb2h3/NKdP1O7Jsy/5CIwtJGTM5T -VvyZS6av7HIPyRF4WvIuURoZ/0tON0vILjqaco12HXyOqjCzsj2b+53HV3aZBWOM2Ch80s9dqA9t -qIGprvWxYk6aMWQ11RubgaM1x4lQ24+sZZO3DUK4s2BIe0TzNhAAcaqXreb/lJUFphiDHhPRF1Zy -1zEQhF1cBzC/hWdKo8n4AYZPq6o1GgY6SGeEOf9fxa/rccl6U+E+MQKy4yreVIWz6rMVoOvroUeX -VCTmXc9L9XDZDgeXDDqSLXJX00rVOyoEDXPK+HxDi5Jy0jk/v58GaWjy0FIIdFpT48QkNLccGHtG -sRP07kZ+iupEO5QnQVLme0vrRAam5BkC7Qa/cjNszDhDuRYOm6Kb9KrDzlmHYIQ8s3KNUT9cbqRW -kvrpLg2HKJJmV2wuIlGmTttNIL281Bro9OLyQ+2k+sp92SD+Aolu88JEjs26SDMpKaSFKOfNR5si -GHX2Efh9INnX/PvxKQnuCXlyP8QlTE7BDQiUCQExYWwURkHpSMVTRCggikPlqc48de9e1IjoU/Yg -b2aZ3tPu8fV4/uWb+76+hK9tPETZbnJpBO7YsHI1WXsvgKpxwQcqtjb0AqCGpdJMM3gJSIMlTaDc -GbkSbaBJocUdCqyiH1m49fhWSZPr3n5xSLG/oKMdP3bb6Qtls0bYEQ0mkfTgTSr4e1wv0p/PUAva -HqntzLU3+6zskpjssJ8kg4NXVVs5sRPNx1rV3IgblJhyt27KssyqDII1Ou8I+fP+NxDoYcHWptBl -ezmnt3npNH4feBvuW3JIzERplRsWEHJEQzIJjQIunoTDYjdLrKpgfmrVYKSULJSQuYWSsOWfLUVe -jMtSdHniolCZzK04VBppFpp0S1MnKOU79DkPLsngs1id96jw/hyP6LCJaghfyr9RbI5JTriTqmtu -VGvlyeu2Z18tPCoWhRTN8RBUiJcv5rD4ingtV6qqqTLcNMAXG0I7kN3DLTkEyLknhbB50oIrDnbZ -NWLtabpNkZQrkjdj5jDBcMFSkUqeLgIQQAOPOSV9ZqOD3KPx1LW5K8YfA0vgLcr/U25Wm1qkFFMx -GY79hNBQSJqC3py6wrebWXx2ME4tbEOfbjdO7ILCzkvsaCULAgUsBGbHpN59Za4ZhBiYeobE7VpT -u82sna11KqIF6znjo+Nw8VI+8eqClFkLnkN4xn7yGAbdQ9r+1Jcx7SfxKUedl2Aj/6eekVV5wUY2 -tqO2QprC6P+XUq+86zxRvSLBcsMQWRJuXJ3BCp0nyBKxKPFq48Rq0C8XKDoc+weB9gRPeUI+VHIK -qInt5L6sqX2n53h6XttN3Mh1/vAnG4idKJD2c8CRXcVzYSsDVCfnlXldgA8iDMux+T4fkmwP2vCY -SrHaEUMZbmgNfQwKHVLnS41NP/DXPwv3Q6PcDxpbchZa2U+TGVvxOG3u4rCw+4nawe7Es9e6KbHy -/WTDFYZe8eydAPNmMzgD6ujYUlQgw7+98pAYYEleguKMTJkdr4JsE74xSlispBCA5wx1ED34jSLp -y6eFcHD+0oZgiwdATHNRL6pyiJK0C9TZlySBhNZLjQJcJxzaSfyQJ9TNwi9vqMd6yEqxRrHTEzCP -/+6nEj5n0H4qYjgCZUgLF8Un0xonbOp5JhRTUgmqEW8kNqOfskiBrUTVQ6Ip7VYQqeAZ42Ab+BPs -crMGtp7TWdPmy1XY2t8X5WePqA7vuGCOFYhPePkwUiNKnq/RZcRnhYXTT0Xgj0P4PfKiUb7V9nPM -SnltDIcOpfYEAEeU5OPuQafBPUeXJYQcU6S1xhQJORgVRa6pLEJAUTw0tCK4i3/JC7dhsH2807HU -Wa6NPIQiGmOCKvgbtTZ2wlDC6rMqxwHzt39riroqGEWGewEu5TDbAr8b9oKmz6A7hrX5ZAvrKVc/ -XkOWDG1HgNV6x9NVyfTyNJcjMo+2keUoRmZOJ+6luztOEgesI09LCFBJT3EoHBSACcwj+KeA8f4E -AOkcx9EhEZSleiv9wxghkQhcg+GUxFSl9Mon1GOxBPuZar8QoDyD+4JguD25LfUUAQIbTZq93BG4 -tYEp633qs38o179lSZljmgdW7dsBXpPKXLj/QTThkRHiUJM2CoFyyKHYH2FASsvTUAQw4U/1xsVx -jELaNrFFE2Z7dT+CEgoPyikXrPJCW6CJYoZ7OtnXOGYkT+iKWrlfg4kkgQtWkEkkFCPFJrPDYbQv -CUfOWiNeqUlEaMcmCK2B964Ez3xWBWOTCjz4RMGfPuBwR3ZQJ40PLaySJYqBTVun0Kzn0cPPSAsJ -vsvLZFltjiKpiWUiVJAt/FWV6+gWj5Lqy4wpfLzWZmtSdxodwspr6sfTAUy//n509jSBKcqTtDER -XYFyJMAy5Eaqlg4fCgXCqSQqIvP78nikqbeda2tU0LaIXf8Rp3XCm0atGS93uwCbrhoEuRoQxAem -3KQ3Lx8GKQbeaJebiDJBj083vAslSaXv6lQgIKlJSlE8IJwjvcJLYzG1Yel19Ag6XVN4Jru4R64x -vjvGGlP01nLKufFNBtHkn+evTBK8wgUT3hBAXmaPDRkfCGfhFUTUiHmjvTvo+YxpcQphbSXuEPzp -3+dENvYTImGS/OAkLJg0KVRj+L0gOcMvBDSpkBNfju+a/vvnytXe0Yk+6hVGDIyFbghJeIW3eZhx -OIfZpP+Fg8R7/wB+ZDV5FXPdFLR/DbxtRVLb7JgoQABgldqKh3dZOlUsdHKlp4plwCrt0CaQwT6s -s4WTXMgL6ZBcm8iHY9BbUTBBrx9txSInYyeXgINzqU1wl8UMqxtNcU7q3K+7R5bcr45egRy5k1MR -5gx8KjaiyDgbYCa2YwYNXls7FzZXUSwkm0ZjNLn2Q7WolIz0LDsFQYOIPA5CDDSKM5nM2ppmQpsT -glP3Epupt4xNPbN6QRgEOGx60wChZ3mIGmxC43tac2cQ6W26MbcdLAJuFCywY//rgnAkJQolRp1f -lQpoJz468+BG6Y6pNYGPzvjNq5rLcLarG/pHbouuO+QfcjUrcBfSEZOmdz7XrmopY06SN1lchIad -WhywxGWqHqOsemmDoMIRj/MW/hQLRNQeR2NL2/kogOp0jOztR7CFhtHclfKFUb9wHA4KDP8KTGBo -g4Jm27bfVysF0s4kut7xeueJUpCKwKABQS8++gLH0gaa7gERnvUmTGI41z0UR9G3jGRZqVvmbaKw -vJ2kSnqezNlqbSwC2mECHKkPQ69LsBFh2D2LRHh6G7v/leh0roR5KOnBPLew/xY1xw== - - - Z4EdYNcHvW8Av7jQlumbuW8J0s50huhASst8q+7sl9lHWA39FGtjCif7AUERII6z52+pBXTqaaWN -ADdnjzJlMiqSoj0aziJ0JYeHI4vNQv/1f3lQW7oDD3AzyoIxvejSAYAgn3JkUkBzhrHfPk7soDJZ -bDpD0mqROGnWCwhhsroj3WebUqVbQFh/wgP2LaKctHJc65rBEN5UHx1YHHGW9Xz7zr0mrY59Mbb8 -X6GaVfKPxoixaFdJcWoskjslDskj+CzX11AtKB4qonaAc3TA20Rgggc5rMGJsxAagfcT29rlumgP -B5V1rwMkxkCHyHuhMXxQA5AYXN//dBNqUKjw+RSkhghYvx0ub9ecGDjfMwG6d5i4NFaXzoudEx5b -9/7R0/xzHpB0OqPvqfEYje0Els8FnPKb9cJnmnXZbocce0IEHXHhRP6DMFiEXOVZQdaBsF7z/43Y -cJ2UuiEeYgX6ycRkqRw2jaYrzlMIbsmOrQmEhoiAfGY1XMcG7udYfZbSulK/4pwreRUuwctc5KdS -KvItGM7B1SU/INDyUizLVDzvUjAfVlxZYsAXyoxzpjE/obe6VFXKiKBXRr0ugM8LWVujmaQJXo+f -pMNYCQHA7/pea/xoshUHaqhjZXWVz5hWGq4+8Amxhxw7DTrWpw0YkGx//kntbz8SdgL4l4Qtbyw8 -8d84Ku/YEQ0BmXskcOT32LR+tKCb699YduOKKkYtIhNVeVEKZ9vJALCK29ORmZ2cvGBu7xqnmMZY -GNK6vHn6htpRo6olva8ofDlEqY0O7sJXONU8qBoLEzgmvGTfR5nk9yA1nPMDA26UdYaNLeZA5f6i -Q5olhjORcfDe5eV3lhwDTl0mIrCtNkJkaGj0qmVgoMOibWGAfSi0iPj7NhKesTCIRqsdj2iHzY2R -UCksGYqY/eJKclyD7KKDnpjKpE6daMrS4dgEbm4xmvQGfkIiIPVJ3lw9dXgsnCDAZTDJfNl9mtOj -JvxlVXH2BBflV4pZhOdGYUBHVN3/HH+8AtzWRgN9cTmbG8wk1rDkjNRHciBW1W4hx0BDqjYh/l8K -wlDn/zZRtfnS7Qy35gopNfSyImXINCYTkW5TjpKaGwhLWSeAlLu9A+iDCg/uGAW7XwN2SMJn/AOs -VQih3xSqExQ+Igj4rmBRgL9B2UwQmVkh9+Ck7yxiKppzbffWKtqEwk1Qn70mvABqF3v1JRC9DjeA -VxJryju3HVXdLpiE3/qYnURn5mJZMWebfHeXQd/cF2gfhHmoNaM/YD1wTejiqH4K06x0y48cKLmQ -Fz6tYeiI/AnC4wmSHzYwyezInxath5La2ZsyuBAJwgd4qIZ9VU63E7nRCCAmfkRxbha6HARQfZEb -uuBp7g/CxR5WZb23VuzdYTqUMCvzS7aZ5yKEyq3SVMFmHllsRg31qMMYakA+DiIT6ViEtO0zAySj -EkLshWAduLG6okJ6AvHYuoWAMYhirrNs/pfSn4H08y6IFqgdtrwwBjNVNpNNoVrrOM6mzQVvFAih -yQjRUQPlT+8gW5V+TRzvvzarF/Vkg0pVSCEM/0QThpXUfn/oy8eC7WW0Q+r8xPRiQLNqzRxH3Gte -04HikMcSR9H/F0JiB4c34pCgup8BeSrXPlZdkyczKrXLwqoQcBDA7ACLGYUDtT5ysqaA8HB3zili -U6bj0MhVhix9FVGhMNyXcER8vwpW5oWIvkN3jAlO2dgEHAhQFzWTV/mDxcvlzi2KbXFSZzliO+mR -AGOZu19OoFRbABLcwCgUSD/064zySyWwRZvHN04Kh/F7pbYQdEg/z7ywFQtFbU7i9R9vk3WBj6v5 -iaNZaJSEcpJXaEWXJxbNsAm4a2GLNeSlpZ+AzAawf1BFRq59dZLCDIDH548SAa/F/rQrSJcUvsKD -nkAYe+qqVybIGCkcVxlbrjZUwMB/y4loRYvMdnnAjhKXPP7dVZA78l7XXt+sfQkWpIu7wFC7CCVN -7YcxRKxQb5e8IkG0lHJogvsHEbQQS46eAeNUqbpb/uwrUHNWmL3MEpX5LBndXIzwZXmugQLqUn4M -pN0C88bbTEmMLVl67I98PM08Uonq80lzfjq5sDMkgybcErBmnpDv3caLOlQ9sjWsWa9UELWlVrpo -AJ7uYn3XDbupvDIPq92U3RDYkGKPcLK7/JtxuEGgFBCgIdBUS1sjXChgZAxn4EWqmmhRmXdKlF70 -VVZuwe+deNiHRjGjZom27UyaVXcuxG/nJUo40j56mnXUASWaFx7HkQd0t4oYSBaz8fkHMRl98ZdF -eQQA0WdGJc66vX4MIFoIm7NayNxdJ4kPrvNacRrNVWGCJzsRpzDArgWSiKsmMIj4qE6RkextpqPF -ofhLPMz9oyIMOjq8fg+clw6d51vn6sBGMcyerrz8PLMQ1/kFG1wXjtJEmEusZso8c7R6Hb47Xndd -0mGtFipOmrLkqxDFVtcEDBiy+h1Hm5lfaTXv0w7gz28yCvZYIQjGgUXLRWS8kgU2JkVcm3478lug -e8BKGkhMSvx4BhYyFxXiEVjWBdWDQrAHSEJO6an0lAuYn3rCAdJXp0PrgqDflh/yFdB4z9hPPCeZ -KiHwzz67IbnrGhP8IuTYVk50bvLrsIyq6Ko7QVNXRwf5iVumnxd41KWxfs0xIJ6FHDNIOGlORxdL -Nd9DCEzWW5W3hD0ZiSHVvJn0mZgteRxSzOywCE2947go/CRsQOQ7LkfULedWGRpwPbWT/kpeLgmn -/woW98dD4h6mc+UnS4pS1uMiVEaDRkZsLhWohjM54PXOvXi4hCRCM7qJf7aJZ1jqgvrB13lIlR+F -DVX5HmTZkPbNwWgFQyUdmHXVDXGRlvZPXlS+BkqNXOhVGXP1jOGYQRajvC9Mk4PJQ8DWV7JxngSG -L5uAipp1XVOGAyWWhX+iH3bq+REGJDBfNLEChsp//x/xzlek9PdtQpX818C4QBOYHS/jnmReqWVR -Bl6Zk+aOY4NJuvAgiC/BXh+BN5JI5sZ3e1fLDWuiiHFrG0GOopfAKKZfCOwxQFfx0gkMIYfHFwLX -N1P2w+P6gMWn++wo6KINhPuI10h/pupe8rESHuEdLHMAEXAUY/03K0mwKQ3CD20geawWB4zE7CIr -bIhDSILQ0ojNTh2zAIrPiOtH0j3yKyJF30C9EOZfBpnXNsEERoQvrGBka+UVu2SlPx65sXWqTXTH -9OyNBUseNpvrhproz6UDHX9i/LymqAH0iLy81Jl2ecNp9OMRcDRPRmgQ2bLJ7SNaAAZfGzhs2Ofe -5VVXKACEWG/2ACTYHVyDat82eAcCB6jDZpMtIyxegrH87rUFJqaMQ/YvyuHcPtN6y2mt4qF51X/w -ynlroaCexr4NEnAbIOrZ+NmG1EayvXXYCELqg6507dhKvrABXHMswU2PE8JdElRBiHwDDpigA1XL -10Y3jWmphecp63Wv7xdI8GQX5hadQhibX8LzH072Tw2iAOC/Okk97OT0ASV6K/hU9O7aDzUdpml1 -ZyoQzpE36xzVLZeXCeRHUJ7GngYuqYxEAUrJ1oqSGTRJG1fHVBUzReZ/ZbkFMe6SaA0/eo8l65pA -z6bmTDxjMeffUwvL+AasxyCBGdyJ0m+44uD3TJG6k7kdQaGSkxWjlNTKZP4kGufj8g66kaoupGcR -qfAuregcDpcPQigFNwh1C9on4Kjgs4HW7pTox3QaFgKm4fJOgJMRKetxD0wa0NnHUkQx4uw79zMa -mYg4YobEjEXzZnEU0viFeRwZFMxvwclGWnk6FWBOdD6mB7uRKgZ6FiSSxy64KaCgvDSDdUwCesjP -OBygsnAsnqI/qGqZ4O5fhmmwBbeCU9FksJpig46pdlva5OhL6IpqDL83aJIxAdltVeTTijbfQxEQ -6vo67NIYoQsUwlhvYiMUTUgtWJOAun1SRp0ncK8if4m/czqtea01QO0P8i83ys3Dlofk+iG5m5iC -8oQJx3zLI/YcsXjc214GwjQwKWMoqaHtFEaus36JDOw/ukbaLr1cBlQayAuRyex4TlAFKz7zOxLZ -7AVThwxAolA4XWmJAKIBY6PVfSlp1VF5SgemewDwCKO+doG5paI5upPSQIfTWh4EyV6/gBC1iTXK -V2SuwyFxdJ6gSVVNDFjVt4UnvFJ5ukG4gmBeB7MtY1hNbI1CpkBBpZv9ANxsY2KTwkK7AAMkRlDz -HyXUbrxQ+V90Ij5c8svvNPjQDUJIzZtnNPw7/JIikjLQb6HVrvbuS690gOzSGoI85s6eLFFPRI0B -2QcHNmMxfTukW2F5DUT3KS2hWe0Ph3ntA3vNAJ6Pd3BvSwN/kRR09lfy6dp9MmpZi3v+o2YzsBbL -pZgkjIbEnsAm53BLBxnrSpOOn0VUsiDXYUdBcAQWF/6r8oMBV5rxJ/3y2TcZiQz6jgThQIBL4TEG -DjJ2to1CkPBLag0PexJoXkxyZZGPjNG49O3CB7JqvAj9ftiYLqI4uXWDpN/31eFWmXMRLqiHOR26 -oy8UvyvMU1S2B04KYtD5n7z+ioF5Cgn62Mvkt04YcPgAAQ/KK6qVafnnlAtaUvgmbpPVpFeumr8e -qRxYZw4Wb14w178DLuk41biTh/zcx1/jH6hJ6hYlsw3WNwmkk3iUrf9QXEQ1R0aGSpjkW0sFp9Z9 -sLHlPRYn7MNjTVjvMbzRtYhoc4SSFy+t5AAGVUUkl5fIOZ+zkaJmOfSTmLEAnmBcACwbJusWpZpO -QK5dlxdtJaZ4BfAT2oJhwUo2CqNWYe2xi6OtoX/wikBWaPeKoxUA+uiQFAoJfoLgIu2lsvEaDPz9 -Dw/4holMu/D5tDE5HVCdPlwiRqkme/SqoQf8lVDGhDwPgAx/+fVJCcXP30YA2rVzrdQdhZnRZgl6 -jNnt0M3qmWDkRAlW7pZaEEhcQAHg3eDkfuqTJgWMQ9xxVqmLrxmBGI9rogTFfA/Bl8Pvw1BILYyg -daITUNgOnSe9Us8WsfTYBf5QjkJqC2AN8AIKU/+surjF9b8t/WSE+ekoAz+eVCkdygo9Lj4Q3NAA -fRPM2tWgtyCievaHerSUabGc6nXTfOYyDgNwuJbeBn2/XpKC4e7RbIiC93bj+iz57J2yjuwNnqGl -SX/lp2CBpVlMpxgl84QpFd79C+HNZtbZl9Q3aFiMyDujCIFqY4ZQjDmOhsgmQVSBUl4PwYLJyjrc -8ZmPjdPXNGixsH5h1GMWs49ecIqkaA0nTObuTY8hRco5lZF+CeTl1xKPZmpHJHcFvxrS2UJKFl+Z -tTBNjZBGhl70s3sc4sTwUVyW3f32QA/C6H5+t4g/kLIPF5kWUQ1gGCqGT3bhRIb5CZDO7YmtPHjc -kS0CxFkiq5hESF6jHbavMV6FVwmOqmh4ECKntxgMQpOB/VR7WgSXeYNhLiqa0Get6F+FV68+bQ27 -Tq3tLSyOdAFyXfuMgbpBFmBdWT6XcZFNNmy7xJ16U1Kfxn9kCTNXA7XOyrcymQjXJw== - - - nN7saGHO6BsMuvLcHPEeHyMHEq7hoqxrXtENKlMXTpdA+RRhZfBJGEwqMJwDrg1vkCWwmU2RDdl/ -UDsAHWFtiXM+mDn5FfKFaDoooFWeJpQjsPiNNxpqCtww47o+GRrGUV+l5xVvEEjS1r34ACH9Y8en -OEaQTQ7h+F9woJ/tU0AUjI2o6Bm4RyZ0fiQFpQ4Ky+Gs82jRFdnmRwmfK8jvumYpRIQzV3JCr0mL -x3cRqhYy3nMk0aRLqFTAz1mRu1Rfdb3AR32LQQ7cRcHeC4wGln6n74kvrSCCYgNhKIvI5XOBleXS -LTDaI3S/+G6W1VyDPmrD+5mC5fYOQWXczF0x28vK7iP5f6qCqshyQLsvbU4c4Tvaq7sECYA+xEes -fdl/i6QKc29ejDlEniqxMoYtBi8qiK8ZU0CuEwzlQnplhqQRW0PqEHhKbs71L0+l3VREIOD8uXuP -T+NqlUWa6P8RaQneFhL2kv17gcasCq5zesRc3E8PYthwMj/RvTNEbJSGGEmbiy/WTISWumip+WaQ -ZCjKFCwCWYyoqZzfjLK8bGM/N3AoChBBuVKmroCDq45M0mBqoS8kpYKXG1E64FrtD+cECvAxZerL -Tu9M/AbyORHm4YtixJ4qfMJRI4AqNSk1/LGZpwVBogYKa0KLSFy2M5MUgvEpCGpGbNrz2/iyyTw8 -lXnN/7LRQ5dlk84G57q9LzctSK7i4GbMmXTdQKErgrgjPyCyxKgFurn74CvBH5jsRYU1KFtL4VFM -uQwfFkhqLfbYnhXSBTnyYRFrAdo3w8B/E0EDY6FEmETTqoWlvwlxGIP9VJLjWN2Ix7Qe7/iFXOtm -nn/3fIFFF4idPDPqCDqvM0ocLTLECHF7QoMKjvxj8tK3cjerAYU+YKsALlFKaT/iIQxYmPdtWE4a -yOW5eSZHX/DOg/LaLwNX6bQRjEUyOiEAsBIDvJswNqOGCtNNZhFK4+oxc01XM3iCcrIutLiIFTiP -148JRbksuAGi/6RjJGaF5ARl4Z8DiN1EYP3Pq2YDsaV3uca4juvGxdQGaAEvljmOFJbf3H6RUhVu -o4R2wsgjrnju6FmXXj0EgVxJxlscBduAow+kXAeJLjMY54renNrE9B1dXCUYpMLg6Gm3KxDxgmLv -sS8NT791L9dbj2igBrbs1RLM+Bq9zuCuAMOGpyamoU0UhiktCC5R74C5krsD+5MMPcKXk5W8rOqi -AX2BtmS2ZHARLVBHSl76CuNRNMePPBJTzhlwFr+JXLWAKqcsu0OZ6ACkE2qEVwmRXNRA8bTYMemF -DMER3tQOxxbsPRUcEtUKUa1CGvmF9YS2eCWUvOYjQvVQgCMwFwyQPvvz9D3S5DHd4SjwtQSmKQ5P -guHmLAoKbyEGzUWpUrgm2RE9LU9o6flxz9M0rYkq2uU4SXaAxUYY6CGIIY9T1DPVgZezTEkL64Wi -Ipk1wxkjgSxybHuMz4FfMknRAkbE7Y6yBegnACZKIIsql7gHuAws9PjBVRogJfJTqr5dqWQuBq38 -Ed8YEj4WWyGw1/HDa+VxyndBPMCj0Ml+F8CNzZLCfTBOBy9z6lfUNEMk1jUnk8eeOTCJXVELD7E5 -SNKm/yrbs2f5DM05X44EQ8qOiZNCJoskXvcVk1oWX+qDM+SnbqA2DWVliSN7OQExlOIW8kXB5Bgd -WehlVzLVlbMsGX8wxHw+11dp3QqSDj+W4g6A82xJ8A9fhb6fOnh8kwODCUqigKoWZ1e7VNcNSkEA -RHZ7SvudO5dTagxpvXFOpowTMEpRXOVeVuA1rOML/hzSUjPsJQvhOYCaHg0qZ1RDDp7CdP1ALryI -WxMv00wNn0S5V77gKIB7p8PbaRG5BzQeKEhUhulL45g3o/xCHwnIS/nmSyMFP4t3/zcBrIPB3Wr9 -TVIIPCKDCw1Of3OmvcabI263gqsAn2DvUd7bO2F2FW0RBQusj6cIG1U8APLQlXeQZDJyS/GSoZ1v -SReEDTR7aH3TBWjn60b3fWS8BCWCiMl5aXfowdnqZBf4RwfXA2sqWml/PQRY27+watSys9XgND5c -1LIex0wVbuxGQdY+C6qAw0noY3bqbnEbIgPbao4GPoTdSPH+wXNu9rOxg6MPZ6CDuVxiTupVGbst -gEuvwnxCdpUrNKOk1T4XE7kkLh9l8NVXtZSAf+rO/eZEKT8k+BUhl5c3g4wtOHMWTb0SY11/2ySm -2LALKGM2JkoGde55mh4SZm83KDYc4RVawGgZEBKabvoaQVSHT+89ZWREdYOKIK3lpK3PMu1hDEtg -FVReL0sRYS+kpiBE6iEIMo6Bkw7h1pF8LGFgBZLiKCWniWyYw6Rm/sSBc9zJC0lOSo08FfHZBgjv -TTZt48Y+XdyUuJDIwBoXnl1nwbEHkG6QdTheODgvwUYJRE65gFHqtc3OR4euYH2DPY0sv7cNQs+V -Z+CBxmANK1s36qkfG5DZMJhJy2uTT3HkekULWxIiLp7fPM3vh6d07sB/BsOb+eMmH0jQSALVtl9y -8LXije3gz7risQmdnC17twPey5z4QufPr3E3K4JRqONWlMwh5zUwJpZn+edz8YFPQk2WOMP2Ja16 -VEaEJl+hi3bBewy3zWfXm3bOWQSCrYdJvy4MvL4zI6nizXCPDiSKtl73Ea/kMloKaPCdERm5Jqk/ -FeA2qTPYZnoDN0UvGJrFGgezYGnWIjo1uKJbuNboUdhvx8ADdFQgDnlyfGuneUG3ab+JFxIH5jEY -vYCbqvG8ct00ZREdH3BEgQmUVHMU5mfQG40CmkVrCBNVT8yA3CSYPoI6bz5RImE1jUQQQ5duVFK2 -mPxX8KmNrW4cDWNpzItGDBEsMGzuKER+hT28uoY2KWOMw+l2hSicWAGt/qEZ9EoLGjcI7dcmsN/h -YhCedIirRPtl9k4uajbRdm368kNGQKVyYtDpH/g5yTBeFIXLKlZqxlWQ9tsACKc7a+KWHttEoNDu -ZNv1NHDgHulV9JlfA77gObFOPQWcYZMyz15M+8jU8tMRQM4ohkwMkQFLrp0Pv6Oc1oH7eKDDXdeq -J8tlni5QKXopJow/CxfVaYq9tl12yts/nmJfEe3wu5GKswJ/ZU7IWC+twkDR098XOGReajpwYvkB -wOFsmEniEpkC0n88jQtZps/lZXXNGY6K+BvKI11wheiJ3mZ86YWWwqpav9FwJksiliDTORzKPhAZ -C2KIXXBbuq1tETU6a7hRDx+5IooBHaFweyNTJD82P79WBA8pG3ocmYMiq9OYNoUVldpOJma98jZh -Zmf8qaBejAY3lnSALK1I6FCERaLAekuZTPlAv6AaAoMOZA1t9kNSMTdMzfp6lqX7gIJMbUMQoozy -+biAniFtJWvQ+Gu5ve2OMaz7QpWmGczJBM3KKVuxDdvc51sNo0Ad9WH6oupiZIN+GfinsTxO2kNp -DIUzcPpA+dyD2Q3/R2tMqt/Mw0UEiJkRntE18FHwGpgRGwJUS/T5ibzGiThi3tM0xZO8IRHWFdwi -NrANI73zu82ilLt3Z+x/aJNEgyPazVW1IQLTMwxGTBq5M4WoWcdIYCzilB3c9LECK95Bzr1xN7M9 -Qo9VA03/Uf0OUsTu4PVB0OQ0Z1DYZVZPbH2MQ/DdPVx4/DpwkP1t0G6GtiVkFTE2vWKRh+h6pjAp -j1IJfuqZvJqB4fCRdOGGmj5Q/9cbHdsaBrNSBwr8fJ6FVDiXbNDBRfDMWQgLpbSz5sXs2FuioWNR -uNy4DoJNLfmCZt2pWSD/nyWstGgZIyTWE+S71Lw3dhvNJssIonZXzhLkv3DMggnzrbb6s8KB/3b0 -R1k4ElM+5Og3XaJf+A/jPT96oF+PCtqxZmweRCoUHfchU+frVR34AMtnYt0nvB/nBcPvyT4mrs/b -elEBSVHyMM+r9MtbW/L0sm/dsWzMzqWie8gXRkGZwgT0cuox3nTPAOUu/qVeZN0AnVezN9pnQ3CV -5HVAM0XgjAWJgPA3hsYdpWzK4g5AgA0ecOgD8zcTr4lXYCxt1sIDba8MHhwIlV0YaSC5Nzej+LmX -nIQhqzALD8w/GkTVACwCgEAmcM7qNYsqwDbrNXdU0MKG17w2Kw6vYSN4wByGG3BG3PBac9N3M7rw -v8xrJ+gebo7acGYOx6edI7+j7ppT/3TO0mSXKGlgQeU1dAIPxPXHVuDA+RlaGNTAiVvQ0BmIGDCX -n+koC3AXIAVUyGvzkgSwAgEB5981GRBf5yAb5LUkTQ+Y6gMvo39XF2VQ7dq3P/uirZ9iBivu463E -yQPVn7kSMnXrhOaO6gy+Y8sDosoDPdHcZtRYe2JicgaLrSTNPY+npBFlMIJorlDrtZ0TvkdzrYY0 -V8Iol0SfPOBiSHMRcN63PjgwqZanR/bf+wP1CqLBp1SLALqhAUKUq/9X9aln01wQ+GsupgAPBMjy -+DU3dIMHuG3cAX24ucfcAQRZS3oOZg3n5sKKO5AOm2taATPq5uokeKDrcK5i7gBAnGsWHkAM5+o5 -8MCIORcueQCvOZeMpth9I+xz7iUbdO6QAszlOde0AJEVOte29ED117zne6DlXh4AKjrXXmpKZugH -N0esjwIlQs1hXeYAbg6sXX8Ut41/lKC29fB/FLratiJgBxIdCFIUy1iDvv9tVYuQUrNtnWIhgVvR -31ZPt7r3kVshAWJ0q5ffllndHkKGkDphPg/dCiEcWFUgE9gWbHUGe5A6HreiTd7qIOXst7VBsJBb -3y2Qwh527B2klr+tpDyp+AuVumPdP/AX1qrSVlr9TD9/rewGRr/wXV8p9rYg6zZbv6ccKKP0fml/ -Vqzx16s1IvTxDQyJr//6+GvZXQrydxUM4NT2Kp0aEPlr2G+cHpedUxEKYtkwp9hZlZ3W1b1DmWPH -+JjMmRYrB8mO4uPrZ8MKZuevQEbujJ/HCErY+4NuN7H6lXF+fSiTXzAYxS/7Vn+Hxa/AKl9zM2Ay -/sCeiFH9+lD4Lt9/qUikbsYvQ2ELX/mFOKw/ARWGpT6iI2SyPOOXqDK4WeoMfkEA41TvKzkOxBW+ -ElT1JwJjfjxj74uyVX1DXiEjKLoN8HdBkG2StouWSi69rjRjEbd0JvwiM+ifDL8ykMRvHNd5lBBk -uAYVYs/xbcod8it8Lei5rVjjOluGKf01ukHq5Cd+teAKP5VQS5N1nynSgsXs38le/Zh9P/om3jXf -9Pzi4+TjGe1qFf/kO/CLz6/+8h4BhGW/6ohAv/j7pX7NO/12RZz+qwpSz1P9WpZQ1FqpiO3Z4mJ+ -LWjTCnHYQfrHIEVopX6OCsh/+ccast3h18s6fp73wcXQb/1gOnhFHoHIHP9CDtlBEtg/FOiVLjep -HzoObpzul/d7dxYwqL5iequMdytn/1Z4UAPt4fw19d3pwPuiE0pNQfBNPpBmozEKzyVp4CC4+dvX -vNEXHq8r2ExHLIaTPhHzurYbdpjriKzn8v/hKGzmjgsS9inh0ZjBueRbAAIskPGRKw== - - - TFn+ztYilvWfc9tXwOcXd96iLcDvdOVoCP2E4+kVsi9mCrC6RvZ+G3YT/D4R+lW1Dcas3vrCY9vT -J18oDbuXgx9avYzZ/762DRUvyhXxLlVtz5PDS/7hl3rwdKcmJJTFZWMuhHLBB7EgxPXbTf7sn10M -9V7wBO2CLeYmTTyyOVur9eVQ868uwRoi6svk868X6FtKSF9dj/ZD1Qt5+uvQeTFot/GCYP1Z9y6k -Nk1quzCdjXvF5BOQBjdpqS+g1kvclKuzJ6/QuOiFCxfjxZkoW1f/vgJqOoTH4AkxAQbrzXDxqdiZ -GywMSC/SnN3+spyinFcoK9vtEiRhdbWIgEzJM43hODsyqsQocoK5pr4EylVZIGowy3AMK8qqI0AI -tFEBIZi4TpoS4CZwiTzx0yUkj+ErlKLb0gPoBOUHXnT16PO6xeaQ4jkhU2M8x1VTzJd8g9uW5GvL -5xTlCgvXQJpJIKbFGxElpq+bL4/c/jxjJaitWAeAiXAHX4ZiQ1+Kh1Ci8zUnCQQ9FoASgSnRwIUo -QJdT7nxp2m+JPKt/81ExfZIoArEFOUJ67A7tRDpDttUKwTM1CFmZGmqPfFBbf8nXc9nJcRm2YtHO -F8cO9LwbDOWNrBpFGFcYM7BbLd4DklXI5y2ooS99lkrS+YrV0E4qKhQIA8ULE5ngR+iV+vfdEHNQ -ecIP0IoQWEcPDo6X24BfBdNk9IfDU1zAJwNiTdGpfuKUALm7BYaAqXDA7CB7dFTJoMzw1CmUoVmO -QQDuqOjiK7xU1i2+3qeFxFcAOPXcIQAENxjzvywvEc+/ytafnQKrLxHQb8rXNHb5j706IlS+lOoA -jvc+v8cf2sSQr6fCxSLXwDdlnUoXH264xxfFTk4aIbvu+ILBhZ1Nvuh7X3wvFHGHbv6ZtXvhnuBI -SVHaFSr8HaT7bP73/FS4+6/SpBcWxPyIkoYf3rLuQyZfMI7ZX2C+zJT1HRQosdJvpdTzKcZ8Hbh8 -CczX68dHvnxds+GzXb4q73vwdnXvUrbP39Ty1ZfsNaR+ki/N0V9FcskXbpc+40L1Q/2HR3Gk3vNI -pbQf+795I32//L2HtJOUfyOQbiH/fPMVIePViUrEv4mU8IwuX8M84CV1gEb8F6oVMcl7F6CIYd1L -k69NNu5COSTotnedx89VO8va2JadnfvkCyfIzj0Vkw3sZUOi5va/q78NWf6nkm7TY9XBlyDqHMUX -Epn+nxiQHmJfh25a+CKLoCMXOgfb8/xazDkC3ADwmPgCoSwXUXyxWAAgl4qNJP+nQABy1ac4zrHg -F5+MDOQytD98xcUCAJRuAPB7ntBKvZgTX1bOdy24GFjvUE4JR7wbKb5GbzfWpOnmvSzlng4V3Bul -4/Zt4es2Ylsm8HUMasMHvh5igZBqAGBxjilgAsiOq15mxA6KdD0O2EHKVv6u45isuHAdyV+ZGIBK -z4kXWR9hPbikGmv16GnKqapH2KN9CiCYCGtQal7BUyyh3if4ak6nl+4LIDNdxVTVtdJcu8jmSA8p -jqaOnp5Wiz6s7zWzQ8uVRWwHzTmvM/7z//sbx+dhceX5SUhWZxJ9r7GLs/SeoW5zcrlPM6R9Zebu -ewHEAWDt5dp3GdAV39DyR/9Gf4AENcscIYD6mX93cgLpodII2JzMAZKAU+aftgQ4ixyaLgNk6Erz -mDP4giEFQMp0IuDMPQ+CBSRtv8UGLwwVm9N75WJiTRwv7h+MiBcDXnbysKfmMiBRQzjqvyw1IJPu -JTkb8AK6AIc3AJeaC6IIntY/B7jE9pKwydiD4ZIHYmH81sIjVATeCicBmcdelunLfb2A4TVmwHrI -B+i9ezHxB6CItQAMOD6pljnL1jD1gmhpuENazWb2LKHF/k+sO/9NvuwZvRjiVkNgVi4iErByEX5T -8aBkKSZqzh7rUNVUB8Yy+kntSSyYNgLDsFriQjc0WKT3afi/Ku+dju+r6Q9HF3oVAjRssSvrgknG -XIEOLUD8Vv2Rcja2on9JT1hhSJ2Hlzw6igusNjuGqg1e8X4UHAIvO/9QnKkCZReo8l3tOwd35CFK -GmjoUbVPcGyoVKvS5D4FVNjlTacUdJyiMRUkFTAfQ6Rouxw4+aQpFRzBJeW8aXZZZ2K6LQhKehMU -Fbop4NRIopFQ4kVD3dFiZCJULBZUF0Fpp/Hg2TI0txTKBaqfeGZNP0tdbzR2VaGu0KmVgtN1xwMZ -lQx34odIiknXQwDdar4HHQ5RGqemwjT+N1ErRXndxKeFCONzvWfG/J0rLBIZoaYjpRChoSkFvAWa -SzWM7wqVKaiV3hXmeu5sHi4X5y2T+8pFM+7qAL7UF9d8qktjfWZIyaVdP4J9BjC8yDVRXHSukq4M -A35QKfSo309KqRtSeCgF85n2O+mph1Avk7gjglE1RO8LUDdJauTvYjpS4IYjXJEanc/oKVyB7sVF -kBrOyhZcoXpN0oDtwmSBa97md1wcnW9W0fK3Bjr2BWl0wgekkK6RtB4fgZHjxQav6O7eADiyHmJV -ozOdKPZ59ZKJqALOKVIwAXsLIiGHAK645RZ1ADxwS2EMmHZGBUDwtkygCIC3bSkyA+zJtoBfA3Ct -LVpBALaoLWT+X0Ha4vD2jw7a8sT9hXG2oJQ/5cuWztxPlGxB8PSfcWx5XCe2No3qH+RWA16NPwiZ -0Q8KpoH0wo+cQl+a2YdY5tPMtVQe8ol3a+Ep2uHj5DUgsboHXryfD9Y61G+Pw9W6vNlzUPSUdc3m -Gc4G0JdH8jjZ9NUknhBFryzg4QHPE5qglvwgEMw8028npcpvOjuKGfIIZlrIYvxiq+MJxDvkdKZ1 -ZnTkgyAtOKwGcBwtR9gd8qLldNwVJloUV9o4sMQkDgj4hOPBQ5sdgRZ400A+gtud6tCeWw/19M9N -R00Hotto2EjXCbUhQJ5aNhTdrqjdrQHYi2dybvxlkY+MsWY5WPTRLBdYXtbMavjkWiVo5KfIrI89 -rkDM2s3/sgbC2WWBMhcznm5FngYEy7IGJLgjV1ZlAZ90yAh2fpOVsvDqzxhT1oB2rhhgrQFvRQzs -s9uwhqFTutFJGO9MbjkVDGHgpjTAaC634e0XhIztYcoXY1HbwellE2gLF142QMzGMru8NmQTQ5fq -EBuDysVtp8KFVrhukZt1tgCVqmoBwFq0OHrTRyVWyZLUXLEAowYSOFg86HevUPclLYOCq1jfXmsA -+ceNNqh3BPlrSgS9vsBmt0SAsUvmu0QIARmIpWSzC8qKNZbMAtDhHxZVE8HMLaN39OrWmwjKneMZ -XJVmaM3GI0wJxEpxC4g1EPkOCxjFDcvhf5vk2bAAQzQytuFJ4FOAtwvpRAADeyJ417CkE957RQxr -DlRvJqR+IvxrWIjib4saFp3a7UrxcYlAnNIyvxOGRc3mMT6y/TvbFvb4Lm0f2ddiycHd2IYwLBSm -W8ROTyl5q+STTpa6WFJzUkwjNQUtF9KvkPy8FYPVz+4IMm6tKnQ3z+rLgsTHyJXfwQJHOQ7WAlku -i6rpcphHCMsMJGlNGvlYr4iAQXkhniy6k65yr/SWm6BXjGOiTcxP/R80yOUVuDbEmYm2xx9Sz45a -zZzlhwIccPwibWLlrNqzqHYMT4KNLIbxFhHrdfIfJ761TOTXaBUMD4jl6sKzgxfWbfBd8w+AytD0 -o9vuEnyvuiCTQ1Oz1uM3CxDPBMmuaod65wUJCwWgcDXM69PECdIxTvvHlVGRkieTjc1tUiiWz/9v -Z5Wt8W0zxY6sYE5RMv3aj/GFSuaX4/Acy40UdI1aJ+aWI1gndJRbD+qjJkvU8dQFC49QLM4rPZN0 -17Df6et4eA0pVItQLGEpWgMjux/IzOVrkciwhKbMwNgWfsPt0hGyzHC56rNU/Mhw9quMFfc+hd7v -dMSwdf6XYZG9OeOszITREPxlVd2RBun6NWz7PQBfUz/zUPdDYUvYyzG2gwZgO2NrthhC8bX7gVWy -uXb5BGPKo7SIxz64ycSLbz/qUEavdq33JpPyL5QB1pAki0yurSiwdP2npZZnsrIa3P8yh1Jkri6Z -cP/aHHP0tScfulZCyn5zIGdBsw8cx+SumOOSuJmHr2uHEdmuXYve71rf34lQVjcm8XUcaNe+SCYC -M939v5aU51Qfv/aClgk+PO+zxVZtJUVLU9LPe/1Xy/NEb/29lgmld4vzNfD8PPFgsYItoyfqbHl+ -zKVRDjKR+Ikt38JXKV2TsXPtOFXrI/7H7WahrxHE3wtIxfESPDTXlgf7grLbcn5HGB/Gse9o39E+ -4636Jt6WLU+NAzRaxiTRfByyvBC6v7Lp3WCIQ2LZyoOr5LY/E/HV3colP4Dlp/kWzYh3gRf2r0Rb -+WZ/WuUnaFOgrTxhvAA/7RtJbRkcOg3ZGMHftTJHsszJzZl6S/o1xvD1qWtI9Oau38dQ/I60zV+5 -qQ8D8NVKuuXEAL4xkjgvBHiZif8VCQrwUYYBHj8WFWoBXrdhBZ5igNsHnh5ygLNqr7JoEEPWO1fe -A7zCTxL9+MoLBDz5f3WRTQhPwI3xVV42kev0mo4uaSoHHQp4GyeWAhLwayhm/f87H1XPaAd5kHP/ -b7HRuQXb/lYlRaZR9rc6xbf9PhNfRr6xqleT36HOtLiruYf8LmbiFcthYfjk992KCInyO43T6n2W -c8rvfLujTPIiN8tvwAaKxP1GHjiO5afFJL9T8IdSE60ZaZHf8W1DrpOoTn6T3x0b1QRr8tsz9UOy -J+3w7ZvfT5UP8rum4HOA/A59eEnSTkhzxu/8cs6l4/dHwtGUj/rg4/d5q9Y1GfM9fgPgg9r1DhyN -3wb9MnpcNqFmjt9XwEFlbvyOHxaAtFp7miHDWAh1z4d+MyiJfj58tPodPLQHRr+ZxREjWEuIjqHx -aa5IzbL0fXs6f3BOooz0tND8IolkfuvuyR9yDB3zaa2YPTFT4yC/OdV7HMOkqVCq2DA/jiSGfsf/ -ot9HtSeX1zzpN9ueEmrYPosYBYx+yxSEPG4HuaccLN0Bo6C9wexn9adX4jfpD72uH+X2sCH5t9Vw -oozeonS+HYDiG7/+Wwi/lUw7hAE6ara/KO0QtFe3sAfuMgi2gHIH+2TDpYz8saevTfdgxU2D2cDA -P1kdvSccKpUu9YFM9UkXvzQXVBuXEkySw0ZbqAEUVeHt7MfXXO7wutJxd0yxmoIt1GKAQQsiKRmG -pPjXbSfEsFNVS+dux8IcPoD2jWoMficmBH197ff3ljBdStMogO+rN/EU7VNKpAfBWe2SD3LlK0Bk -jqzatnEe1Iq0NZkUYJ9SWFjggwQKdM1hplgs9IRO+2s3BSYr8Q5JFoLybBLzReQD7WbZxbTfpBIB -VbeM6pxEuYwAhvSqGhzwebOrYpytXMwyP4iw2O617NbDVxI2OxlScCjY8gHgHg4dNUcYc4daZQbt -l8VVQzeisfjGCLCmStMccXwqgh3bSFH9HIP6w3V47sSynd0+Qo4EjaehMMwEnvvfQQ== - - - SaAENHYaeKGcP0bgeq3wAdXjqfMf2axScoDzfjaFWvovbrIUOzECXgsFrbFndcjq5Io0FEIS2Dz3 -OKEEa7Q2GAW8VV538DlIhvzk0bAtdirlAm4k7njWxjlk10xiDPQa4WRIbXdRBGZIk+RVIUoJYd38 -rJDRiDb6L3Nf/VVdnNYUxC6+oxkgudRh5YinVTJWRjMkWePYei71K+pvb5FL4bXN3S0JRZ8g1LjE -cw1sry3fkZmQ17HII4LIDb0Teyoc67druXUxQb74zy3eJ0xyEY+IspK9bZ+jG44G4bfu9RWVS/gE -MSbfBl44vSzUG7b/nI0wHd0zIKbE0vBIUKsw49ZCGatWqsVsojZ3veeR55L8olMXGTfnWO3i/PG0 -6izaN51hYesCPHe/L38A6bWwL8GnWWIVIi89q2KOrRtGod01BsR17KG+GhCRSgRUFA+8C2NbzN1L -lD8mTUHmgOI8RmkJ0NI4tokgffdYEaXKh1VMnkLU485l1zo2Y1urIVqhrn4wSIItJoNNg/DrVub2 -us4ukAl22gQTgXB/+80inPbCLs66FFNectDsOUxOGkLPWP4fvTEankHSsJJylUZ0YY79Q2HpgPUc -2RQhJMazO9WQDpePacZ6oXlPNSo5eYowj3sxxT+73ro4nJxUoCH5v8+JPQk6Dmp1iCjLNCsAS8Q8 -TKHu0r2Dbdwbf+eL4Ah+Z+oYk/xI2GW8ehQJQyGiRCoaGWeJCEFu5BKb2MWBW7iodGcELHPs3qPd -iQR81x6W/bHpEDVkBcUFS/q8fIWYctGQ/e4urQDLXB4XAaGX2z6DFp5LOQT9gkJJBHblYi3+x0SH -tt4vm/c+vV+Rpn4YtyDzALLVjt4d245BrL7CKjeZF9YoD8QxSH7B7A4R6uPoyVZPNID+1BzTPk05 -WO5BR1EQDAZgnpHxv3g5icsBdx7/tn/beBgJ//KeWOvgLxjBb6YR7P4mtw7+rBqVpu1bUXTZfqa1 -Wh3S9blqJChuCYupUkN1x9Jc84EuzbzAqPEs53Uq9MSDOzcnRPoblpjiYK9Cg5IP2h3NR3uQW1gt -Pgy5DbErbaASlNRkxeHHUrDDRM8qXKu07qdXwf+45Jsa3rXpzqeDHo1yLBVfMtc2WvAE9vNCwT9X -mj+jnaVbO5fHqwjspvijrC6zdpueZJdgVlLCVIZoIsVnciuBqI5InVYeC/JYlXF+OCNIpMmCFdMA -jA5EnAsWuiANVTZheFmim4KzGkJCAXXfYY9+VYUZP5MPSFZEUr0kj1Ah8UZaA7Gy0zmC4wRdtSIt -TpAjV8gXuBSC2x5+tXQDgvigL4IAdOJjcX3QKKe1fZghwubBPaYjcSsNAxreACQVaNZ+AZXqrNrS -dGj1ZcFizFDOlUQ/llBVqw5zydRE82t2qCbWpVenKbQVm6nw/+9QGeMsFRXXEUpCPpDrpjKBo3FT -amCifhhK6YUm4E75AvVRJgP7zEOltvO0LiL5XmckGV2L01mIVGkza41QmDTNB0gxmdnhIxGMantv -gEvxmYl4BXh8nT0F/LqC8SdCe0b+EhU4rvuRIpaPvSEAVXO8D/h4wdAOgeQUr23oybM4GUVdIYwL -EAwPI6kAEgIUl5AHQFSG0Fe4XXQY6sE9kwE+pMxQAa0CXIQQGsaVBQx618HfB+aPXlc1gFHzu24I -+Grv3XdKxkbmfp1JVFd+ePCOOTKH0HU6qqmToQ4iELzlgWH29/A/3FbAWuIMvtnNexuQXsUi8fPr -VzrhYK58L+y+/K69ME19M6ilYi00cCY+2PpPoQ+2hLIcvXzqYuMw16ar4Os9Gmo43WsIus3rSz2B -NUxkA8Nd4C9xAebRRmhfic41cxEz9ZWWEu3AWlYVkD/2TllLuPmn0g+Zo80JXG/TnyHEkeXU/5U6 -nEJ+FYFxs68IX0Rqlxqt5lV61uYmHiv0TWRthivUiFXny8gy6C9oqIdQ7asDebKFZJRsbWyXk7g+ -PoG+gmLxzHxV/WmvnjQb8Vaa+zFLh8mFTj4p1RCcblj3jnQAgU0RiRgArCBFePZsb22EQCwUgDHx -J3VdAzT2sn0ZKG21VonjUpM/tgnMqv2D9BJYXq5FSpJFeogBqSJibSLk0tGRJN4FQAfSSpITza9q -r+M+qC4EelCPBUSEcviyGHLOj+SWDlV10rw1pLll5WWNTQUmvfo+5sYKa6yk1xUpGma7ojLsiX/E -eEoRjFmQ+LdUxOtW2O6kfoAZIrzKZaSXjbA1VOUWdQigCLLdyqAOJhGs8Gi3j1Sa9DnwO4dZtIXy -FWlWvJofgITESD5A2MJJxRDwXvssvAZa8cf5HicMK+bU/CylT00dRBIDL6dLCCQZ/0x3jUIB6erK -8p85J5c7Dt8VoHu+k6p2PbnafncYzFkDxYRcAJKAKaLU7VDWCk5gkPVSysWsUv3OEUfTImv+orUl -5LJGiv6Cg8Bgwi2fITsMEHdFQui5hcmmmqzkVcoqIDuqjcWzxnAVfEGVoSmwTrFXPip9r/QZ2sFk -IoSSIViIIyuis+3AraDUGBe/JMJtByhYlGlhsDe6IKsG4eniSV0YTTsL1PyLD4LzwHLWlT4R2L+X -G0vAZ42363UuiILOX571g+dlABwv2KyfL/HlrXX6z720/hEOV546RwcPmnyYAjp0OJ5k5ls8mqQa -oKzpHuopKTi1udFiHNPWW0ouWxW5/yW5Aujm+J3Vr/vnHaXKBqt57NpBE8MjCwYrABvbnSBjTiKi -JIEUghDowfJ3grTXscfkk9S4vAQHcnsU4AdlghYIeXXTdliySHSpu9PBTKIi3vhl6pAulJQjvWWF -5cPh+XLDEsZCWI1Aovhw1i6d0kV/30+lur5PRpjhhj5wrJ0MlINAAx3nvMsCtFYBAaesbePm5dvJ -EbSjMmeclGMhRGd2GuEpPUoJEmB1Fkwgc2bOCIFUdcAXYpHnCIszwE86AdfDbftjXWYsLwXErAXk -q/Inogf768HGwlCsTBxhGFUEuNKvM79nYe2SeBOFN0DEH7wOH20vWOVj4xKkDDq028GjBPvThu+j -rOewgyIbkQZ8KsFVqu1uXQa1Tz/ZEo1BC/mvDpGb8xYynLN3AZ4UxUrujW/ysy9SuyTJPWRIlS9q -qhSZJcR9F+hp0GBAW5acwRZ8ty/rfoLAPKqM8yJJV41OWvbmZe/x7so75Ct2xWUwCTQMhzlNUwW1 -BIsW4Nm1pk3Kgd3nnsSBtM+rT3m2uuiiDgITOfZirqYkGPGkm49EjVJv/5BSY7RUMjgzS6JC8sOj -onqYcUayDGnXTzZrfX6hz6JyniqIvEovuPMwojYtWBuXNFlaijOzyMUkURz80HuiRWGjM0ieRzog -SKOQYOXrFP4dG+XBIfzwDQ264t2qxd2pmTNM3rFUxc5d6gxAWFUSJDmGpsQk3e2ThfGW8dgQGapC -iQ4P9eIodl00qLCC2ingEVeU7S9a43ytn0aUeFwgzCYNP0+TNSehi57ApkgfhmepbfYkLZsBugiv -o7IwTIg6AAIIdIY/y1te3uj0AHRStG4mZImwl47teAWz5x4tAWQaDjTm5/z5KvPbKF1Atyqcse11 -e9ZVMMXDEAaqx/VDUABG6gJ6aPRtG0KbhHmYx8fqxykarQsogXJ0Qb4NTTNimYq4r/T2NnKMge9s -Ad6nasqL9vUTxzz96KDS+hQplFoMxmgxvsBmm0lwu7u6HN7LIp5YrM1g54d7N0erspdZtuU6f9AL -B6v/Msxdv+A0sbKu5ryA6h1vjW4Ijon58lcFk4BAO9paBaDdKOtNwf9d/MwXogoPuz9onvDluMcG -tggZs54+DbTAUsIUeotDMyiBOTpNcfwvjyYRhJ3CvCPMhc1zPr3IhKoIoADqreCo8ec+jZYSafDZ -zRSmxBqKswD7t3KKzDOIUDoiOubGZpEU5KwuiF9SOSFq/Kp10Tcg/4uQKu/euJx7N4d28D9Lg61N -wk+yXFOyf0m9jR+6i52iEy7jT3EWmdWjujBKmnY6IhRsx75PM5yuGkbg9ZwHCJQ0fIze62C/+HVn -CRNdaXl1/qa5x5wcmUfypzfbQtqsbFXfNVOc6/eu5v6NV/EDJyO1d/numyJyKhsA2Zb6HtY6ThpT -vDzylkhXvZQVm9BcsblcfTJ2vTadnOTTjKUZiwkB1qMHV0DWjduenzpro/+XThDHxIBkGBtMITYx -E3Y57mvAmTTgFpW7lf1NwQdH4kswJSOLkg/yPyGY5jt5N4R2kWtC03OTvAowDg5C7EbyIO18pwy8 -RzKvH8TXaI5uW+XBHn9w6gDUmfAjWKesahNTu+V07IWI6mqqlAogaTjDKbR+imiMSs4FiIcdk8Ag -H9rKam1kxaOvnVDl903M6bdGfypRq4gNCexBYqEpO3VBOtu1R/gBFRqa518i6BESPDn+VhXlgxMP -D5JKo1LeX2VNmnTh49QcV6mcuF+8YwBdewRg8YuiKBufz61ea4gIIzj5gsWU6g6LDltCpUcZedLk -ad3jKF2qUgF6ukoCdc10zBT3ezg3TBMuUJH4Rn6DNmbmlcVydlp5aeVmsc53pLr0cQdHNHLIj/Mw -v+gCu6z4CAH3qV1yRdVq397VBmO6dLh7fpa3f9lv9mUjJGcBk8qAjTxOjuPUE0RX9pE2e1OAFWaL -M24LUnB5G+OYyEM58wkcIOmAR7e3BUdnbLFeZ/s6y7XDkbpwy4/52ATlQo0+A0RR9eBtnfxaF7s1 -BcdADvprU/fA4OuAkkfA5ifecSZYAmxHXvbksH57sRtN99Oie2oK4reDFtnGH/TkA2zcEB/W+buT -1olfMsZWaLrmra3c8NRzznvCfSaRxxnnTxSuFKAWaFCKgFCwn8i3Vtgih8lo+3rvP7nz92C1vOHW -jSPQB2w07Dkh8gm43uf4glP11krRN90RCCCvDcxUCcDlGV0DwxluDjZJqFNxWDyOvi9CwC1bvnmd -jlnqjtuggrkwBit7es0CEeMHxwvXwWO4q/qWNW6T3DgKqfUN0y3qDAplM/xDgl0EFyahnGmgpce7 -Hyo7653lnNWfPHWVgmQLhizIbsaHQpF1QnowOi3epvZ1xEz6WWjm+5JH3kiQoGG3XEdWH1XdrLqY -z9RsT0ES3nWVRhTKWwZuDpX9LbuwDpXJCgXDYDUGc2wif/qxtO1JcnrptLlNS2gDudW7UoNZiR3A -Naqv79Hw012U+w5lyVKz93JOFWsJEslnJ4V/WXJ7s8CO9vakn7EbC6Q2aM1Ak8ZFxvhakgEKp4DX -pBS4ZSwTYbmV9NkzEzeVFC29DHHIoQfM6Z0zREuNytDPNSI6ISwT38j2ltH28t3MYVVK4acOpmYF -jh+QZrdpZxwsJHdksVDepyTTtLz3cDvYnriJvWW+O6QIoGU1/q53+qkk2Af70H3M912KDEB+YRiM -zhgybY6tu6yx4d/wvR/GtoO+SqntDqVEKbXduyqGVOFUlBO1q1KHnpnumMhx1QPvLA== - - - k14TZ35EF67JeFLlDcMg2ZoBzHB+6jZCevz5JTgdpvHz0+NIeJYi2XR+Ncy4avT7fq31Atcef/x7 -MnvKeOOHBGL6tR0vC6XS74nSawM/8HrsDEIsaq/ZAn7DOEy0JQJe19gjeOCnA+YxbyBJMdssYxZW -wK+c5SPWo2mSFwB+gj9NuhegNYAOCvjNq0/nwARF8FOkjWAJy/SRq2X0fX6oep/1YV7IE63vksol -ytD9r/V5hXnOMwlbHyfC6KYewLU+pbRkxfq1ugfEYNKf3B2VOqo+LB3FNnrfF6qy+PzmP/OoJWay -oN/tvl4QMA6r30NKZuTLAwfUDySJ6OtpF236rZD+VUnpFODAN9KPNdg/O1P6SQ2YOOknwgFFASjh -exVAP8hUWpcd3r/E10urLUJes+zAlMg4wAbXf/VOIHP3wNM7rxpEnWqTgx0s7O3fv7Yd0nAHMCAL -kyB7ZxKWREHNC9yR4MmuINB2FPsSwf2E3mYJWu+14UPser/ZzTgGixV2xzt5Uu83vgG7u5MnhF92 -l4YaEoqoz4vd2bQY0a72uwey+ztGAHnys/oCkt1fVZTDH+Txqdj9JnXHC4503wT1uq/UjgU+U921 -lfrX/VGs7gPrjq2AClh3ucRJgsYXPyssBG7dj0zR8etfd4QHW1r3b7eI5zYm6R0ERHfT+yt+bqzf -pb+/eXyET5HOoN9F2FHjQvO33484gebrd/nntQivrwi+CYxcQGg+XGovhci/30zlMXkKb9mg1Anl -WVMooUHrrXrC1BRaHi9SkueLYAob3XBghimMrvEPj0/hZEhSQz1kJEhhhHEFNoXzSKrLltVuTCG5 -iR3QFFLxcIQO+quEFDINszhUhS2js1J6Q6jzMUd1xccQOyDTCoMs3RGqsIWSEW5AKAXJQtNxrNyP -Aa+RbmAhlJjyIU8LLRtqfLDwwCAL7dGcA+HG9WJqAWHMpVCKBfdjaOpY21fGLAj3QNvQfBAynVn6 -uEQ8QYiPZn5D1uZDSIRtV2c40LYQzgMPrSHCchmSLMnV6sOxLhF6suyxlpfYilCa1eelK8L7Ycq0 -gnYCEuGl38HwE07XsMlaPkL4xPGu3pqEuhFoyE7xUvV6FkyzH9+7cbbB8Jw55fr+ua6TaeTTVpz8 -e8XejaOww48lCqFPqJhUR+P/HalY4WGoX7EUrMYDdAozYN0D7JROzefhTynk7ZXd+ihccR+K4mu3 -GZFUb8JAcOC7siaM5NWLLBNCWO/2Y0LfeVZzYbvHBiYRVCt8LcczYPYm7NDFYNGE8bar19EmJI0c -xTkT3t6KUr6Qgd05oa2bOsLlhJh72gY8yMkVRer9Ctc25sH+C2kPadjjMvw+eNxz4QfXu46e/8Gj -8Tu6dyJh4gfPksJ6c5tpZpfh3EGSHDdEuocMORxsstksZRjsovMMyZC0qkR+CgbgZAiGJb2BQqWc -p8VYX6grsbIyK8/03/kh6pJ4hJ4E/5gXzCFZKL1HoKRe8+Iwrojqy9AsrWQKYTrgwiJfmfkHjBAE -hLvcscGxk3QtuHBbrzSvgtsYCeJaBaK9RqmzL1Wp2OfQi2i2+6p3/QFTj7mVKEEcDDwwVrUS0Ymj -ZI2YIW+nBKwkyDaa1u6IvptkaOV/OSzJJWgQuBQetARz9OrBlFtrRjDQFsUxM4w4ig7jMjgQy3tc -i2eNlbhe3ttUP8xNg2q7CahxvoF/Kn52sIn+rmVL4lWrYbBbq8P1RsMPkLe2jQF5zLWGBMYsHhw0 -wNSB7EqHZTH4gIfRdziSGjH+8CD1tJZkz5RNevwdelqX97YWg3yT0IS6Q/ODJ978fiBSVJM4+49B -RAsuE1nEGRgiAnJKejuOca90FFQRXahcXOzpVK3Fesy02ury/BSXwRrEQd0hKWbPhGvfgBDuaauG -y8w3xpWGA0c+ppaCiDwzoA4OzuPUwko3N21w2wJ0rn4AtqiXFQ7/8tU834QtmQc4UBoeyOwqXFtj -ezuuBGa0OBEns/DMtiyd9kTvA4/P0BPVxsn3VuILi4qXJ0odr8OiuCwWW++NrsxGhQtc4XxBKWhc -lvvqRIVAx9P3FyKrX7g9v1tH+eR/XohBfaod2E5I2Q1Iww68rLkYJzGWmXRmBHNyX8K/MVqn+bRg -HC6jsArG07ao4h7NOQ+bRSL56GRelyhae2JPyJ7YV1nJbCexRxGaV8xMhXMQ5qqvhZnGUHvfLaEV -A4AQ3c9rQ5LjkZ/Nd6DqhhaXLjbtjeanRhpffnyoSdTS+pNTHQa7ZthTKkTKh7yiHjrKgVISFkHe -p/6wO+1TmnSTOQRAwTy10vE4dFcS4JMuaQ6XaG+Jw1I0qz8K1I6mJH0QczI3v6SP7NeGiyOD76yl -hYQQATZTrojFRze3lz53esCAjKGJoE9KaEYQOS58eV82N+jIOIm/WEGjpXw7rlpoc2IBlVTU57H5 -61nT9URLbFxH7L8M8MoCgtOXPU6LlRkP17zf1JEAyxh09UmB7RYWYr0mYkPuug2WN+B1sbxcImB2 -hGltrH7P59bnGuIB+Y6fBtyvYOSKknHN/wwC9eeqENZkwHLF/vgHioVNwYLesxrsjyJLlwk7O4eh -AM7B9ib5rNjvszm3TiGP2Ns/2Ks12KyDBZrFL0FS0g72llyUMbmEwIGV5W1nA1+bsdkwf7WvvjEC -WIvpUQ64oOeBjUkIJdgOLPCw8J8NVgRYZ5iFNbwVyGIRQLtVHIe+CdffT4NCvI5/cDXx0t5OARPm -YjPQkvyhl2hYSSPKPykG1ntXxNxluzP/ZGwRfMXjYXSrYrwYPvJx0SUYnR+PjhG1LoTgNTEqZ++p -4cGVpWWFOk6LJxICguKhf/732rSwtfx/xWjiD29vDtM8V2Xh2UbeP6JRpalD3j3UbqW+rW5fl7mp -i+BO4nMsdezdYLeJq0ihqH2uVAYs9/TRPZ5itNWQULgt+sTwXVGkwQMLxYIrFifXjeTYJUM8gmgv -QuZLbtE7YhbCP5ZxiLEnbhc4aMbnvr7+OP/PiuhckPcemarUl9oJWRyIOauia8kE7vn5XMoUAlVK -XEM6IeDXNqA1ltFzjO51eqXsRKDdVivkQOPpqQZ0Nm/cywK4u3peCg1Br89TA3b48P2v152z1cMI -Y3neDyM3MAioQbuFtpc2jjgqfwDF2n0Kpm00LBkVaD9hRRXCGTnAzrQl2sBA/ZomFtx6jiax+PUh -N1DjZR9qGPEDpy4K/C5IdmzmN/Yh/YpSlzc1qMabKrLnu96s9WHqCq8VWs9gXGayaSQ08if9Lqbq -CsIcuqis+xVK1dibrZZB4axVbrYQuP4hySZEJS6Fy3Wg1cdR7/UqT9gfZ4HmH3Z43JxnSOeioBhH -+aM0YmGVpW/pikf5KVn/sNlw/AVN4+kfDpTxpB9+jdZQH45PjXSnZGKKcNSH/G5AJi3LgM8Pjyxh -Y9SHLOiZagjp6nlhB4exM3Tgw0EW/T8q+N4F8iyC5LDElcP7ARVyoe4T6yNwvLxdBpDNH7aSA8ck -eESfAahRD/2AYLz4V7lCs/Qtdx34i+RenDrz5EHndzDJ5iTmQ6zq0q0vi/t3IMsQJ8dx5PtwVC9l -8S5s3rL3oXKm472LJBIl4pH2OK7jfrb+WNfaPsBCs+ph+P+qWspjD1xFkIHQdZfaxIpwrj7nfinz -s2FrRXDXJmXP9DJFyoqY/N7wE60IxKyILvXrSRaiakX0A2IXf5Q244axFTGAOj1ACC6G4rr/rkl0 -ReAC2yijuiNVPe0J7RUBjl56ziJez9nGyuXuZxGBcvD+Hx/vyMGsUoN34RTohIsYvDlp4iJgEy0J -qw26NS4i9x11iouwQDIddrOVZECLiFouoiChu6dcRMWBpe5FMJQ/z4HC+SLGoqcMmYcm9yL6sQi1 -AmFE51S5qi6M6O9hyw8jmu4DvId+ZdNhRMTC58DDiF9HCZERMWJVTGQIjPdhBIigksRLREsdRuCk -ZeQhRkjeZdRHZpkdxIg9MMLiBPVfI0YouA2hd2LEatGX5MQkid+ggGwPDsnhy8BglhwC2UBJ+HQh -RzJNsoA9VRAik3Ub6I4DAIcjUhUq/7IJQG26vKEJUza6KA7/sEgFakc1sLfRVDCsg5KpyycXHIK6 -B67MmS5wJrKOMUOc6kqO5TOkzQsrZFjfS2WqpMj4+RqEgHu4aQG8htW+Ex4F4NQJ4MsdAfXZJnMS -/gnQ82v4ytXwmQTLt5uEQkDRvTkNVaElRuE0HI6YOMB9pxUg9ZyGijLwjrLImVZuycQQm6F1PKxh -uQu+YrgqnPAObQKcj531sIbXP/wm5qehxfI1GkKZQgn0gbdnqOnHf6KYumLXk9AeqOTRkPtJ9DoH -NTJ7IAZ/J+qKgsNWiOcP1GUf4xd4CrhCCGTXwBUeIB1ypP0/0P1fzL9tKEh0VhpqC7DiNsTk5eR3 -XFri5px7k4gM8HKRPquPRbT3BEqAXw0lor+Y5kXGyvicgd8hYUMPZ2KBf1mB7UWW3L1sBNA8P5Ud -adjwqDSSd+BMRKJ3SbGhh5nEuEU6YsOtinieOtS/hZfyS83mu7lYWRdsQ/JC2KRtWIGX/X9We37b -UKXH5G8Rm611F9NTsiEM7ZO+NUz6lfiKkwuiWOcmk9tsGxvL04lMcdquIGzU+21nZ+gT9JPDLNS8 -0unlH6e8hNTJham2kBOPnsJoR2pI5mt6LgIZXhiS/RHl0dklN/mfW4n8YphSGwNjOhYiJRKGVahd -HM3OsK8VVmYY4qK6w7iaNQrjrRjBeo6BMkNYD0dA/wTeGxIqpYcPst1O7rKIAV6EUIqfQWVdl10I -e+CnDEca0L96pVvw4IXDa5veP8iPfmEESIksJPmg0EK1IHlqn7poAwelTxfMUB/wq2R0Tk7s+WSY -r4oIT4ZPpFhgPFXli/ZNKK1+iHgyTKMO+DiEOrAbqhn2GPr0hWMBVjDDjWAgcoYg6s2UkjDPlvAV -ChQaWuLAuTlDrosjOFyLswUG9Psu+YQ2OlMLIPTZhxUM9mmZ0QdGxKnaBkCigsn9faF8wPqbIWTv -jeP4mtKp3ZGt0cOOYZsk/+uSNsC3FEN4bgvc67rAwvDWpkmnhC985mVi+B/L/OLgU42pfcGjCTNg -FDxL+PIDghfN5dQF/q+WuQNeD7EU4mStZRmqxGIYWNcBHz7K9Akv36dFUm+qF8MY/dLTd9tsEoyd -t9nHh5l4EYMMKegw+oXBDQjqt7wYlq4eIwrcmUCGkVCuJFP7wQ1xndp22tUwZNLKXmEU6MGksFCJ -76J5MSxqtLgxhhVuRQkZ9muK3Wmu3U76xXCDKd1/ZYON4Awtodyle3aRmbOKNWpcURLTOQzXhJbj -YRhqonhylCTOZSD5m3xjZjB82IUK49vIBOXUU8oePOmvYOCWCAVvQE3XfdNfyEr0WFsEcezER8VJ -LLjLYe5N5walMrS/cL8Me5hCEF1yi3NiQ46XDKO2+fpP+NNb7kLMMfEX1rpCECallQ== - - - fcwJunPTSm5Cg2GHyvgkEJfTL+SiKaRgX2LohTu9kGcIoT1nYP+oLaa9PfClKaF5R+ghNfzUgD4K -I9brwgBFMI8LIM0uvK/uYJ9yR+PC25sjs4oK7y4iSuFTcW1h7THjbCE3XqLliACDD8guhGa2pRPY -PFC6db4uNCQwgfMQNV6082MXcuSUC2AwZO3CKw6CtGiqbgKrcQy5cERSzVooaUCEuLCTrtxw4WhA -kv1VPid1DAhYNjBVAuOfbuFCthl0cYRi7nUhyDzARNmaTpEOUuL/LyV1ISBCOxaP6+6Oj7O7bwDS -uCcjJ4RoVjWNUfObtos7rlvHwsKW8nuoqtOFJ1OXzrxwaAhMNvU8t7hSHIVJeqH+T/WG+CJ9XkhU -v3hZXqirRudUx/hnLC/HC1NLMssGL+yuotYWqneW32vjaqgh4IWJzG+To2PgYM5ATufCMn9d7vc0 -zuGibBk8Q0mo6nSh/JvCFonInnqxQsJD4qo9fB2V9GkdutAZBv5sStR7E7cvJPswmfSFBW8ZnKxp -AbTXZNnah2MsXCQbtPd44fA5om9HS7wQ8/3AOSxT6Nm6umDJ51PEw8BOrgWbhgsCjLidqUq963JX -waYLzc57/zcHrGd1UctHXE6rQt8mjoTFJE6jo3uVxoILf5TZWjW4EJovKmPl5JZ9Oz3MW9S4xsR5 -A8mIxBDyWuiumLphlWY6C6URLa5VUNB5wjZE2cWhmOQsXLGPQY82OOCthQhoyqhRa6GzePEnCX8V -Cn2AOGHcIKaAOyjE10J6EXOQ87Vw1CGzUD4rEUBOq3bVCs8ELut7+ExrEaHaY4InqbMWjqko49vq -dJ4gik5i6MNiOy8FELEfuT0ujS1GyodJAQYuJL610AitxDSxUIssrU2lD8aiIpCq/i48PF0L+7pi -ruUFjuY0tq+NPN5cLU4dbs9hgj8wVaEfmua7cIzI4mus5g216Zosd8yAYg/1pr8a5hF7Qx6Ak8p9 -LbNsmDC1mPLWkbsKxsI+ZRDgt33b1TddFYcXr4cSf5gDbvwjVuGYQWRFmdRuR8IrJIweOL4IJSJD -sKrtegSr2qMI7p7leoV6ZI6F2NCDiVU020D3uhMTB1P9ri36Cr09yCAE9xVGf4tS1AqsbQg1ilY4 -716hw17n5h8kXgjtFQ4Q0yEq/A2GcE9Xr7TCsOmZaLUPjJmJGD9HGLUIgIO2BUl4jfqF9430vcKx -EMOYwCAc+bL9bjt8hZ46DIbwFR5NJHN8hf3ujgmLq37cZ3rLAK5iVmGQggFU1a9wQLB3Who1LdQm -PuxSZtS2LiewkHmR8yQrsNAqQVSn7vqfspDysD+0Gib0mFeIJFxxWY4RmSwUwLnfwv4BzZU3+a3Q -9eBQ763wJnl1pLwV4tp0UHx98M8HiOzp/q3B2mZ9kbxZkIJYnpVVKF22jLk6MIyswibHM+qsNJtV -CBojqjcqzPxELf+Of27An4nOMoBzRAVFJrVxEWi0KewtOId0PiYHc+njYyTKK1DIpJD/TOJwxrET -IlZ/vY8mJBf0HjsgRb+8S9LHVhNeMY/7w3sAdZT73SvheE/Cm8bGtNtdJaIRBe2OKWP0CC8QRrjV -PYgu4pvum2TxYXSnq6LKPfc3oqixuXcy8R+EN45EGJT7gUWsBLl3BPEKhLfmYfMH/y0cegzu2TOU -8reTwDDh3t4nFl7c7bpP6DGAoiMqdHAR+RhPbTGqYfmyBcWFhYeUaGuDbeEwUNa4pwJQtUeqMBBq -/gMoIoP3l88n15XGBx1c+g0aMBr3w2ccqTbSLHh8aXpXMPop25Bgu+AZSvdwYY8gdiUUDLlSXZ1g -+UCBtbH2Xw7iYmfLY7sSC8FD/yLIjj9ADsF72FEKgrFoM9kH1oAMFv1qCNcsHXjdqc7pFUxV0g1e -HA2COANvksMgdIUIjLELLNJCAccgC2TqjzcVOJQtsnEtMDcML4FhVaBYzqrM8WueLL45l/eAw8da -KAlreDJ2la8GHK25czW4UfUKOPAiLd4MBDoBoZYLWQRsvGMiKdXlNCoc4oLqRaDPccooXTD+UjDI -kb4A9rygMI867uezAuDIhdbcUBq+Piqo/1wMx09jslmI/zQGdZ/9+5Dlm1BxGnCEfG3Sozzyk6Yz -RrVKZWIrNsv+aNvDgFwCN9adJbIDjlOKrURaTwIBjUNVSbh19L0eMuh+/ajxJG+tH9m5PfR7M41i -awMpR4uuhV99xKamHy8GiTouBQdhdFKk+gOpU8qiYsRNRUXohywoyzERqGCAqdTndz75FYovgqWO -n44VNsab4pfxXghC5H0AEPxsHcP99vC+y/DDvo9XOXVe3rdJPd9yjO6rq5rCqBTQrpI6iZ/I+8Ta -97zzo/YgxsrNHf1fH/rxDmgjU3F+d33tUUKIJlnf5XwBBrquTKqP7VEnFJ5Sg/5puC3V7aUvrp21 -Gzvh1JYdFU47oQ9zlesN/Z6v54acT2mar8zzV7ijg/nA2o31lY/1RSwpUkC7oaf2W+a3gaoDRuDW -ZqOV15RsQgOcAuHvLVoN+LstCqmT/ALiC09rzcrUhQ+vgw9q/uIvQuBDBL4Bfsdm7/eMsHpGnyWD -EMdCBk3vASjiZRTv0bRYZLF7pWa+Oq07k/3cW1q6eDnuCW7lfPTCmm2aAVnwYEv27c38U8s8B6o3 -QHa8haIIcBvh0+CZ7Flaj/ZwWIPKxLKcE1iS7CmazjP3+OeFib1Sai54kpYYiSCfULTZqIJ38heo -bKKjdHkpRC1CKevqFavTlaklEu9ygqrnfKcAz1snZ99k6amqiH5OD62A/mK2S0QlKatKiH6Syzj0 -sEbpQYJuShY/eiKqWTpKteiB7Zyqu4ZeJkEPPEV3cHREbFl5t1kI6gSG7qOHPk8xBcEHlY45lV/J -OS+o6/325oGJLpCW1TzwD0NzxMwLkzts7Za0LaBeujqSBykYRpcniRkdwsXhv+0uOc8beFpUvVc+ -eUTeGig3+xhUf8kTVgARozNAZ2k5hr1xGeOoa4LNOuRFISKPv2IQXr7wR9zVXqNw61wMJgiA5dTF -ceN5QGD8Yvj3MnLjxVYOzYOqCt6L0Ij8ixrvJj5ynaZ+TRuu2B8KuZo29HlyogmW+bQhcSw6jyu8 -pU1y2tAdsB6cLQNJG44a44rHljbElzqy2pBsGIs3N5QNJ8F3QnydAHy/5ob0sBOeqQ1lYLA1N7wW -pHkad2BuWBJZmEQM/uoL37Cj4pZ+hcOCR7ucqlqCEofgu2EkHeGwJEZ3IBzmlpN1J5L96AiH6UrA -hoe3eCQp15Gv94b/vPVY2BtyAazIsjdUBnCiP1ivLXPDSd3Ye9DcMGP6JyMM+YZvzMx86s4N3Uyu -s6y5oUdFYMtzwxGvK84a4eN9tRsXg1YLcBvQVg9K/8+bvlmbIDv1AmwGFmlgxg1sb3yVImdnb7+W -TA+9kidXi1MHumTqhyyYWxnOv0JIIuNbNvMemfYSHGc+Mq1/O5RaBpJGI1Me/YnNp+MoErfGkyZX -kqnErHSDIjqcTH3iS6LJNNYty8l0fvW3e+FE9lGLZGpDgC3lJ6bhzVgYMA0badq+Y0rJH+p+KQsp -WyClL3XMoHTPWyex9aXKrX9B1Jfuavs8CcdZT+f60ngRP4nJBPvSw3DWoutE0126dNWXepc9yU8y -orIt3pfutC7TPF8q0SqaGNRzrbSQcHMpI710Vcyl1eIsgHOpwa7ceqpMp4EFfm/IuMtbAKL+6y0O -L2msxNNenOajr5pCOL2IGe+h3Ejlp6qTtMbS+CLVCh0kpAtWcu8t51gMtRsVSWYrS9/m/kgodFsJ -3FjXBgunwCu2eqo8bdaIc1CMojbJ1WsPaRhpVN7PYPEkipvBkEGCcBl8iSQo2fS8YeSYk3FazBYp -kwdXH/Rqj9SaCa2lySdGS9C3MCUHC9Tom0wlkBV9Wz+6/r5lq9r+j+TEswPLq6xz8UYkZDjqPw5C -esY5P2ic87JL4h41rjrfJPVlYhJWHp1VTm/8fMNsNQcibJEoAeCNc74hb6eNLGzE6JvdxYAiAtNW -9G1ooJW9pWWF5tzOddcTj8RvOSiGUk/bPjotb6QpZALxW4TeIEmvC9ff9steO4SSzvqbdSqsrpyH -GY3ob6GhEG9MlmF5U3VeGiE2xU0SU4Infrv1qgVOrHpk8BqAE1uNIwXiO4jfv0uLzdNeBPfHNpME -6lCmgf8g4P6H3hbKrdgsz7B4rIcQq9amra3/d2qXWkqmjLDUFkyMJzqvbjMtmrHlRKomi4neGGKT -nQJFV03GmEQEW7DVEPGDYO52OCl2pslwycgjOJEN7Pp8BAU65lNtGoAJFTjQGEBxk4ieQJETJCml -TCnJZy9ad64c1gazBvMGUh2qBjX+eScLiSBOjPz0yiamNPWmUa248/42qNzHJcvdsCySajRTPtrz -RJRehBG+BOBiAL2vcvz+ZRH591RS+C4d/NA0lyvvv+QPvxyZG82dQ4sz/nBL14wxR3wO9WNSz+LU -pdwH3aEs+iGOdFp8i3K+iC8iPTESlpez+BYb5IlZH8QgXURGsc4TMWg+osPzZONVNUXerHUiXopE -3Nb6JYjYov8y0mYhohRz9ELF8rxYFXTVewrfU3rZcHalolIcfmdHF10ikXQS6xJXZkTxmIYU36IU -z+KLLEZfJcl6CnLUareexK0nkWRZT+J6EjnEvoZBTt8hv6GEZ7SYvkKGhaS3MDo1EyV2xFS58qeM -fxyrjqx64U9JeRT1YwqFUPoRUk19td+Q7IW8MlNC2jXM4S8xS1A3Lwa1n2iU2dP0gDE4JyKnPKNi -KcsHKy6JeViCvEQtVewebmynNMTVinc+IROl41RX3LlabXwcDUVsHJ+VbbwkhDpFJY4TlfxoL0Jx -6xQWisZ8rvua1M5UTfGZ+vGS0va7JFuspGQtORLGyCVEpN4e0uk3FRUP7XOR2yfdPtHFdkqrp8c+ -1BLlsa8doUSsk4humza62y1ZvZemFPSUYohTkwqxREvd554/eaf2dsi31yXO4yRlvFQzPtVPETUe -VYkoV3EqdXfSeKv0p+pqVNw4qzTv/OUq2orw1G88qjTjU62KbfG95PZkmi+nIlbeFPMRjbq0og/z -Ed3MSzvh5+woI/wIhT/tCbGK5hNqz6F7GpJQvD4+X8gxrRB5ohZscmLs+fwap99QwlRK+B7KdFJu -JQ5fSo9IChl+Z6/0eDFfTvguV/SQ9IlibaMszfwoo5Qw8xtb6bdkNGT6CeV8EW3eQokOeaGSn+hE -I6j1iQ7LtXvanViy7c42ghazs+3OmthO2wkP7cMOrabZNvavX2ufSK+/m2pp7WWH6usbJhHHsqY8 -w1P6Qmop9//NVyM6ZWryjWVRE4uc1prHMRSqiXC1V8xJxbV5wi+EPktIxSaPT/pJv34PTmRcP1KI -fPyqNlxFapMa5ROjzYR8ZOIHyVWQQQvH0vKGhIsTyw6y7CBHnx/L1J/5cEsHDVc9mQ== - - - RNIHsfewfRWDvqO9DCnae3iaM9mH+T7MlwlYAAIUAIACIOAABiCAACaCkC6GwiJDnU+08WplpB5h -vkpCvKZrvDUTYz0wPArY8f2yTRTIS1gGDw73Cn81e9U1GdtXBzPRYAmoikKWL8FeCTlodRHiXbJA -B415I8M6oGpHplZ2hLwE2+Et5DziUEE6rdehypg9FJlNw2CmRa+HVFN/2LHUIt83rlDY66lplARZ -aEwpCXPQDO2grQ2NKafTkDIjwVaLT01OG+JKWdGMVsRisKEFzUqoxhcXCY1WJHQPSeh+mOxDUx5d -iDrLGXRINk4SBmJSQ1YVRLMnIkttEZqAqGgR6vKkQh2imgqdQIQlRBsiV9UDRmkvVG/SK7aqkjA9 -yIuaelBUy1R1JgVSUnKaj1xCJemKwh9UyE+nGlqQkx1yGvLNQEQV/jJRUVGsaFXVrWrMsv6B0QQZ -ayq6A6LvdpiYo+SXDYtoomoNURUVhaiOBAVEEwmqsYicqt5qqKjmIeSTJkKMBia6ZTHSFzNTPSYo -ozOl0pGyVIpSVUD61Cng7FFI2IN6VUQKzj4z/dBkGhGsKZ8UxjBupmbccCEXDXEm45pFwxPNya9Y -MtHQZMov0ci0IUQsZUhCs5gMkTC086gcwhmijWJGFRUzoYJiiEbKMsTHEJHQjIW6obqNohlNqHFS -NWROoYdTndmFVlVjjjVjhx+k0eif14qnq2MZW97HF1QU18VYUSY6FZFnOlX+REx5yaqoE5PMqCWL -nIJWsvxDcTEFaWktpwiSTnw3lseiIqo6sUSRLF5t5RYqCQZV5TU+RZyfYCvIlQkRXfOTuMRTlTI5 -ZPkp6q63k/JQ/hr99LbCZJ9+bvWgmRoRoc2LU/mlHp/p1DTFB9WYlU9FlT8XKc1PYlQ6Mo+5vI1P -9dnwDS+pdWQ6r092XPRcw5udCdwXzZiZqq4G1asKV+d12O+8tk+b6ryun+RSoMd2KavZfY2vaUWU -5oxa9uTntGdLLpWLmBqnIL1GjbhfmYrJyx071jM2037PXhxOxhPqHLEsJB9ff2U8lYkyXzHuKuf0 -zhqhvCKbUySir2xuEt15L7TyxvIglQQ5iZCI950YkZFBmZit8ZaEQSKMKonPiq9fLS9RCT0NCqKR -uQ2vJp26qPUTXsT70cjuMc3sCdFxU8dpOU7BxSLd6hIy14qixHN7PEHuPEJ2RbLxhD+s7JYy2GXE -R4acNkoVQhqd5sO2CbvYSZCMtB5cecI7Ul0RDu86RkVFJgsxq3qVScTmxHNpI7NVghXDy4ejNSgl -i0DZS2JqFuXLTW8lafiwDqzABuHCN4ZGqIzeA+uBmxCMiGAslIECBA4Ma1iVMHQYhiHDsAvDMFwY -hqIwOEiQDuUJ1AaqhAmlQAbyPNBBhJEwQwyjmg9EgcoP9N4R6qHOcYOIHIYSiTxBFhmjXNTOXFKO -+jJJlXHd7lkx4qKK7eO06IdYc3rECMovpogm7CrTzVgUH+qK/FJMTdeJFoM28VHpMjPSipn4pyND -4pJiDpI45yQjjhK2RoiPXzpRj5O0yLORbt+GM116oZFZp2Y2kF5ywqlZz2vtbashnnmPGBGZKWOl -6dtpQWtJtO60ft2csRm90rsb8xaLK32VUSlav4yPdeUend0VlpnxNR2LugY/69+9tVhM+oCsoREN -ead2OJxbkVhH4nuw7Sga34Pl/K89WNI+VWEUPaupG+3JVRy1s6+llcW0YucqmdjKPre2Cun3l8Jy -KjOdKcVn+lJ8pvPQ9Hit3ekOTfe51Fb3ICJ5quH6VT2As6hb8xTTyGGHOEXSnoajRc2F3YlfZpBd -oxQrp/vTQg7VJOermqRYSHMmYs0oh+ZHKW+sLhGZ+TEyjle9zWKtJ2FxUfxofczFc3J6Cl009eHN -xBeOyq3KvEKZ6SckkWTGM9RL2V9YPqO0PogTEemDXIn8Y89JfZnkLW7FDH1OeSP9ak69mEVe0J9J -ogoxjfzQNNXQRPccc56R7Bop9IMlqc2RuqQnprHeOH6QLd+oRGMjNc9o8Yzukxr/aK1EdXbeiy3J -7BIdKtIep2mMxEudeKdjVCacMTmi6UxHaEJoXAoRVj+Pk/STVrymHW6X0YceqZc6h8rXZSb+iRFN -1/DKO8op83TSJ9PnlLuC0Q9x/WqGrC1ZI+IpyVaXTDYvuL6q0Zt4nojhr2WNhorSIFJF3VUVP2ZQ -WPFOg1XTEylKYu7Fr6IrON6qdInmEozGqjIT6VVTW8Kvz91m+oTn1bGDY79Uzz2PmcPqPObp3NL5 -a15hzmOWh8hsfxQ1GyhA4EA9/s/LiPsN/sK/osP/9Rb5Lb6XiFiLVzXifeNRDbI5RHGZPuq03eKw -7dVkr0oOcczEPZHC3qudXy2ZxK0xLWrRyJClX6Tp9WXBMjrdeGFn47lKRzh+6ya4E1vnyKtocXe6 -I2pLItv2STsSh80oVSueTDyoNHU/QQ1xTUglXvXbwvpQSTWLF3WETpZXO0NxmRaj3ovUZYpXSjJE -cUYntuknrZh+rldKPqVkOKrjRRWqqZ2FUFe1zJSYsGXin0pcqIuqrCqjZWbc1NPKVcKR7SGd2512 -bpmjRrmdDV3Kt0NOzYYui3I6WXvZ2c+OlExdljJax0p8jWTjvqJ8RSXqSj/+0VrZ104p/as0Hmcn -ytN63ycdYhJxa9qHlb3tKF7hSFuLLy17aans7nSlisadXBl3cvdpJ0GuhSS2R8fNzrbFUzQQKqMz -T6KIeTrJRcVzjA15khvazIbnKVG0ZeejyJGS0vuCdVQnpPlbLJFOPA3f1kiY5LmTqPgVSXxIP8Jy -NyHpl/zM5I9jDE6rFG+PitQu0tYqDo6qUWWeoizBWPkSLBdrs7IEGVEOVrB8y8cbogg3CtpBzmZ5 -9sjh7ItnUybtUTxjkET7/Uv3NSzRfQ2nH7kllKD9zY9Yafz+Xb5hTodR4g/1I5yQxP52VakvkyZk -0rwNDXFFQv3MI5AdRTKZ6UNIFR9pG9KTkEREUtNE/ZjtyFkiQabWNfSQFLSQzMWG+CnWOP5FmqdT -1bMHkcJLlCvscq6XZM/l+CYn5IanEbE54ykXj1OcehxzpHFsjiWOOTrYjh0uY5Tw+BznKovSj9B9 -h7PgR+P2ESStNHVl5n6EdRcR057D2aTtO2yUpXE/Zich0r7D6mdYoxOVeCJOUREvRY5kFX2JISwN -lSs0DU0/q48WyXCLXohF3M8TkUJelCIN8mKKOWSFlQmN5WMyErIE/YYsFFlVIQqiTE1qyz5n8owz -Sws3cg4sz5L73EpV0FRey45aeaeW5N4Ny9DpZFWnShMnl0aUYFH8mSpxU029V3dE3Wyf7j1a2iyl -078WVRXntGidyak0Ot06LcVnSjQnPmr8VGHHC/GnaanOPxiL750q32rjq/Zj6koVVBNfdVXGq1oJ -FxeP91VSpIxPtcbhxlkVmg2JC1UoyrirPpHKVSLGXV3Ve2nG7ZPudSmkwhpxF3eCdNOJuIs7UdzF -rYu7uDUUbtB0KGbFmpUEXSqtRZgbt/Za/fvEG50zFGPajCTW0ogk/5C87viOhpt120fOMEQhiH4g -BhJThZKK0PiSYMJEDjLTCZ13XIFW9RG3IpFiaAS/hkI8SL3sBt5AAQIHzLVartCSqgqu1/kKpIkp -/kM0FcjUSuCE5RIuEi6rcLnQRJGGkRESKimxJzLTkYzMZoVHxPPc0SmGx1kJaVNCkQqNKqfphB+Z -WnIR+Zsgo8IZsyb8CyM8cb++qR1dfA35ePWoP3KSkjkWoa666Gc1KwkWKxUke4z3uXQSNA/OZAoa -ESv+cM4jIYZJsRmavOAIKSLKp/hK7ELVMrvzNKSKzSrooWnQaHRWtJ744c2eSSmvmDT1GH7R9CEU -F2eJUopowkRCSh+jSEiYxPVsT+FoYZgyVZq9BB3kmp3FETIRlbQHSWPTEOv0YolX5YV4QZ7Iolqb -lJGvCDI2fhG/MTHkX2cSyL4OY528QSUL1w7asDEug2s0R0iEQ+bSnhM2oYaoai/6aBuOy3YeHNt3 -dufikfcibTwjcgpNhGW74Ro9LBJzWThyadd8j9ORwdcMcq/YLvHKLJov8SD5fTDIlyAliDN+iVIf -Ntj6vln6mblUQuWXwd/BFrkWqxFNJtS3ikV5Fxm/Gy+PISeeWyLGj47Dk4L+WR+DpfJr9kemoYLS -8YuoL2NQSZ6N8cQ4hCqXWk2XsXykwbSoiwTTIiYiRl6S0Kqkq5nJQex42UxV38Yx38jiETizo1h9 -zZ7EnNJRlTjqhJ5584LVcR2PzCyEcfZj2keKnAllzo3o+0TEns9sJVnhsriUhNSsZq4xyVszkppR -aLXUFKJGUctds1diPUTNtNFKNnvjpGxpiCLNrAZIRDdBDdHVnMKtNbdwXJXSmodwUaw7fPM8uo1O -H1vOnldI1Iw2Kz0mRhRjeswuO36+HGoKg0v9J7RV5TBWhRmJIkJ53pRQrVIEX41xhenqkuRADApb -CLpCZSoPFYsMg4XBIrXYUgpTq/liRbcpuBjnsJcSWLSNGEjEYiiFIVmLVbXAipLyw6k0IYpCi+pF -DYQaVlThNHZkgoIIqQLVjLRW4dDmNKKzKORovOiEyNRXKhZInyzQzEzwjE0JHgcPJfAO5dUjjOnx -IC4GsfgL4j7U1YW74mGoqsJcLmH+S5ifH8NrryC/qUgSXp//QV2NNG0Xn4jVIkoTI80+ah45SPgx -PSJG/u2YLp5DxD7ThStlguLTbChGunAOsUlL2mSbJ+dLEWoaNmEz46kGonJYhSJSkHGQ4RSVg8wE -mSAzcinKaxoFyV2iBrcHySVIXttGZGiWokXj4+syX80/L+vkeKAIkpz3R5YouCYkUZywK5xT/fCa -vL6xGXLThIMkPBQ10eupRMjJ8SBfkVfikBft31DvBxc9o+SpIzt1yvCplJloGsX+GDPWPHhkDWU9 -Z4KXdeTRY3Wk0qynfkv6Mexq1EctFPFl1CDjqoIU1I4oURHim6Juv0JhS8bOTSPnRSrypdgwwfmL -YuXKpWaJCDmNQYzboWieE0PRfmFIiJxFE5Fu5CutiEMUjkhXJN3oR8nhZM1shuRy1R6zL+Q7KNQK -oVV05EKb1sgsn0/aZ8+P1SElc+EsSDd31UwAPKKTgQIEDtBM6FAnKMx4gsLMhBmHmQVOJYYaw0BE -UQuuEH9Lemzq/ZzjKBK0dVvR6OGa1kRkWy3MOo5x3ECf0NO3TkXE/FFbR/Zyl9rGEvLps1pmoR1V -60KHigXRbPJKJau5u5iaTdR8KhyGe9R8wzFYXs1E1F6ma4K5B4O0qxm27jkCbSx9ahHhL/kkViLp -RjVljGolFJWSSW/FhuGWThMkwqXRpSs9ai6dEnPpk1hr+habPEQs6PUZmiZ8aookHYXPnPYJ/vxe -gzykC3J36Dkd5K4oQ8T2mBkoQOCA4JDcE602SKe0TJiuw5gn8+ro4Tgv+XC/aCOlkQ== - - - llr0q9T6hrxElKl5iJMQvzQK0bgSRRTCouuecUJCjD/NEIn/BBnFVUYEr2pCjC6HBu0OzaUTpF+X -8hssR/kVrCg/JDjdhrPgZhJ2u5eTfDOTE5EniLTO1UkWRJGXdrMkFFE89al8Wp9rrAWp/at8UiN3 -ERExka+Vu2aC6zEyU+SkSXjkNSOBZHnU/H+tfIKMcUz5iuw+eJHTlINpNKpPMM0SVnKaUoiP/CKp -MMEp0tjfx9hISETQTCuO8BkTIlUIsS9RfPFMoHES1RG/XgsyCkUkahcR54ag/HyYdWeUWmlqn6oM -H1l/Jg4mu9InDOmZj0xFV92jnWntijOPdhSMcjHipCEbXWJB3hk9CbwdEvow5MAhaagJKtTcHwo1 -ngk1MgYa2oSXHjInWlGgoVJE2JwLnT90gmc6YabBEgYKEDAg+Gat0aRG1jEOOsooz6bIwobHIFbV -gqrWLdiJ0t19XAzOo7ORfAQXa7Ejb9AfI321YtNpBU1a0YrgtG94VuNNxqN2JZPnUdsLnTVWsMoV -1XjVL2lWSIaMbzT5NkWZKkpNldQUpUKKUyNTRaxo0Iesdb6gea7lI+IUUa3NTC3iXkj9shyUNiaN -V2i9BEuiGCVLzCpX0B7ZsIjfmTI9hBys0EZIFp3KKDgkV1A8I0lxSTUvLlebGwr31I1cTnjX+qFX -EyqZ7KPNigxFQojmE9a8XTb2AMYtWUEsh1NfLIrWmvMPWZ9SMPhWR0gU7DqpH8HzG+tRXSMrpdq+ -Mmq+j7/nq3W0mtmlOvtcIxskOdJETrRG2LPy4oolorUeuh9KZXhag7gGkdZzuLZmDWLQys7w22oS -OReDSDnbsZ0RSocVlYpSK1rRaUhFS6xo9AsK9WsX/oziWcNUrhjRW1hFcmcrSKTI00iZ6DvViUZN -ZD8hO+9JbU+UIs2FkIgU7V2ke/OVMUIJlo3G8EUZBZ2s4ERHZxFdpKs4RfyQZJTzdRJ1hmcMy1+G -cZaLcqW11s3WevN4HY9a79Jy5J0rrawblHUscnBIDnoNYtW8inLwfDtWgkjz51QpDQqJJC46i2g1 -HjX17lysIQ6JSIlUeOQXkeKMN9YzjpRdIznUqnhEhCprfZUZT/G0G7kYyX5P0pM5VUpU+C5FVpfl -y81pgrvF80yUGSKKF80fokM8dKs5SpZrXtwYnrJVpRlCOA0UTnfLWIIijWCQ0SVS2uKwlFTE4Bgy -jpQeFcEtSo7jWg+iaSaI0gmGoxg0NUMzHmezeXzWqR1VBMsS7O8Y+818RRc7ss8TTxxPdE9aJDiT -FKWP1j8sNbJRFNqw4/ZRPF4rVFu538p1RziheDjiOBFuXHlxdkcWrzJ+JpllnTbYeZ2KTaeiplSx -6TeVCA7JEqlIw6J3oiK1p+JixfA5pJE4nqqQtfpwHGpE0ebVQnoukj7/q5HpSJymJjVHOWFXQ15t -tJ7a4NBeU9KYmE4EteQgx4uVGYeQdMk4iFoVNS0J+kRN+zKmStQH3YrGLN1FKhWjlFbpRFpSipva -R0T1UdJY7EFTsamno6DpTHxKQyFTkgdJT1Ubbt85HU5c4uxVzpWMLa11nSUcRpDQ5wSNtFq1kkbS -iL09o0kt2HGZtkjLW+hzjuKKL3Eo46O2tFabKWYqlZpWLtgI0siu9Wp12mmnccIWTViinZSIMqPd -GeRH68YyGv9o5Rd9VC7BfYQ2mZYLt5NubleXZzJt2HN2pUE7TbnSRlK4LE/3dMmolFKWc0dPtkzo -UrD4lYkRK0s7lNXrlJTXVlteQ1a2huNM9CYSx+LJ9eN+xKElJmiC2sZcRyyyKJQzWqGcUeFQTtbB -VSgnI2oiZ8iJlkvlokEKhzHEqNCMW7PNTVZ0JRHVm/bQURLHRDIHUdF9nUrO05nlzLJuPT+GpIJo -xmdpepgvSh9vmV14WuXgyLhRKVVr2eMt/y1FpWBFhpSqkRCLnglRqDZValGmOBdlSorT4XQMTis8 -oteCY9AvBoWEs4WQBJI1ZtBkWfY4USUp5sEkzaauyYqUzCWl/pDDKUfpIAchUYhpUbxJf2v+EZNl -5Sf3Q6fSxKB2WBJxaY0v7jovvzX2ReVMoipCvm301iAn5PJNomhBcUYEl5M1biWTYtHjkEXHXKom -iDR12R+Fxvhm2pnG3yhCR1GIDp9VRWOIP1O/pLXwSehzU42mfClDnBiTZnqURKBHwKKKb+SroRHV -DL1BmxdlM50aa2ovWaRELjL8JEI+QaTXsRt7jJV033Urzasv/jfry9nahbly45Ybd+MypqVWsUZk -UFYqfWIkPHJOqakazimksGRdNkorHX0UJzM7u2nbmc5WEkmtJHJ8o34fZd/XiOlEXHu5FMdHq9dO -h2jClmg0YWka7T/tUrJizeMrpejEbOeomiy6ynLRRS8zs+jLiL5VF8qM5GzNxGgPb0DfjttAAQIH -Qo2lwmqfX6goAp0stBlSXeJPBOfIdcu52hfBqLTuz5CEenxBMqS1LqpqAjs/qYZIQ7NG6ck9EW5y -8pN3JkOhrSMrn9rU1KFTzQnybrMYczE1zVI3H4l51DNU2Tw8kXr+sk/n1E+oJxGd/3V8m5cQhZB1 -QkyGwnmoq09DSI/YRp+3cqqC57hiFrQZnag27j8iazZhoVXVJKuO6lTRzrGQ91jyrDY1Ymyi3kS2 -T1WmOo+Tsq6NbM7KxlVlNalGFq1estmQOcVvU3LPOhOpGArJkEjFDLWnqGTSKMWTGDICAACzEtDA -IAwGA4IhIcHoan0UAA7sdCiaieFwUIZmoiKEqgQACQlADgAARoxUyuD5BzosgZJbMwGWpQHYtS4r -Ctl/PLf7AHpSOvrUADjxygePJlj7TQzSWbirmxSRkDarBgAqtwJAtUU+UHBnEFpXJ0wd+9cxoyjd -K0HOhCvSDRU41oco++ftOvzO/nUOCYCs1lZlVBFbUtA5iPgh48YqOKXpW8LR5eVQA7AwWUNpiCt+ -bO0hjlapAdhpzvi+V3Tt53WqLuxpADLXZUjCpwHgns0M5xYM6WJfaJgG4Gcq+eMWWGWJqYT9dbfK -ohcDaOimprSfFEZkhh+0qCVonqXOallangbAKn/vAFkaAK0d9MT991z6nu9DPQk6JGjY+zD3iC7r -GQGANFZsO+I0018D8DndBZwI3K4u+WsAgkpGQ4UBGXCIMJsrBIYp7BFSCj82AGiIL6H06xECwgZg -b1EIxn9YQne70KgCLzwFw9CyRnRQxsUG4Cwv8k6uIKkXG4AfCYDEQRXaLOAt/SCRMswNAOD4NsGO -FNMvNwDsRo0n6T0dK2kc+x+RQjup5N4GYEvi2WHyf5Np1cxICtFm/Uch2AZAqDfDoiQmUyKenCDm -TklmbQDOt55LVsBoieu++RiL2YO/6XdyOI1rGQBFQjWoKyyr1FwALrYFYC5bpU86JUiB9Et7UgAE -r+Yubh2ZZd4mAVAlukgAhMxFqZsTwXaXAQoQ6x8AL4ohmjQzGciJDQARYVFGb2sULQD8TOhM8UVZ -o32faX2PJABMpIEQeAXBRy4bAF6lddvSNrFSf0sAkEjba69tDw8uCQBubnrLggk41J8AAJ5c+BDl -L7jQ/T+21V834XEiItz/U/9/JYfVe+ny/4fl6vY7LdvBjjSHJdCCv2D7/8TZtPqLT9LS/5rNYaj9 -74LJ/xeBpT7vWToC/yuH4aHecAnw9G//taZvpmd+hggy1//RmAQctHzrW+Ra+g/WP6nKX2WQlwzu -FIDQOMVE6b+eRBHc16YkoeY3qDFKtORi0I9fho6l/3r/CNGmnJdusDn/NwOYT/6LW5CK/1oiMUSA -xErnRzDwX7IRKMVR5DiP9w/iHAkz7RS+KkjUnHK/mXKIA7P/CNZNc3wLdXSS7Pqv+G51Duwo178E -g7Ru/bfY++eJLcwYqf9U9Q6YmjrRqQRJ/wIeVM136dipchvPd9A/O85/IqB/7sGh/fwTb8QMIEle -ILXfY42vZBDGqw32wiN3/80At/GmLfCXEtgSTCT+xW3IXFnxCf+g7sC99mKs4MxLEiIgkyJcU0p5 -c+79TcSGhbf/6Nbgs93uj0K711aDEx2sOXJ/VJxelJyWS822vx4CW+vGk1z4Str/Zm0SFIVGCcn+ -Y1gnBylgf8r379g2lDl1dusv7LluW59ePFWcrf+CLBvxLrPHmtbq/zioweovrExw1V+I4QIlqv7V -OP7WQOPcP6H+o01DEidgg+kw/fsFq6DACMBH/52RJEN/y5XJPv8idgNuN5r+dpV0/lajpssa9Zou -0Zr/FXmM+HtQFH8egJT+BWIUapXK8p/Fb5k67wKvE8r/mgehjupYyd0y/ET4s/wJWVYpYo/6+NOE -o8dfP6jFhCkQ7kRRB0TR+JMlI7paitMVf9PE5S1GcnYEiPjXV9RRvx987451keHvK0KW6VYLQ/hv -TJWeZGUqd+AvN/A4Fr2+XNDK+L+/FTc5kjQOE/v+Otb34/Lt5lznKinD3n/3l9HZRZzj/Xc2vZIb -VJOCGJV2vxTE+umqd1FgvKP7I4ktmbburQdAyP0D6MamxttGr0nyt786Bx3upx09N7b9Z02ALUpc -KDKAaO2nHwzLTer5ev4Dvg8VTdhzWYhFWvObMjKJtD9/KdiD9+XVwCbt7wBwcG58zyw/OVBUpSf4 -tNmvQpHVluw3EEdqnzg/AJbYv+oB0eC/DRAC9hM+s4wIkom2u/7R8w5JYJ3u1i8FK977JFbW0Hq7 -Jutfy23KCbdCr7L/W/2SsMA/zL+SnDtT/WXmQBarZuqutf9V7ANcKFrZPN9WfJByvS1HZSCX049D -QogbhTL6iFNi+jVOSnLQdvxfB6H0C4nfjtJ8qKJNvIL6xEe/WAUV8qkfV82iHztWlSRV9JeUO6Fg -6D+8DW7euFeE+MgD/UQPaGPU7C8D5tDnby84LydBpUE8v5vshmN54hZFR+efjYDmgWdd+c2v3IiD -v46bDpECs+MuwgGo2T+4hKjzgOJa8/cutpHXExAW2g/jX+4EnsAAA9b8HE6eiIMGMMCaP2UBT+XM -p83r3CbX/HzDRYA9LY3wajS7FbvALF/TNb9TbDkh69AgBkDDVQ+GZA8ayDyOis0MPrD5h3toGvrb -y9B8cACOFqDqoglkdejg6lq2ponR1f9O6nnNT8F5PGqgLMosmUJaqSITVQa+5n/Q9vYz9/MdplP0 -Gza76ppfxV/tg1Dv1Jrf8h0KE1soWLOJ3ejk3VaONb8SOyw3Hg/Lb5VF/zyt+R1AzridAhuwyW4J -8tL/av5KHS5oAWJidPQPmmoYl2LGZtb8yYmfFwPB6UPrh1jzG2pnYY9vRu7CGW0UdaN7LSda8wN5 -RsmwhG7+V/fMSX4YrG5ta/7qDCa1CJMkcASnzJo/vp6xHs5PsTXz3151EDG8oceJ+XcUID4xlVoI -dKW3wUw/4oo1JLv8MolqmdbGKvH8wye0TuJwl7/D7IjBXHLMlAZro6YeiKIm1oWSeQ== - - - +Zccl9KUHXHQLH+C7k5tWzYuJ5Y/tGuRf5eIiAtHZyy/MpkZRKQk7pK0MmT5ZR5HiielOE9p5M1N -PdKpKStmVnu0k8rWq5JNRTVZfoIw7SERRsTaLL8DsVljWnUGhlX+qfMTWtG2s6yAKD/W9S0BG5cO -OLuOyCSTH3njXxJbPznkLiR/M0t5cn2VR8A0tATGuIXuCh4LhBfr4XSXGSGRWfCFqfBD/i92lV4W -iBjyNaJQ3Scv4emCGHAw5M+U+BQOMLHJDK4hfx/H9yLz4dTHLz2rIJuJwhIkDMy/cdVNRCRg0LAO -G38FEVoGD0M2AWP8taX7SibOZP1p8Us0C+uc5GJUOqL4C1/P6tSehRsS/6bsX7gIIuJA8of/s+b3 -u1/G9uGnLnige1cdzaefD3/Q2nl0Lzsf/nx+fDaaP/ycaBwv0RFfqSbrvoA98da2Pvy0qRMxQYU3 -f/hRWo4n8Fl6hubYL7pY8Q9U+n/49Qr4yA25bP7wl7PtcwiMx6v98Ps5iTHqACE6jEmfFroriF8u -/bIVlKMNHh7tzSaInwxGmbrHZHEh/iqjbOdNIaBH8UKIfwuwHnSlbNxCHTJKQvyVggueG+9+zYwQ -P0n0qg2xDs0yO8SPl83eIQGDGdThf5yakjWo00VbabPaOZli+EH+Rsvh1FuYObEYftiuLTjecIOY -Rgw/5xh3VxryQBVsuO0GZs20kml8iuH3yT5nezy4DaIk/m9U3/rFxPBneTkeA8MfJ7+TGQx/ZkC4 -0LcQKAy/EKIjo6sEWHWgYC8UjuEnX3Brj9oAz6SVY/gpLjWUyRAV7xHDz1ExMnUTxX10YOwSgMA4 -hl97i1TmAGlxV93gApF6mG43mAayUNRmeSvvJCwjhn+irQM9MakUnkmGH5E2pSayRIr0MvzchQ/T -8BwichwVBqi2b4o5CaVyOb/2pRTR8EMjV4nDqqaF+8VYXhzrRMMv9188zWPjCMp7HwMIEuCa2UT5 -eVI3C5kswGr4DS2e5eaid2bN/pWV0PBbAp6ouyDMJw0/1RprlqGQ9bhXQcM/C2PObzgklxp+NeXn -EQlq+PufJA3MRDvtkIeGkitBUcMvlPTwqb4fs2BqYXKuDT/BAAA3CkfRkZirKzb8ac378ARQCIYX -WC7a8MNYilalA7f42/KgreXrf3k8LW7JCYPYQwssNfwDDyXdo9sjLCO0DT+P76pTjDMmxoYf2W+7 -5xoExgkAfqp3doLzqLRh3L1pJDb8m/cggR0h1lfDTzm1mhOgsMe77IeFX/RG8NqcUIRlu98bZ2sE -9H4AtvN2aM2KLar5kJ0hzgg/362KGOY5TNbgTzDx5pgqdBH87PKis+yMBs8Cgb/l0rBde+y2hML+ -90W32Q32qm8xvN+HDcxLGL8vDAKa+76oAdl8XwNObbSV738qEjXO5J4eNXDvHwpIC/q296k1vjtq -Y8iR3j/gOeti/0/ed1VBcy4Uqm5oAe+PgQLEOICb2GjwM5+QNPV2f/hRVJgkt3HJdT8GFMst+WBF -fUm5sq2EUXGh85AW9fLEcx8F0UzGGbmocp+D8KER/t/OuA/i+sNGk64NVMgyGNxvdZJsCDBUmBVL -b7+vlY3t0vOL23/rVylUPKWCArT9GgI6pstmxLEnwNd+/Qp3aY/0x0Ws1T4cxw7LtlGZHcXjTfsA -fjxFpn0u15Lso6dV6D3pXXLIx3CwLSU6+1wFExzgNw1ZmcTshyUh9KsFo2ysouz3f9/to7BAc+oc -H/sQdt7zSn9jZ7GP/FxTm4Z9SiiIQ/eVv4XlfbVdB8yxeCHRnXxf/3CH46HaKxh5ZJK8fgr6z5i/ -DyFen8M1jfZywtwyCY6un5IR82B6cHj91uecscW1BVb/WhyuaAhTvWugRaQCiZr1Ke/XRI/DzlmB -Jyk8uE9lmr539auqHrdjqJ7ERFYfujfySDy6S9RP1b8yITaR29ILIgpUfxZnlxUWCcyc4qU+vyke -QyH3FKDvqH8XQy9ht5eLjMaN+oZc8pDdcoCvEQahPgrqscGXfjWrwtnTTxbC6ozzkkoUltMXm2tX -TqjlkXpL00cfGTOh4Il4btOw6KxIgHNMzEOc05V+GT/ArPSHe1+w+GteTTA36dN/4KQyKqmQBI9P -pN89A5i/OE0HBAxCRv+dUPWZvtQkOrak6PsHNsw9y1ohIPoGRSAMfU8nZR4zJR4auiD0V41HD/Sf -HiKAPtD/e3Hvg32i/jnzzzf+uDWH2kg5+3wh79N6/QCY7fl34IQ6e34ktooUgLmguObx/EWAh4W3 -qdXOD0Jfp1/gtoLR+Ykq7I1QXEM55PzMXmHvcb78j98uwpIl8uqbz3+NgHkuV/QwcdbmR1pviTZf -0xqPE06iOShf4tX8FbqBnu3wdIdIT0djQTR/h8h1offRzBfkAujM/NkFoVUNIyDzq06NoMQQh/ko -OhHL2LcigQL+8pec7JvdL19NJZAq1CFYXX41QqLQ4UDYtvy3tNF4flUK8IyHEzFBll/ZNxSrImAL -Aevfyi+j/D9CNJ5U/mjLgRCh+CgwJeVr6AMSYmg+QPnvirZtaUiipT5x8tnWiOBPafySz/aGbFg1 -SLljkt+YlgTmaKGBN0xgdOSjNIET+rdQmwdWmj5Xp8hftBzdRL7yMBFjCzc5q00hvzY0guee0dA7 -CGJAfjSA/KKmoSIntCif2OGu1j3+k/u0FE6+mrvj/6E9JbDkYY+LcvxMsm08mlaKuoSOE/PSIzCn -nXhZa05hGh/PnbZ86yj0JBdbNYcOpm0LU/lST+eJBuNPqto/0tBNGB8aVDNc/KVSZLEOi+8ceGyv -T/F7oi8Xjuu7AmjFvZ0w3nQNYHni2/MtUp209DXZ5nGf/uzEj6lQIbljoAebGVqL48cSvahfJ36u -HguaG+UpoRN/YXSl0oLOD6knvgCDdd4BqzI86U98KYZ/JPhAaJ/4gRMX8XSM5HBSn/g0DBmbmedi -4hUWH+HuQl2zxSukzH7iMyIKMS4cVyk8Irl+4kcbnBdfOe+27/XEJxlJ6zjczcAn/kR09y5x1NzP -u/EuKb+5rDw5f+IDsI2kCbyIVP4ap5P7iZ/9JKUJq0kB+MR/6OAGs9VQ7v/0DS4wSmuYiyxTKZCr -Q52ICQSKzy2rbvncE//tzBXDUsEjn/jWLmc6CcnVgeV6DomawMzD5VUbBuwC1zJIskgh+8SXypmI -ppri9okfzj/PZNId4No2tPhdHHtjH7KHavbssr0JIyojqj4xCSIUqja/RuzNkm7NY1B8VEO3iAEL -5t4ExrHxiFY1ClATFL+r1b6YJRsPo+sQGTIbzUVYSywUn1/mqaUog6KBUPyMZKoPIBu4/APFxytF -uOZhIbz50joEIjqu+sQPYUNrKCCxrAXBVlHkE5+kxyOrmuShC8FGmCdMCPa3pPcTX1M40PYT2jx/ -ec4THyOTuuuTKkHtbORxzRfG7RvhE9/oPxkfEO8xJxZDJYWbsFDP/cRHFTx267I8UboIfOLTgHhn -e/TQuuAnvigiD/zAkqA9LZYZsOyJnxVt3ptSfvcS9lfWRuepO77zibS06+sIDeRYcLeQEX+kfWQ2 -hS/kAyCD+I0a3AKVPrB/CXH08Pnzi7/UqNl+4vAD9qKGE6JFvjho+PuvxXEt/E5zJfc1v/BfKuFz -4cd2CFaxwgfkG8zZLFHEuAlfM9sakQhfwzMOPnKma5xqB5+feGQIHyWUDH4uh+77YLIkBaCQgh/F -5vwzUPBmEHwxcwbnxnA307QLfAVuIXypKF9O6l8uEGunXxQDfGzrIKzT72eaFPbfc07DuNHuTjgt -VctCf69E+EtOlVRI6/duXDdmMiFZ8XsIupTlzWxkdnJ1bSgF7FVC7HvNpivi+r55MEuG1v9WyGpX -3y3kh7oINblqQ9IbnCqb783jzPUeCVnzveezde3+0USa72ExLqnobPWzS97ngzmzeT6FQJrvRa+u -uVwnbr5vIwnns2p1qfM9uuFacyL+B5+GaTzJJgjZtCDOW4fy831TuWj8XM3g5/uEKuc8lDGEFCrT -JWiQIQHO9wX7obIoHxIZ8OX7P7foPzJa6SP/qGtRVC5RAkE2DCIZ0Gu3fH+FDpxzVPk+VoBt/ytt -2cmkfE+I7hbN+LUknir5G8VUvv85mwa1snDOzb1Rw8Do0Ih5AXlDQWXle+LgwnCNg7L/PPHpJ7B8 -XyPnOafN8j0fYDpULPN9EH4xQ3tYp5P5nuMIGlovfsz34l/oW+Wtnf0QyAmRhWSUCpD53jBnQ3N5 -hQNyUqHx8aPIYr5nzi/3FCuys30wBNltF97XPuqs9ZbvP7jJn1+94cB4itPO9xm2mjVQb4sc7Eon -dIk9Roy0QMsa/oPvRcuJS/hXz/dOG8eCTIoMW4bTQj7f65R78tztC6gHqzia77WRxvE5GCawa75v -pl6wcCEX6K0vIy2PKCRnBSoCAfnm++IW9zHD/ahysFR0dF4eqPpATZV9KKyOiosZ+xQxCYBxvvcz -0c1j33UWn+9N98dg5O/5nrfiehmEEamrh7VvQc6n0jsf8374eL7/MacwUsNT2/O9iL7HCT+iTD3f -1ycmK4gQbF3P97K7Is0pffM9q1ofAtRWgBKZyKNXK9K8DREDlHub78u0Y4DwJeM54Hy/UFAi4l8a -impMuTFGz/c1FIWYooHInu/78X7ZM6HNz8TO92+hoH/rD6pgDduZddufiVi7tzDvPdFgWusZP+29 -eNjghmQb1pypQsLV+4uFTM6q3nNuhWb/EvC7+8zyuND7mb3fGfMqDgo/sXvuJXOg9/ayYntNWmph -s8fzviU8vPtQibeqG7l+KHp/G4dseIltWKeA531a1ZJ+kRuBYellOu+dQTq/BKN9OB45I56QQ/xY -e995L7JP8pyUcjffmM77wb+2pD24gzcFF84/hfKr2I/hoHD1T4WytTDVWFrgk+h5z5FhI6H/eoIE -LO7U6b8ZXPq8x2fBRye4K8y5TfHWd0+Vo5Cbg0uca3pmBVIdtc972fuccnv/hJBfCya3Y6NH/77J -8Z/3oQES+qiUZkwveA+c3s3zpMkbiRSq24y7gaBSCQnl+STAx0Mg2OC6tgXC77ABP+99sm5AuRtw -0Q8/791IkR+lFSZBk/XJgX/GXbCKArYrqgDovSA/ZfKZfSG+NCmMExghc+F0uFrvfmFKtHV+r+Ss -+7s7dIVpG+mdoJG10ftaav23u3fMaT5k4NOWDN1CSO+JXXVigcPIlhNka+m9itL0T11L0GojkqGl -951PVKT39vmZDJVPR++LgfITMjLR+1qVm6WY0g75QtNpv2JeIQPyN9slvieZkFDDCMEdeMwH8B4n -kBN0Eb2vMStnIRAwoh/NX0IImSLtc7uWCk/ynej9F0U05tA2BmfTJb/JNWJc0XtM7go7w4ocI3oP -4nKvVfbf8uYHStID1AHR+ywIrtF7SaAiSbIrIr3vrym918B5br3aBvPzEW48IQ7EPg== - - - HNSe1CquVJXeP33DLTWBDaENZprsMTJubIbkhEnpPcFeCAnbC0zAHbhK74PU1uh5H73bavD+zVNz -vAnawPtm7WIwvU9/dpEY1yix6T25zwLYJ52fLwblv8fPUqiulvmG5BPZSYPJ8WZpyX7+ELLAQCHT -+9dt8dexXOQckOozeWaZvTBxgHrdH4sIfiErnPPeH/HvSp1cQnLY1ZP3IIYE+eeY3hubDtAUwVwK -c/Je9NAExboxpgmyM0/egwYyhJwLtHWSZsXAaoSBwZZmBYf25/RrIyXTvXypAiIA3FLzhSEK5t17 -zIc9l5nKMdz99RzXvuY23grW2X1sypNv6lLCB2W7MhKbTYfxX9wS8iLVF1d9BYsQPX5oYyomjI/Z -fY1Vu3SfHNJqVs8zUg8HHKb6q2ei3ZezHqaze1RUYdQR7T5+6JnxLIF+NMX7dJoNq7Q9IbFRSrlY -2n1hhCIEv6bdM8SkzaYrH4RFbP/0umEdiyB8/N9/7GBL941HNffHB3gKDhnNs5fAjlK8K6KMeemR -lA3cgG8Xhdm1UybNlHQnjLW8bvPcM3yOhytYyHTDrRoCOJvKOVQdlbXwBW2e+5Z7f7beMzjXc38K -wEDAtueeJLq3XAANU0VavEVNqXbWkNdh13OfJDUwYiay6TyPZJ57M2vq5mVxqxEgzWO16AkNz72M -iIWBuhlQGbQNvLqI2cGSLAckRr3zPPc9Ic5Mz1g/SW+dA/hYlIade6zNGz3IDkvHcwjKrlmkUJid -oGBRtS5k6NwX/sKLJDFtgBBTyJ4QCGUlcsWIc5QZ/GrEvbuQ50LYJAVyPyNtD78CbeqHcZ9Jbu36 -rKHjTQfk4T4b9D0vcfcTNbiv0UoND8hHnNHtfnulA80hQgW9PYE4ix36dvtEqaD3PJ1WbKRkTm4f -kZ9LdEiVILbt7VrlHDab1TBr9XUQjWimfrt8VXsyvVq4sn23y/ZEjAz5LAcXbF/dbYjD49p3qsGG -W/tJB2Fqa79BFlDuiUp1N1rtD6Oj9qA8cEkqqf3xttCHj86U3aZ94aucCBHbFMSS9tlj/fIseSgI -4ceyqaAT66wd0D5SzAlQ0QL67+xfAkmcqxNsZ59OhJzel8WBbfZIACqbvaMFMh6Hu2ZvCx0Kl5MH -ho18Qtde5i9mv04YqZT5jFn2G85gxxy2FRgpLGUcyn6cDSjekeGYE8CP7L0RrvwzBiG96B4fezDs -+mJK5AFCVvljVoqdQkK6U19z3r0eeHLFhn06BUXCXreZ3OOVGeIGT7D3cZcZm7G8ANhz8vju1CbG -UnZfn/l34233+l7jTAnafa9nFWKm4Afw9fEtapcZk4uvh8od6O6VaJu+/syCDkxOUwAVVGF812vx -tZezrkfOnYwQrMNic33uA2LrbEEZqP9eAiWuFzz69vHLud+tT/Wwqg6thpGtH1lZQ1JRxClxLEz+ -Atn59ZlQ689J4NsAtQD0Wa8yxA+Gv/0WlvWrFRYIcdWQcaw3j90FFaxLlHIr1Z6ZkBVp8dVD2VWJ -eq16OKZ4tXpB64ZiDas3z1IYoiJdjQuw6p0tCd+0HE+IdzSe6kcu84QtV/M5hD9b/DTEJse/oYx1 -Uf2NotK+/xL2qffGJpHPvr0px4AMv9XUUwSKJXQLy1JfJe80nP8SnLlG6ulE6nuFBWkA28YnG5PN -qDdIQgCi3i2leVCvEC8mDayE8Kfvv8tgDtEcfFAo9YNCb+iL2BqihvuGRhjWE+LSZ0N9iNOzt7Eo -tGXTu5vTYR1HEDS965FCpYdoh9WsL/a9CPvX9u/2+tJjVkPZcDFmz//otzEIutKLaLCn9Dp7GTV6 -o1CB0vMIkbly21sZUsyaUVkqbhSdHVOhspHgCxi6j4hD+ngDviez1e619pLpHX2HGs4kcgHQeaOP -xBxODae4a0bPEldth8FL2hTicWQXfSigqc+0LI8SssJNRe+z2ADWuxRYZYk+iK0Z/yIQMecJRYTo -c8BgLrlVOfQLff62swHYGzD0DOrHkJEH5YmCMSf0HT/fGdxMOcYDJA5gD/pKmmY9xxCmN9amm6FK -uQz0GkFiLv5g/QD94gfCmqKOLbW2ERY/pjYlIvxP9TvqD6bZ+SejxvB5oVPtjSh73sBWI8PyXDKi -591SyvYRXqiNPN9PwAwIQmldihjIckyydXKXB8H4UMLMCoJmO69KOGgktvNuWWWATG/0sKZpnV+U -UphYk7KZklshnd95LKUpI97yL/T9qVC2FOak8650nwq6mKIs6XwKqviTUCMcccA653dfsRMpvIvC -jDG3evOn/J7TAyAnAENx/mFeBBp9EZc4f0gPTHxFBZx3/qXzOVycu3n7aBeNSD/kQ04qJxIXU2sy -jQt0X7tvh9HZvHu1MtwIN17zUmG61DgRqeIyVs3vRgvOmeYPOIy9ad2C+6aheVU4OafomsWqMB6d -eekLzOsGYuYbGj2KXlhDmTdTkIiFtHnOFz7mn3NYx46nSorFPFhGyfs7ZnQ510n+kA7zoHMpXiWC -+eX3GDB/D3QT/yju9+U9QMpBmS88eSSER17ehesV0Jqz6isJdfmGcjOagMxAfC9c/mYp+vi7HVJY -2YUtb65xrLGgX7CQ6WcpQ+yPQemJBkUkfwgKt6xHr7yknFEV97jPfr1WXggFTYM75MWfzyq/mrZh -S9i13ZHrqHwcHd0ZKv5qyic1mg1lyX3x+0j5pJj/z52nOCPKW7zX/Qv+eLE/eYGz7DLbIqo5I592 -8p4hrkHDTb4FndcGZmwgL5Nfh28yOSue8HaHS/7IzqHSc6FrCwpMyY81ocFXD92tkjwyvyWIZ5UJ -BXzxliD5w2pxHUfeT0D2JrrAqtDQgL3Ily5BPpVheG8xkU+fmQ875M0zcbGD+zzyLleJrQvYrJgD -YoRhvSBf7j02jHpzvERSQj9eSFDDBV58vGawIHwIzPSqDiFNiR6PGmEcMWe8rmY0X5D0D62aeAYF -ZfcefxI8VQQ0gC7jKyq1B6MgRCMscbzESmiyJrcGd+NZOp5BPS61svH/Lpe2yEEeqfHPgeIOnlUI -1dGg8du/5MloRfdR7zKX8Z3CZILZx/hDxi7sconfAkw4724YL8eGt8Hz5s6u0hff/WOgIfnikUcA -VpMFrCZ4AVQ/8VAkY9PiA6e7qJVEsHjhuqSQhWbW9QH0Kv6bEZu/BNQyIBKd4isDA9Ror/UuTJeB -ZzfyXTeIz1rATTlZmYlf9Zi7gotEZeLdhG33SRWAVTA2dkp8DVIgiakI6Fr+gcRH/h17UnkQI548 -0k9A8JWQPcQLXL1B5yK7gEH8TdbG9NcP8YfntSAZaQ+/T3n7ZHNIvLwdvrryC5fFlhRyeLCl2234 -qKQcOUVfGt5mJKr6oAglhjGcCp+qRywOKDXeHwLD81kdG5BBhU+YuwipiGXBMnNipU8YXeGV/yUJ -5NqzFN7i/YtP+81vYBZtoFHGduRuyRWIEv4NE45Q18lFciUuwu8T657uYAP8hUUQfpngibpVaB74 -ppxJc0CTXCnxGBgID6PYsJRAYd32Ocwa99JirCrKAmY/+GeC8ME6GXBLmg52Ix2EFx1kB0lHixyG -EL4FnuP4zUnAsB8hPEcIk3SfzRrTnRDedc/dvgCXAdUn3Fr5IoTXHowiNIOa8Nprevw2T5gQpo0R -wqvBZzJyqqWTbbvYMpC0WgGej4Pw+VRXXjvqvnYQ3jq33pzaBpiZzBUwh+jeSVk07oPwhNhOtBLZ -r3Z+OR7qcM6n+yIzoAevpZ2kJn1x8EI9lQQWD2c0eKuOpT3mNTFYAKBUKMdm9eIDqVK1lMq+4C2w -jYAt6PP7BS9Awm4bqQFf8D9V//HtlSwHfMHX6QtRIfeC11Np8kxzuZwnNwl0lYND2Kjxx8UuJd11 -mrzg+7EBgrLIxE+MUKsPN4L6hTgRXEmFE97gLokZO4kraXbBa+0iv2UJLnjnwLL2ZcRJvobC2zCB -xxZVhwueC8HSBe/u2Mc4sF7wiUS/g6emsacSOtdkc5mEbexSJKGUhoFTDMcLfsI0VegOOyE++YLP -9zVA9OUEGHxm6YOpsgnCDYPP7tT75jrbqJz5C770PjOQWCBrF2f4BW/CeDP3t1J4gBr5gidhHd/j -Ob/tjRlclD6O1wveQVN+FZhe8JJ75SZ0FFxSKru4cebjTWVgXUD0gFbci5LB761HufyK0wXv+5B3 -r/nmdr0wdunosy74XwELIpNywfu1zlAJI8WDLUS18tu64Pt0Dymd5oKfnimpZfp/C56E/z2iMt/1 -pvzx76YFn/JNv7bglyGcJxCY/GgL/tRbyFAeTFpOTOdrixNuknWA2IKHWmoyNZKf8M704ddswS8Q -MxTagpePzsqHKkuYAcIf04Xlyak5FYHTQtuCr1BE0OpgtuBV7yKy4RZ8SP3BwtzAXPCM2bQ8fKKc -hAoh13ZlJKQLftXhyVD6BRf8RJJnl4wlrA9qCh7BhKoEL6HDSnZUssuD4KmuK3ARii8j39Yfef3J -RRpoYJccTun/t5TO60bqVMEgL7pzOdAeMwQcIFDY13ezvWhDuJl7wFuasvn4dSaqjrtMd24Yujde -FpW4E0YMwJdbOowu49mwmBidq5dCSi9GEQqc6U49Ai0lqVHghHTkxDo/cIwocNY4m5/gNSB8UAvd -GP1PkmkVONLVuxAVXvu7GHp/a4IDasOW9Z4BOfiazwSHqodMkpGQDZEyUsdYzpR82ZbRCyBkgonx -UcIJoiJMAuiBpSWcxuycdsbuhQOmhNNWRT6r910hDJkh8rJV/tgj8EwdzguHkZ1SdOkGh6+EEweo -iYQDIZ6NcP7flSotjjROY1uZcU2umxuIb551gorcSYVw/GtoPADQsWSemjfXFcLxjsUaW9+Ns0Ig -C1K65eUMfpcXwiHODo0u8OK6BTqEczSY70AeFQ4Y+lBUCBRImUkqnHMASgoHdDiJwvmOE1lV46Yw -/tMyWjXGs2B/Ld2R3QlnVyO/EgqnO9KvPGxEDqk7xKZ3OKWG2kt1hKyP9MX79YNjO3T9rPrBWc5S -96TwllE1lsEjw95URqWp/CvvaKKGI8678TUMYlV5FR3cFAIH93qgH2T/jRjIPNu7rMJ5qlipaSlW -SuPi4vQ504cPK/2swpnSIreEThojr8IJUqbRUFbWLp2HCgfDu3FNwOAxo35UMt4OlhJojhkZs3k2 -o4xL6NsUhf4aPGZUmazYpKByGsLJYgXBeUKFL/xFvHRV7OozAcdoVDiUf4twiIjnOKefGcMAFSEc -2FopqpTbZQnaxCuIkEZdU9h7XQybto9R7nJ/8eGxvhF84r2qPW42QBBOBNNjCge2OeBj1+ZIzGWu -BWRcBWLvcDr/mA3jv8NRUIFWDeqMqE6LMv4TsJXgZpSuRQQ52BoOSVuVK0YIbxRgULQpP/hsImfE -TXYzquzTQwNix36r0nBAx98Oz70ZlU8FMms4tywInDJmNFQ/DYS+Gcnf6AbKsAEXsw== - - - +5e4fw2nePbd4/eWjT2WMhpl+J84I49rOFFzRbbOb0GCJI1kygChvwWYGg7EsKdxMNDaQe52wZ7A -4HxLcdt6EZzw6I03oyw/AbudAm9GBPa7ema04TR9a3v91Lu7Yhw0vkVmWo/9elLT5Gg4I7rbxT8c -3ICuNhPWYG1vnmdkbtn5R9RwhrRITUYhOyBA0YrUd/OWe3deVjjb+krdtNLEVrHarzLqpIS8CvPI -f3EJHFVwvCY4VlHz7ceFkadMrz/gEi/uAOqXBYJERup/ckCg0QIyLHz66IzLq5bqITLqC8fLPR95 -TWgjv5GfSaUp5ckTnAYpgUEfrdmMyaj3EONrh7Dy4npMRp8T9HUzIOxMRqFvJY+V5wwm8Voy0gIJ -BIgzIE0nx8FpKGg4M6Q42wpwcDh6QEgOVfd08ChlhDV16HYSn9uWMtIS64BKiwMRbHC2qWUimpvw -BqfGE9BVLNng3NU6WBAamFBG9gGBRwkOcqjBKV3BCGqb7UnQR+OH+9wcDMuITJ9HgwPN1cj9y1AO -Xyijz4QukmOLS0NbD9TEQzu2GeG4Ab3yk3t4hAMEEWcbinAso4+r04IlFFMjnIM9WgRtSFlgGdkL -StyXYCU4a3lggWW0S65XJaZoqvopwlmjojIrnH6DOjTLm0cWjpIUPspM//zXUclt4Ri71K0/vWYv -zMiV7EPgwPWXxLGMjLcVlRF288yMJeGsXyGhKrF3mCSc7IzJI8cXhHiVhAN/8L41JscdPQmHzq3E -ei9rIAhIONDXBTa4cKj+5lSlnlTQD2AunDS6qb3hIECTNYCkmTUjmXpT3bH9R/oRaDEj54HNkfzQ -YGo4Ziy8Fw6KMpLpBS8F5e0aPiE7Y0Z9sDBhUetBdcwo3OUoUQJ40vUIfNDMUPcly3mlhOOFoM1J -jAxHIIUTFqUuHGdoSc8ZEVOjCwfuXnhwOGuss6hoczjRVpvEbsbZuhmNSqZbAFGL7Z+KMKhwZTh+ -8Co8ZVBFGQ5YSlJpEqliyXAALsL9OpxS2/ntywZa4A1UhcUPcY4x38TECT4xIUMna7yldV/hAsg1 -StEjGdTa4pgARZNxYAMfauP8w2oB23Hw35M6rVHCOWrRhOg10kDORWyTnWIjJEU8CQw1ORWuHOHP -KAdk0Zp+Gx3W8uAn2oyVg9keVeOPhG50UHPXlzNu3+OYc49xQdCcy8uHowSImFEU54BFcmeEmmNt -VBN1gYCRnrP0vaPoA3U/hzJc/6FBZ4vl8uuho53YEXFtcE86AlhjUA+QUC/PI6SO/Bu0nmwxVOnQ -SkaJmS7FwapUrQs2raegfk5D73BggRKEm0rUwQgBgZ0JdUgc6oA3dEWd3Y4na8Aj/6JQWHqbHsV3 -wUzekuHSyb9GmtHqRM4DJesYXie3zuFMwpPknKlYiHSc9JG7k8miUEcXFnz+ZCf5g857FrNnQ2dp -50330WuuMLCA1C2YIdno0IwBd6T7KdIguTUW7V8QQdIdo/TuyXbHGI8YR9657lHfX3sn/0pPIhOk -83vpxARJBklQA+A5J9zCPgeJC3CCvEA7FCE3b8gSJIWegDADEgC0E9MiR28eUbx0IYU3TuIK+OSD -UGbFM+ZL6aT30nj842XXOsLb41kRKOZg5OFpToby3HFTLc8t8u3gzwfhD5Bsntp20zojEodNzPcV -yYX7FjctnD+56Dm8DD0pheQdRz972evzpHgbQSt6crSRnssuCP45wepZz805UF7PBnBNWo+EitN2 -A+8s1qF8qNhj6i699UdaAkIzY3sG9V9P/oGESPowITV7zEhqQiQptq6yBL8HLwlGDHaNEnyuCIqD -PUlgwhEjVjO2+CQsHaw9JTmYmRPAQgVdXXO9StpVn4aWcHiwpEF1pLl0WpKw9HrHoU/8q5syffQC -gFgOJo0f8AWvz3EuHD77NGXoQ+I+PT3fSl8Q+k5i1vs4xOh0r3DOUJN2dlzCkbGEx300zb83Q7mE -V0qJfib91fGejEulZdLBQBO4Y4CyMWn8WjlLZinFXx8uXzFN1QC/kkVjkgRL7qGwCChhkoabA639 -PITmbS/JYDbqFII3IOymD674YTU7FoA0fY7e1DQCcpt7SQpjbnRAYSl0EkQfMGBoL8ls8bSNb/Q3 -EtoMR005Nr6mz3DyvY1jZMymz4hb9dpX+v3hrZcEYnZHqVwWokNDGpqQlxkLxiWFNdf4wp4+Q+ff -KoQ+TE6KsAGiTzA7DGlBRbb9nkwgdk7uA0nLpFIORu0+oqggWhKKaVJtIAdW7dR4luQwkA9dSE0S -7zlLOpzdQYu0qjcuL0sn9M5ZPnefgp0PVpHH5/AfDc+S7pPX3Qpal9vO521JGrSaJVHf+ThsNUy/ -1yRFTHGWdJ8Rwz1ZwYYkDJ0P5sDVhz5XjOZMny4Yu5M8OudNDAlU6QWTtPFjDS5N1YctrjQAgnnW -1bD6pClo6+tjHntVmUQ1Tt7TxH1G9dPzeO/LcR+k55DYQO1U8EziuOCfozwzorsTaNIV9ylZ95eB -JikdOE4pmaBJIguMxciuis19MMmoyCWhAmy2zH0i4M9HQ89Ynvtojh+vJc5Y+JmEnwHMyaDDaeLc -p+f+yEMYOa7kMwkmm9Jee0n6Zy89LCFdsY5w5d43fdZGe+d35J2D+uDJz/+AxpCTyn0q70bklfDg -z6QbeHTTMB/V/2fSqFDY6LeV9gF9SWuBL8NTpzepZJlk7rzfpuUQb2KrLJOYFOHI9NAl6LQP7JQy -I6HdSvuE8Hr1TrwqiZHHi/4u+rSPwFgG3x2ChgLHMqlMsFhEDVD8tM+E6RM1EisKItrHzHsSIopg -h5kANUlxjL3QoRNqmyeoxHyG/tFNICuG0nZ603UPQHrwg3IXeT74IXPwk/uBxncHP8/Feph5LAYT -gGoCP/S9S9xH6/IGfhxcK63ATxqHOWqDeICBH8wIm8qFVHdNF/gJuvP8RQRHcAE/zoYu5Nf6UyyY -+VF51p5cyGSKFg90U8KEMy9PlUZRoYOFlKXnwE6jdeMLB1ADXE1sZLFJmgtC8C+vtBiEA/yg1wBC -0Q2cBvxoY0c4ftcPaAz6+yYH/ABVg9m42Fv/+2yWuo0oTi61xCbZfzjlOluvXBlGkhF/n284ziPX -SSgPfwvhSjWHWAUKx7KBDDoMWXqorg8vCz5hbT0WMUTIFkax3X06wRdoahKZCsUZfo0c1CT4c3mD -2RKdzsNz93FndXlX+3nKnFb7F7PdffSxEy5QAAM1SY1wjKTfSOBAdx+evkKdE+ntPjJIh2Xm59t2 -GzWplpOOOCgX3OsQzE9N0pFaei534iLMye9S+W3IyT5RT3vM9O7zdVF6UgHkAn4Q3Ywl49/COU+u -gTxPYQB+tgQGEz/9omCV/Hj+54jDlzjipLPpBlkzMyeTOCkfUIjHzYMxyt7BdNnNy3/PFxD5qS7h -0L3HjA/4IOIk3dPuOVJ/vcg3mjIRILp2yuzHD3KV6sraB6tgj5+DU73ZGCHykB8lgECPH5OxD/7v -sIQxbOnXtAHF2DX2Q3DSmHrlLeZFnxk+1tVHE1dg7L8RxM5JMukJPgJSTlIEvibZxiAiWjjp5V4j -n3Y4jP04frKVpNtgHojc+LGmJ2j3rSHIbwcfWaN9fPmoySRYyWGTT+I+hJzxE2A1TstXNw6B08RJ -K3iDN0wjB2L3FCA7pdlkJvxY2c37rHWccxgZ4+o0dU7ohB/K5QpMmLjwQxy/hvYGFielP/VtZ2aG -AFRr/6zJHD9xUq0ABQLH46eQPfzs5cfPRbX4tKoyLr/0+LF2q/caI9BJtDGra8hPIV02UvWTIT+O -XqMr2glo5hGH/ACXs5sM0gXCmvkqspD74Wfv9n1wnM7KyUltyYudWYplLcjhZ33tFofAguiMLR/2 -aX4J2ww2Dj9Wviz/VgN+N8gP/sdP2E66/tk6kic1o+wkWj94vRrh2Q8stPZk3g9HFz+DoLSZn8qL -Q8SfanGJuMLZs6IppJp18VgnBSXRNQQvyp42w/h+1HiaGv/JX7uaoO/HTT0uRauW+QWUygJbLgHq -69D3w7Bfx5/KLfrQrKAkK+zJoBjUqtMBW/dPKiL8KChRrSznBkIrKGkMdrP5Kiih2naEo4YtI/LI -H4yfcwJikhTCBblpj7zx+ve+gBIot4EXkJ+E8K2vi99t/SrwSY/DI3ZH08PCJ9EUvmANGw6NbNyT -lqFJSM/uZNA9qS7w8x+VTL2AjpmfiKkW9yTmsyUDaS9tmVdHP8cyEUhzxX0SMS9gJEx2wwnzfVJL -HxS1vyJELyyKfqxlCD6BteqgAO5JuwnJzjQty7x15mcfzd7kkpwzP4DbTo3sF6XypKSsyuYgJjLu -JEPLMzdAog4/0MCRFj/QcN7TAtQ3ZX0G1Cp9gIwkejj8mC3EbAGyC4TDjzUJcycZ/jYCMPFYjgHy -8xcF2xieomLcSSZHKv1gkw1sZJ07KR0IWGJeRNggP4TK6ZhbMvky5KfWYXl9pjskJB/upJmRmJf5 -KWVRv/x3nZLu8JmfBxugPjKIGDlclSdVACD4EDN43LgE7pxkLaEC8sNz2FPKQ6ajQjc5d1LqEPV+ -x50kbPtMBFA14SmQn4R+9LLRTY3ODjxADHQW8XbqGDJYQH4eMyUglqSmAvlpfDVJTrWxc96shPwM -vUYDNhh5Pn7i6LUA+bY9i8cPqWFH7A5nreXSPEhlc8hPfEBEtGVlKxG6k3ZuArmhpgny40HRPwyT -60r14ye0hP2WmRQ5SPb4SbRsEyNPcCdR5kmEAnP9+KntwKIC6fHTVQEsKx4Mw53EyKPNLfCsn4AM -9/jxUmj+WnQn1ealvDDUbkB+zhCeRENsmvkP7k4y7zQl8KV9Pn4GxAShTJ/F9fhxhte9seW/O+mw -lzuqmuB1/ouPH4xkfzYLuA3QumN3kj+dMV0eP4fMS3hZdxJtpcRfS5NhmlIsdZLIWdY2WrB5XW0W -fhB1NaygnHhoRZ0k1M7PRE4baTnp7H5V46MmecJJHXlgNmBbXJqYm1T5I6sZ5kDITXpEA8JJ2pBf -5/sw9Bd+XqK7KLBzMtDCTzyJpIoL9Sj8WBRK85LhR1WqAyGrzt87/JRWYBC3OCkOP4h4Vb4mE1lC -sXXSu0MV5UaZe//68APIwfzY8tS41hx+LOqbUNMdVbf18AMcmoZCQXLFWCfVfeok05z46Sd2qqJa -LPB10iQUYnFy25hdJxlM4wGFOUJdJ4n2+5YW1VcLxM/HqSt/n18KTfyYalvldZKm4hY8yakqaZxl -z7oQ+RnNvVp0KzWu1PM7KUtQaQHZopkv+99JYk0Wp63IJ8h30pKNKIv1xA8NdO5MlPjJ8KRnoe0J -r3huRPxQwSgnVC3PCOInmLzqW1G5CfGjS7R2eiLET7bs9IT4wepIJ5wlDhOTiB/VdcAf6qotpGQg -fnhG04qcz8rxIX4u21IT3voihjppVkmgEwYySZ30BLpJOzoA2RJB/HD9L2w6aHJMJw== - - - aUe6JDex6umkUMExVqwGbVKb+EFGcBxCBVX0GEz8nDMj8kMtgHlSOESRLKPajYCyKtLO9J4nOZuC -NlYcV9v8EB6Of+l5jsvm/CCcLy2iN7LoPMmEbEG146ZGRc15+3XZEWA+T9pL70dNcIb3TlLvTF+l -/iYQn2ezNak6iSl4r+TotwAKatVJ0ipL9Q6qCLM6CV6mkztWAZLgp2QrIY06STiP0Ac+LYWkmZHg -x0sqJl0Nq+kkuH8Rs+BRblXTSV2H5R/uNmc6yV/ZazYZDVkdbvLoo8h0awEPqNvmyikpRTIECnzf -eFMB7X1KBPyhShNHuJuJ6ClakUq3WwB+ItIcNOO5p9KzSerR5hjgh+6xk1LFfuLHw9tp3PXHd4TK -p7/J7sb4uVP61CUILoFS+U56IdZ9K/Vijbn8x0HGz7doSh2wIqpasnfSsYZKsvjwPhY/++2Bm3a8 -k6yg8jZ1+du8k26ah2BSsQNDKH58syc+ZD+KH4jXGbYQKOlK/ECGkNon4RQ/wN+A/dV6mm3Fz4TA -SfLSN5Of33NwpFt/eLzZOJug3f4nPyeYN+1WcqNGy5wn6ZA/Oju7y6ShJ9G2SyYeyYQRD/FJ54e1 -XN6IaCg/huxSfwHN+rPMoSdlgm/ki2sXalpJ+fEPIzVIK6H1PIWedOrtVO3FSQAOPel/2WDt6cjP -nPxO8rjKvU/5ObrRG52feobE0PRT63Ok7IDSFTv/NLgfYFfWIvyJ3Lk/wpY/BzH1pxj3J0mMMli4 -yncnod77B3YqkKtJqRRwOSfzpVeluoJfSj2h/5cJkD7+eAfooAloUZNagQElhkR/PAcEq17ZCVvU -FhpYP5Umosu21VIp6MbXBTKrYVI2A9lWAEy/gcxjB48a/HvZZJ9AUIdI1xEDiUyWP3OlBOCQNecv -Z7bwMbyS2KQg/R4+HbD0SKKJL30Gy7b4KzxMLHXXASxwLAUXiBc2CcggiMkjEdgoHDbaSS5LsicH -/YFyFgdxTJcq4iAWQma2OqieG1XkPEhp4E15jFqyrenZUO5JuTSVls6toQMFLb39KmxNfwVKpnFQ -HqXS0oxTS1B3w/j9IEcSbkpqELIQvy0l8JZyMWbUCVyyuEzXWgl5AOc3uXQuPZrnnRACfR1BE4Vy -69LqyKa+WyPbpaWR5/8uWcq69jtYAF8IpWghddLG37jQwiNFaNALNefT08GQHmG2hjH0rHV66Zf0 -CUsw3L9kmtRU3oAJ29aLzPYTL3JDd5/ZNAmHLIrs4OUQZstMQB2yF4IadodcakAY71wUSUwdQ0EJ -2g4Txyjb+9fSRxhwvbpr43gi2R0yUZUk/RarD20x2OH1aKkC0A2tMUx+Vf0EN2vkMzFMKzBtO/ds -gzS2yyEh4tLQ7+pv4oVqujAPkhcWvHT1fuCAGr3aHIVDQRxsBfEHEz9zBvbnTlLC5LaWL3VwCCMD -q6RUDgXwshdjTMrBMHcoJGBI/LYZYupDFeuC7Zl7qFId0cZ9SOrXJAKAaqnK5IsgSvdJtds4prRY -lbe2yjl3FqnBLglMmc/bkvLWgtEwpB0a0Qm6R6RxRiL6rnvWkyicPZQ2l4nHSWsWZoLBcCCemijP -gmDNic45thUfPhG+DUVevsV+FCVdWq46gUsxlrPy6nOnESA5wkzkU1WUHNNjpGjyrJToZ7RF8Io0 -A+GKRWg2vUH7lyb/u890aXJQD6RqLRrUsGu+RZiJi73oolRSo+mSFynbFyloek2UD4JgpGaKd4+G -EaBKOWwtRlZN+hmwie35KKnjIwXjiEpg2WhSySbDk9RZkDPiDbkfpE1jNIfQpYbI2qQm6KCutsnW -XDnLNLGC6EY1UvsHdOVb7a4d2GDCyFxeIxB+w/QPXW/Tp8QCjAeBhFcj9zaB+1kU5ovm6MYlwmuE -WcSo5Hr6Ca+RpqKOnq0agfmMjeqShMh5rbjDeGXlq4ZvaJvC7Dt2nerUgrbJbIhI9UZ/RWi1yVFg -ntWrlUYX2m9BdWdeq00t9sOGhHv8JtpUztMWQ7PbHNEm/pYzDPZQ4w8a3XHGMJvC0RVWQSMPnutQ -HqKNgyRBox0gLDVK14QsYNqdFkkm0abPBaq5+jpk0aYNhAWRcSY9aVvvoBGEB0DC9EMEoFELsEAT -1SaTZup6VBeQs003cKhJl3S26SFQ9VkjdDNRMRU3hUCHDDs3tYG6ZWxuyiWOQ9CNgqZu5II3cQSp -Fp+I6U0yuVxG34rKNxmZZzDVhGwyZWOhI9JBbmiD026BmEd2lFkh+dgdDX8JWEA8krLPKDBOI33m -N1iPgPJ49BRCTt1YcqpoPQZ+nFI5VR/m06c/Umkn9eNvBsRwNrnuzPibZB6b9oOgpKP8MPBUb+ZU -9hX/5tjLgAGSV7AdFDpkiyNj5oSWC5W6U15+a5lTJEN9If9t3x+lqfX7+8HKP2qybmK51+0E/hHd -e+j2AQs/vctgK4O8F5e9Q/wjJNWM7ZTlWOn1j8wvOMb+nCN0OfU4N+GyRSow/wh/UyrpCPyj6gPh -4iPMlFDZ67gCQ93huMwkyY+sUI7BaLk/ugIJ+sTmeZ4RkL7HUMJri9nBC0I9LaTdo5lTbP2IEkYN -aNxf+6MjiSJsc+of+yP5kawJt/ujHgAlHg2D3TL9xKjvcpLbQeK6D5LW90dWl8ORgGROO9dHczeQ -eHSPxCa+yqsG0k0esSYjIrwbSKeFdVS+kGDTeW98+w2mEvzxWQQk27LMN5CwytVptDAmMgGp6QCJ -sTm9B/t61E15YBWQoMuGqJW4tg9pvyqbk6sGGL9nO06UEtOaEzNof6wFwYU1J8TAfSu/gyJ5zakM -n7cf2udGBKQYp2kxlcoUkLB9CLxk03C/ihWQcsA8OqdKd5YEoHPCAGZMNzZDnAvROXG/GU1uDI1H -50QR6M/BAiXlM5CEzjaUrCChFNKEkwPqFSTbT9zSy/z5+5wgchnqjDLSFCRzSo3rtHKkrpcmNEGy -15O0ZE/UBMkChWh80soXNPiczuJHEkz6LNWek4VZcgGhxeUgQXVCCek4GQyydAp7cC/hoEL5F0B5 -Syd/kC/AZ5B970ISQ/CQOiBNCQnnpWOfUWJkPGZLpwyOMP7phChnziwxGtUX0muWkH0xn4h4AtRJ -GDDNqeWRPFAnWRH9k4zGlzpxtQIY1CkvZKQLZ4AfBYA6HecY7DUJ2Z9aXDopVW7TJUB/del0NaII -MoWACQmsn6Hd/xbyQjOXTldkDLOf225rQrLlpQMU6thcBtc8zEonfEgYUxjZXwUkm5AIpNwqNSsF -9JFMSE6Un/i8sDmudCrGb9WI708RHCRL7e5heA9uRc0NkoHBVDpFhaV/eTvKJhNTHk4TQAaSA4OE -JJeTVHvl0r5Nlk6mw1YDk1xpIiG5BYraq88j+VZKQjKlKdNVEpc2rDvjAYoG+PDn2Qbp3a8QbrZ0 -4hZrSbZ/KgGrpdPsF3eR2sA4PXBIsecg0Vz3JxODbOcgTTZRuRvCUYbVuc8M9OAggdT8HVRaQ1ZW -86AgRXNJKQcpjXvBClMKT4CD9LDoFDGDYHi5y9AbpFJBGxoHA52T0HoaKLfwaOXWqgwJFtxYOI/S -LDqZFbhbEok9dZUNFp1oIRrzh1IsLjrlII+/rciIiwhS52BQrotOvu5lhFFHbIK0y2fp5F8iyuKD -DaL1fYPkd5TeffnXyfENEn3O4uKdwZgyTWtWXgRrg3TsG1TxMStkcKRviTT2uE5aOL2bv9OmOD2y -dm+SkJAmBwBbSCAxF7AhXfwUULpOYuGJW/4Cog6DYuurbRRpfdK0ghbJhNjd+N3QtxSI1JrDI92v -AxwkxYPnOSOpDZnt4UktUozXk5S/MGELPdiGPN1Z32msJKaniNeSQHEUwu9LSjRouY1J6rDKk2dS -RlxJG8YmkUUqNFc4KcI66RPQTU+CidnwflKfhBFDAOyl/EUdn9QcCyIxSlJJSR3R/R7o07WxSAHU -mTtIKRTqE3z6D1Ls00M6O+3slDBcLWqISny7UJ6+FtQ0W1Y/7Y9SmN5PWyVPVTcTnwApkQwsOAK7 -ang/0WhO8qS8hdf9ZKsArDwdHwXeTyyBdjjQBtddJe74zGuZzkz4u0qWOyURedhnHXeVAMjmtHQZ -7CrF8Xcd4l6xq/QMiVr1Lw6uVrxK6VPVZysc1k4V8ltBEmWCC8a38szWXeAGKdVVdzI2F71S28Mc -gyWpkAGIU93JjfsWq+HKdL70aOjMlcKEFsYVTwzSI/e4ZIdbpZ2xRBhQgMMoDxyPz1gya762YKmE -SPZ3AYoO0UffUOCWc7EkSFkBen6Egv7FEtzGAR7tBSiOBiPPSAlagHoffkKXASQRnFv4YolaUMPE -7hBIjrdYihEjt8Isi4JiqVrOehABsF2AMiWicrHkXetXWQCEhYjkeJbpvQAdoJYAZsWFYffvDGGp -NYpyzzE9ThsPBkugL3S333fXCpQma0IvNUQ+UQtSOzLRn0oWJGAl+rLBAEwa7bkS6p/LLrkAik5+ -Dx3IX+/f8E4sVgLW2hxQ5dTFzYygEZgT1GkRsf0rTYtbi4IASpq6VsRnQQnlXwlH8aQ17trl+6/0 -0MurGUza+SsFqoekqV+pzhc9SvgcgGKg+RRTQMOSAlDOYs1h2Va5MIEC61GMda7c1JJNh/491V/t -Utev5CGEGQNH1IElLWkJoUoqH0s8HUtUs8RoN4IxV+mKENqSH3xYmjW1vq8EHb6a/frvVpWoxCaj -BzSHw0RcNX3JYzZwJSBeMk+8faodtJRNPkSlgZWk56x1k3Cwul6VXNi5Ul+FVcmWjqMQM7a4pPCT -haF1tf2EB8nBMW3RTitWpUgIKBA6qI1blfYdJ+loxOlv+dtPfYu782kRhGhZNZVOjCLAdje3wCNG -6/ykqdQ0Wi0SWtnVTSVjEA2JIgHgQlAuBt50ztDOLUzYSQiuKvUq6PuHFL5VpYs6A4MbBODbT7kk -OkE5KAC+qyk7AyOQn+ROlZ6Aib7rGpTOUyX/V3qS/AlRWufKStc6idxK7Q5b55xIsFXmrgUsIVkf -nHmA6jrgvmJArR6CUpylhRB3bWnJKMckm2uJVtR5HqjrM3wNkTbyAPWJfnjpkUtsV1BkW+wERFwq -UNqNDaZ2aXzLh6TxkiNdNmQvoUq1GPWlxaW78/6SM1PhxsAEHkys40rRRhKGO9To9zfEVPHncLeK -yWo86mRG/Y48Ji9OGvelLKEmMFkgbahWV38o3SnHFtxcoeCI1F0lVwhiaLJQhKdqLJPLUF4kk9PV -0YyfplJynKJakemANHMRKYYXodaLTHmcVDVIGSrL01EO9Ia/VSOQKgpeNDJ90jcZ0HZjEhuZZo/+ -IHuZLg/huoqFyoezT1KR6YY3VAodkQ3gIlPXRwNF4uW6T+YFIybmnS2I7lmvdkcIsJHJGJepd3vl -42mPQPa7IBOJBvwDqEiYZY5MV0oGIglHQTPQIxiRfgTPDGVXxYaLIHQY6NGRiWrv0g== - - - j/jnyGROAyDBx8xQ5cMZ4zav67x6TOcgpTohzhDvjqHxFGsXDEOFpF3wDVtthxByqkK9XYW2ch5J -rCBRWeUNjenz+BwxDchWQLrfpYZXR6/JhHhgIgq6WHADRjEzlDz1ai68CJIOf4Me1Pl6TOctl68B -LPE9JuPnlIK2XZ0X5CA3Bpzx2Z2UgBtSVf4ga20xIXBfRGikYFePqZCsa9bI5KwG/6PUTzNmOvGE -DSj6zoScjjrO9i8kI5P/kFLQW8UTSHBkMsupaJY+7O3vwdsG2F81APTGOMpNjhuevcF7kpJJyZ82 -LFNscIC0Mspnb6g0c/HhWsYKdx9l4kery5fAvKYbCmRWTcy1g5T9qkaZ1lntf6efA6KeLT0tNzOB -mVLmZKVS0oECuls62erhUTUTwjt7VAHJMfkkTr2hNtRPb+4b9AkjZQpSG5UrXvo24DUei+4gy9RA -IZ5TxSDFc/KGqjXTJq+fq4l1e5hKVla8mPC2fUtp0yhx0gO4fkMpbquiFuzp9ByUMuU8x5HhmFcW -AUkFQE+tMUlpY9DoMG368vjs9Y3ppQ1Qf5/NWUPhlrkCUjFa0j4ZQMXHkl2odIcp4AQ1KOgQwpgA -qiXRmg8AcHKx8EmmcwnU8/Dw8E9ivVnPL+ufp4dSLjcEDXJZASaRGLdQnUFLNQEDSSZvfBpqhFev -hv7HNBRyO8etCy17iJUaN3fhdhaTbDmfqErBROxS8ACO8Q13aOYdYf2qG0rWhnMyFxJqj26oxA8v -l7pygQVE2Q1DmBhGdXI9gjBQQz3JxOaGUE0ymbE6Zbo8biCxXg/gKRMuakV8F+Co+CXuWZQ7oiSg -UqdTJnbG55hvaiFvKD9RKWlmMlGBfyQo1Ny4hqJ3WL50tZNTSQBrCN8aqguNaQEgDSlWKSrifI8H -ZUd7yOTzbyw9LZLOEj9cpgGC3yioUbZpyGTUqOIAEKcwZEJVLPRihkxDNH/0zrpMrHZ5MhT8zFam -7/G27g2ZaFzc7mYh9xmmXtFiiBqKoYIyFDe/qRm9yWRY56WZ/ZmnYqOdt0B06F2UvNNQ3UiIgLuN -/IH42W80eZ0351zOpj9/E0kXjXLevzHIZDxBAsOCTGUc92qzM4kFmULTku+FEZkeOy+Inj5AACIy -rVn4MqBmqpFx+IhMaly3ofLVxQGYoSB4lepR5d0CvHouhTeUni0G51CKjvdxhfIUe5lMZqbcrok3 -0yVGa8QzteDgdJmJN8ZkzqZdtZ405V1GP04TSc5Xqem2p3c13fEUtnlrIoXdPKUoaTEIbsjcTkkf -zCmFWkOSyW1itBjhW25iaX0juHRR4daJQV+UNvtliYdhVDOUh/WbBmWCC04tOdRkdK41FkE2nlH0 -f9pUjKIpQIR2vMn1eVu4EbSrJ+d07XiMXeoC2xiWTj1a3PmL6tRF18nc6+xmMjtJ09spvYZJvJOL -gKRj2iDBcEEjDA95RKo1IZXc1BONPOlNQGjVPLk0y2n0RKFUGhK6YRK2Z8l4oxiqIKXiTegNrC03 -Zz0VpwNIyqlyEPHKzduGr55c25LRRve/rhopa6O8ckh6jRTTGs87W+lIJnqiVCOjaBty4SxS2ryt -5tRlkfqE+UrUi3Fel7zqFuHb6OmIwzdSIu+vYOHD1Nv1hNUxy1ZYT8sAUVh160mh6BT1dpLUSa3W -UwBGZ6Mh+F1B8UJHClIUZaG8WV1I1ctI+UvT9UN0enKwL0eK0s4fQwwoc6QsetK2GEw3QlLd10IO -o1KO4Z5CKK1B1vLTxj3JusiT++3HPPcUrb1o3wvVA8Y9DW7chJfZaMc9wWDIz04gooqQFBrFXavu -inuyJfx84JAoeyGphlnxs6jJTk5IKoKlUvDJ9NUYCgiCn3oXJfhkZTb89H7NU60MwSepmf/wnkEb -A34yPjx+3WwlpQRQW/p1iepTLCyv2fukWy6K+Skj1XHqCMC3mhOpFNTF2XRWk9qo/QVXSj3/G5fo -KbWeWu0dqAC8fz6j2DZBYX9OQcsLqh2jeQpL9Vvy4EKLQVkSwOOg6FlLgdxKWDiXsFlL0ZyTqO1b -qsnCCK9UKGIeQ+ksh6J1duKjrBhKhqpri4GRYco3/ozH6kvhRDW7RX1MPT8eYM1+w6I+JoromalS -Y7YaninSn9u3f1OnRVN4ZY7rbpoSqqT1V1PP5ImaYFNfvZytM21qnZhr0h1P5CS0XH3UeOO1S8A1 -aW4tXjhS+CfPuYHUQeMOYkhl5BtXpFofQ35OidEY+q1UHi81CmdhFCnLPzJvOOWVDQ4PT53e/oDp -GyZd2UmqFNhMbCHOJrpSNBBvSMEsVahnOsl703PwUxLACykZEJk/dZ5K3eRbjgtMbeomSzEVgZ85 -QkE1u2MAYu9ka1ldSlMhiTNL5zWVW0MKM8Opk0eRtIlqatP3ZaVbxg1WVHp5yu07Rbi8u2TvlNcq -nprhnKeU4FMSSY5hJj/luL54SpCKkDTjBqgkyh4b/hGjoHoBRRgTKqW7PTo8/0eIVG8ahqDCHf2N -718wf9CQkPtuj/i7qH7+K/4wJhV6USU2KUZRuuSfcyBUtniUn+ZgwFomLhjV5KHtLSBUHkxwIYzK -UCoZxnYuKO9MGNWBmzE3SYyqbX9c32rIGFVyZHADtbrC3D2Pihyjck97j4PgAXrMd74BU9Mu7BjV -BbAtOmP2dDGqyuzTGikD1Z9rEPgk2eEAahgV7EUTUQEGlO5u2/cOo5rhvw7dmiiBFfEjDsmKh0Fy -3Lk6O/+DtjXEMDAqMdmrWf36gDzVW81hVL2eS6YuGBVtIdoWGnt8F0wUWzqZBD+MCrAzhF7s68rz -wSmLLeJHS7KSfuoiyMhDkakTjMoLryBGdavtkVEtlPH73CZpYad5RoWbgkb1MlL3ViOBH36o90vn -RVRzMAuNqkXJW8E3Iuyf06iqyxlVdyjEoSDzTlw/owKMIG0M0nLp0dcA4CQ96d3NRa33jAq/74FG -dQlZZ4RSw7G0U/iDp8xO2SBaQGltG5UQDdMmLNGw/Aig0kcaSAWOGh37Tv2DW+H1Wq6HGvDnyVN+ -VCefn/IGiI1af1R9w1shUiHd5OyKs/cyQahCnERUVl0GXKvspG/+qOB+mkXtpAuh3KPqtGg+Xy8K -YJfNeo/qzkhMReCD6B5VwrlHiQhmHZsEm7AqKoIh27IOD/3VuN3a5S7HV+hR1TeAoO98zKNCWM8f -nT7ZPMbX5P7k5wB1JLgmIh1YW/t3PCqGKm9UGrmJyEQt3sLAEL/3s3+oEOICEQ9MaGLjEZW+i3u6 -xqhr8ExCwKUHt+D2qJQ1NMAKPFSt6R8wgPR/JZnaKcOaFhNavvjlAKmciNTc16tH1ebMLiqlSZK4 -Lt06g7lH9fstgwjUJlJ6VNAMqsb9wIEElR6VOc+UfpP4DvSo4jpcH9Sb7VaP6n1c4SaPKibXJMy6 -R1U9PDLXG4TryHGGEgptMTIEI7/Q6FH1/YQQKaAHqALL9DwYVBoXsYKZ/rpkj2o1XglWWe5gZkl7 -VAQL8EH0YFO+R7WmJwdiAtlh1JtMj+rAUsZU140y0GjmBBD8XYB6VGANH+7wv5N+0vibYFQ9Kl8a -5OyfilSifOQ8ENnB10YR7lFdEJXlzE6PqvmRgh9LsGYFPaqfdSHMAbIukWzUy/Mr45QVhQ52wtSj -cnhiVBMAT6Mx+QLdT9oztuLJnsDWdopD/D32qEij8yYI1bVGaq18UKID+EGK8k+PqozBJsPIst7d -6Yf66PpzKiaFEBVikoLSKIUQqQSVhVyTEakK8JkVj8qF/FvccmC5si/+yCs5PKr4Caqg7BN964x5 -VHrCHOgdFQpRxRfE+JXiOyqU6EPICTh2VF6RMcGVc1TFTsKeOADgc3EvQQW/yGSROqp/WjXENpmm -HNUaZOR6p9D3l3GHo0qXw0GH86NACOQkGAbO5KAxjurdNPbEclREr5HHIIEGOEWnitE5qn5/Mh5d -WaNfxIgrJC4pR3wzyq3N9mr3n0WTo0JH3UaqHNVZtd8MIY7qNhspIPsLLo7KLLmMq3vFrMVRJcSc -NHZGOuQIOarl/fZljorCV/kfdQxRbxjYCK4lkf2kbiEhm3SYoypEV4jHHRw5KhgplziqVqttpxyf -iO8Sp22u4HITgLTqcaNKQlpX2ZduVDJy7eKX3oMKnZwSJW6Hlu42nUVGKd6ognysTsZILKLxGxWw -7DSr/T0oPy6+Rn3DoUmsJfNGZQyTpRtzXoK9UUEZ08lIeTTxRlWviXmOTblI3qiaVXa0jaJqHNVD -gZFbSkpSMNJCBRo7lfnxdA8cVXSMUVqeaeKort/vbRLLsABHNbVU2X5xaFIcVeSi50AXy5aYMRAA -RxVjKuVGBXNB26iQ4K/p2T0jFfWsUfmqCdHjVHMM9ZqUAv1Eg5B6XhsV4Q4p0EploZBzI37e2ks2 -KppeFdQvG54AtFEJ0EzvmYkixgszLL4sdtA9XdWNNE8bD6Pkke+lO46Kpv7PMZW42qio1CeVwYoK -OKr7lzAkKA8XRwVtLQY3qpS2E+in5xtVqyKyd8ELzI0K/0kCg9TBKzexUcG2mcckVa4NEm8WDaSm -URsbFbaNypOfEd5RkcPX7Vwq31obVUst4z2ArEZV25kLgMMy1wGNyoURKU0jm0aFhRGAsZBOJ4z1 -aU0DjaqlAK6hWgjoqmujUQUAxVoxpgNilUIgs28aleIDkkaVCykBjF/B2ZulZL6QBeucUUF8RtUm -Ipa+wcmZcv2sp4D8FI3VlK3SqJxWvaY2OgcpQgqFdI0KMKsmEMaMyMWvLdUK5Sk7cHZ31UoJTirM -6CdPvOBvB3SxRuWptEmjalapn1GZkRDaCTVn+FZJlP65QPB4Gtd7lYWzpbGKBu4oVD31eo7frMhj -UmCQpvTD+Yt9GVUTn2lz4IldRvVrZfzg2JGzV/fDxanXobaTURlyAo50S0YZ1SFqnDSd525mXUaF -XJYNAUwSwyzTc8hTHTKqs4o5+3kMDgFXMqr3hQI3JFuWCc5eqSOjgq37PxK/TLXIqMxcCmUSwZnl -JWRUVq6eknTItHLpTPr0TiMpxFeXiCRqazKqOtXU+32MjIqOQ2RGBQJRoFEdtcNIKTWqHrbqcznf -FxoVvo3Muf7lwadRwTnAPWe/ZlSWQQ/1AaH7cdGXUueMCjP22fINpNkPdGFGVWzD+Vycy7y5oSrn -8w1V3qkmJ6tRFTxcvg5AOOxJ4rY1qoI4ZdmSvfQ4OqBUYf4qQ6OCgUj5OiFnVIcrJSkzKlDfS7EZ -LyzVFtyjkzKwKfThya/uGRXYAn3VVMWgjOqiTA4ZBymqjIrZD7AsIgXAlO6/GrYAXsYUZjlAFkBG -FdUoX/tXIIPIPmRUhT5ZL5ei4VDNOKM6HddnxxdCgha5fkZluOwciASN5NueUVX8nwIqaew6gqG0 -dGaa6ASTmQ6RUhR4JuvLqOp6N2bgT4GQisv2MglR61VlVC1tLwmfutthxqhwgBbfEg== - - - xDU7dIqOBROjemvHiiknRoVZjm6rB5FhgQj6FlH2LZzcrmHfY1QNAqKZwMq+b8YiaY4j44EsjVE5 -bCQSPaXEqKrl+HBuVT4Wq1ujeU7YV4lRlQZBwfbnT0M+4nrKk1NIV4yqbQadajGqMFYfrsBkkg8L -irVc0qtKVhsfo0KJhPqvDHgkYFQM9Vj+9kpNPm7f0+LEqBRsAqNKbaXCEJSWtVKp53bROZX9yZPC -mIY9HrqNy6ce7pfoFeZTDuYreGUOJq4RjOoBqs2RKzO+qCC/xyI/qLostC8qd0srW7u8kE0qglrq -RkF/HVpVJHQvKhnWBccijCkMvKjIkT673L+oLj69f+BQjky8qE4ZKGGlITYYVcfuVDpxOyAsTJI1 -CoyqONcsi+GT7grz/Nj8D2f9YKWCFsUT5OG/CdAsUqoUSdV52uZo4TTRU6AsmLaLECO9E0K67+zi -bucYznyDURESnx+c+AQyDaMyBw1/eTCqHgeGbFhDA2FUbsX1GLvB7A4/jOqivpNTfykoMCoAHnn1 -CaNC4hREOWwy/aKKPeYzKn+8oihfVGfpyir6IquiD10tJKZZL6oA2ig0bMFxObyo6sGAgXMYeBGF -9Dt8TEeh3QUMowof79D4WC9FT82cKmfXGEsRItM8WNUKcwOdd4/QXxFGZa6IxUzSZUGS3TCqplNB -GiEEzhvlWlTUhlEtxsmopMYXVwFl9+9CYVSxbL2Q4yzjCh1hp5+OPozKFTaCpusmuFbDqs42yQFG -1bIcxtdtuBjVs66TSKWMN65SkPEZNtAwx+RgxahmBBDKWYzKsasyVpU9MG6KUZnYpzg4FqNqEf9W -CScXq2jvGFWOsJbHqAb0V9HLAOuPPmpGVUgn9hi/4K/bmFGVFROHhCJcxpszKqhGpnpmjts0qfaI -Ua1JxhYF7TSqYGz4ZFo4UdQ7TaNCn51DE4hCpD0L5SGN6v8KCHJ5Bh31TCvyalgf6yLr86RRwdrP -+KO5qV56GlWCPxa32ss0jWpI/ECdBbthjU0/4WQaFRT88CNTo7oZvNckx5lSrlHBvalPooY1ZGtI -jWoofcyqjapRQfGpgyGqcCme1hPCif+wc6i0U5ilAKc1qlv3nK41Kmoak65UoRpV+xtEfhSDQBUw -0qjWOr2xaVQ1Akp7violGlUcyO+MRvV7IR7I15q0Sp9Eo1rPXAHwL0WKMlajAroNGf7gs93ClCef -b0C3tcOIGpWn8yEdxbhnnuAQNxtVFid07i/MQm1UkE1UoaACELxQe1vgG7oHTTaq8FYXWF6kx85G -ReEeyNPi4qhRYRqZ0FajOj3cVdZhRazHoTB2eLC1Y1BDOvpMNqrPm9IZ8VzwjWodpWjIIzymh068 -haOCFRLiQqBSoUC5OuLokkiD/PnRXmfHUT0tycnHOCquEN5liH3qMmsd+7si75/J1Q6D1ljs1aye -OFJN4Khgh9r/So3rir9OqRzjJxCH/oXWafXijNFmNpQK5KgW/lY8bK/C0FFtPlBMesZ9KPTPp1dM -HVcMUv6QCjKNbNOj0mNINaYkUgUqI8SFaa0CESuHp58mOxCp9qAySO+kCMygyGU1Q7AVevVEh51I -YdL+faMu3vlXeg+rV3S31Tnb4563/0ak8m6vfo1AIlULVYMu+E4iVXjslMlMsrUyWih+Rg2z1Pzx -OLi0cNUf583C+6Fy3DVYA6RXN4hUKH/aC66PKIo3kmsiruGK19RBRCqPmhDoP4hUYCQUHU17uUSq -APUKjdT8fLgCxa9XjO1DPUaqxTw3/RucB3xRMFLdkCjrEv/OWNyRqlQrUHjXIcgZQH/1eq23nJQj -6P9WC5X0KbQ+UhUvY4Kl06aL7OdBKeRL/0h1yN7LNoQ679+UkaoDPEt6k41UkTY+mZB61Y2R6oIX -Pgt/7QZ/CiNVmvh728VyuwC7jFQbhOHndiNIhEJb85rxrOJ44tSRakb8B4NShT9GiwQIW8IWOalk -UrL2Yr50VPK/9ZdITio8Oy7LXmhORDqpAKuemsm75MrSCY+ok6onUku0SnLTH2bB9qRiKzIYlwBN -MbsS+pPqIp3SSfo50XlSQXUpCyQ4lOjffOLypHIq2VyxY5QgQgvblIZRQlDZk2oKVGm9ZrqsH+tJ -NYklHq293i5Nh39SefYKo/PNVPuTCtIZANGieRuVoSdVArKBOu8n1YYtMlYHRvtJtYarc/Mx04j6 -ogWST6oEMEDWrMGzCDypIirurY8Hm6UHnlTDel2le5P2k6oDGAuCrPuSZQJG+RHIflLFHs3zp06k -BKp6Ul3zOIDsy+uWk9Yn1domHv97UvEk1GLHGY+IvvGkempS8hSUt2BPKl9Mx21Zyyp7UtG8zySB -NHpSxbGm67T7pIIk9v1LI0JN8D2UKk58qYsJKdprQKnqacmKUx62DlAq8MZENStqSwOlaklgdwwq -JhZPKFVz5GKonZpAKJVRoB3jynK8Ro0oVfKuSVRUVdkoUkapFgFIjEjZWQ2lWqjC005LZIrzoVR4 -OV2OZc2DO59QqvRTCEfk8dAEecle/GLh1vo7KBV5xq3IE1qCUKpjHkXyKBXxUa2YRKIknEWUqsLk -ubEnxdUYAqJUg6dOv5BIYPN5tcbkKFVf7aROdhxsDYlSYYvM9mKuTtwo1TatJA9l0h24klI5DGlH -mfVNjhj3aN7zAC2mRE1KBaEpOQXDgUBKFXLEP3wBR6WX7WPwlmE5R7uUCuLb609KNUuHg5cRcgpS -qvd5Gjx59FVKhTEDJ0upbnCfzzVkklTroNs1HMHblkZIqUq32uEhBHTLRkqFhNXM8IcSUGxNSmXp -cwHj7Tye7FMgPCnVNGe0Zn9/HqXq6d+PvtBvGnSLUk2IKg47M1qNUqUfoPMSdcVGqZ5Ibr8BM24r -YJTqyV+VPymwOBul2lG62WxopVR9tI3WPaOEl5QK7Nnw3IgbpRL8Zur0ER6iVMhLINe1Uqp+B9zE -KFGqpkXYTJcbmlKzWo+ObaNUIzJ1ZcwWVZQoVU93E4iUKj4eL8tYSpV7W/39GmmP1SlKNeRy2OIo -1aQwlGnHmvjuSUUuJrGYP6leOFQS2J9ngvWT6kyEsCgVRosCPqmSzUxffkbe7kmFNQFlFeNmBGah -Tv3YCYKa/VX3NgwQIHGnWophgCzcSVUaksGPdHRSgaYaVCcftGGsk0qp0WJan1TFlwDcOEYl9aQ6 -A5TwhrpG4pMKP8+sctGWzhTRJ9VU7j3G7myMT6rIZajIhz3h5jypMHeA3qpoTqp0/tuhGFnvSDSc -6J1kbVL5Y7crR1aqdgIEmTAg4bVSqeOJaG6lqiNxSfVdQZWqZYnGKE+lGo6OpywsbFl2hWuM8qBS -NY6pgvJFsE3T3alUeKNEXoo6rhPCO8pYSrX5GEhcY/+DW0/RVqqMkCJCP5k1rvUrv//z1tpK1ehf -hrLempVq3+cluFDm20pFzgCOCXBjOtMSxsNKtSomRdaqYjqH5MhROfP/G/jPwkL1T47iSQ8n3F3p -W6lGpPT8VZtPk1upioMMMsIqVXvtFlfiNaSZwUr1EkGW/YZVJYea6ok6rFR9YsL1T94hmzvZK5Uj -H9KfyvG9Ur204jmRzSNetlK1pG4NUKxxqc1hKr9SwZ6HuAcvX3bn8FZwHEhPBpOg/0rlREV4S9qY -K9XcAgzxlpe4UvXRjnparIz+nPlK1Q9EHlbvXKli7Xy0pGYdQPFKhfIuJMgNFdrScqVCte/yzIS9 -B4d5pWITFLHB9dzagVbuW2dj8LsESu5KhSVceWJCx+gr1fiDjTKblMR7pcLYcyw9G6PaWlypxrIZ -EafZgFeqjYUfheOTmbHhcaWyPjQYdf35lDAeV6oEoLiSOTtFw1L115aExme/jaXaFOnBc4iy4GGp -xhXAoiHxYKkCaaqbIiTjCkv183Tjdm1cCgFLBVeGs3WcVQxXqqrZz6Yr1awelEgTGsyXNN1H+INE -AB8uIc1XqjNcfCpfqV4vYRYBol2p1MXpBVsUqI5MWMSUEt6QyYofLPxKpSfqLy3xhSn8SrUZZX1r -hrReqdJmWztx1uL2SpUEIVUG8qiDK1Vyvj/KGtJ4Ht1YzleqD1PjzCuV7cQJl2KTMWGpRs8W1sqz -K9VnoCRcAIEn43Clso8f8ea5caVqS6R6faADXvzCmhvSvA+7UsGskMc1loqg7iuWB65Ut7viYKo2 -4WGq9t0mo5OdmetamGp8h4jJDeny8m0FYapVS9qsg4SpKtCK3i8x1tBI4QnCVEn43BVzURxiKsYK -yjdIp5gKg5i3EEbsvMVUiy4K2vucLCimokGeEc0SianGniJPxFSZGZm+JwipAapZUSRTTff+qiD0 -AsvX7MdXFHWtzADc4jwkxVQ9PeuzmIp62RKGvgMcHRNSAHU4NSDvuoQt2mNqTOVVmUoezXJKXCQC -Coc0yEilWogCcEwVSFqKVq5iqqPXwROuADFV/QNKNwA7OzHVva5ypoMcpqrugff8yAys5ThMVQpF -wKxBE8JUeQEjoBx9OL1hqoaXgw3/yaKzCFPlW4yDMriRcAZxCR0mNW4GBFMtWL1SPujnbOOtNcoa -wFThgpntIU40cZMKpsrX+DilYWc9VmCqqhuI2o5JL2wjT6wQTNUKn0RiTSGDqarErqfahGEq1Mvu -wQLYCFrYVYWppmHczsNUYbsE6D9GVY9OUaVMwlxYhFKQD1MNG2v3P0wlTrhB2/NK7A5TPe2zPthI -xFC4W0ylyzKaiJtEzVV8t/6PWkEIvacmMJRmSZWJdv8RlOr7wEQwF9KSqVIJnQ4dE5lqu4bFJjLV -NPbOvvPG2OFXi0wVDIpBPRltPZOyYDLVj7x7hTT60shUQo0OxYFMBYL+H+Eeeofojy6lYE+murPK -FOn+as4eqr9TwzWSlQQIcESmCgeXuclUPLVaqogw0+zx6oEY9FfDnEzl0tG90mckLSphkBNFI3bI -VIG5n5wVMlUfwBzw2B3W0xrUWvrNK5nqCi2PZZdMmKZMuUCvokBTHpkKQCigS1MudT2TqUywO7R4 -krt1LzJdFgHHTqbqFPdUQpuwMZlqiqQ8IJwNeTGXxTcIjlDfCqfCT9rIVJAagQ/NvbtBlqvM62Wq -jK3E1QndUCxTWRcjR1uluoSjMlXd+oKIAbJQmcrsQp/3pMhUZN9Pxi8y1ft7pLF7mwRDhEz124/o -MGdyVLOkG1N50Psn6R+8MRV5IovEAW4Kse0NOG5+kZjqXqYZhuB2YbCNmk3Qp23JKaYCO4CopXz0 -+yqGCV6ERi6mUqY9l0YGeW8bXR+iKbFCeHy8ElPl61MuS6aqm3LS0Q++Qbbn85xMlW/kOw+sjydT -1TFSoPVnOUKmYrwhKrr3jRueFVKD0Z8hU1UGWNVVxVDT5blJag0nU7XTOH5MplK6zGBAMtX50JHE -mGFqmYrS5vz5kKkq0pMHvdpcNC0c6pepiuHg+yltSZmp2OjpHtVId97szSd3bqbajQ== - - - Wk57gMZmqqn8mFuZCuXdIjwtU+GQeDjfTAUNsmJmyhXzywqHN8Nmqi4u9ckz0oiaMh30qUaAmYoo -CI0PFJ7S1ONmqsMn+Agf/DOVx4n0J3vDIpypKB6EUyDQLbLZmcra94RTNquSmao7ZwOpHpTBZqqa -KsExcogt6Xcz1f3e/2ibN5zMVIXacZoHSNNMhQnFGB1mKqIsi6Bw9BozjvRz0TNT+RnNqB32TJal -NVNR7gVFmspUo07L4jRJEmWZCluHtdUr/xxcOJityVST06FiV+UmUw2WqUpBgfiy+U+MjKvBKrqy -uxsphStpY6qb/VkuvpIQb6VIqvUa5idT8QY+LxshU81SdenGAUSITBXOgqtGhZJjy1RTmpQEP4wA -R5nqByZV0rYcsChTtUgrBV7zkEUvU91/Nddi2H9vWe0rUzHKcQ8yrezeHcpUqqtKG2B2l6mqoChX -eKyVBKoylVONet2vB+TfVCO/ly+mTMXDICj+ZSp0fLVR3Y/Xx1QEluXKt7sNxlRY0oHea8b4YSoP -0GZKhArfYaphC9WFA6WHuG2+CxdH3zBVaZAE6fM1TOWu0nyKjJpqGaXaFkGeDLb9MS2hqqlCjVMK -8N2i3E+mmqpl0BG61FSFYoZjQKSprh/a97Sd1JgwsJrqN//WkOvTKVU11cOnxPc6kqWoFdJU6Uu7 -cEsMbp1k79BiJFNt5gfiWQdq6BTNmUsD1ukdk1+nDm6DfU117MKUHRwyaE2Fl9J2skJBhymQTRXa -zOKXBdCmgiOdBZsH8uVnU1XtzZa/2S/DpoIrzrdVJD82VU7oh3a8AM6+XRbA8b0NranqLvlDjKZv -TdWLmy7Fh4Oy7iqsjACLuKZCG1OVCsQ3F++3Uw/XVOxv60A9Y3oJnarOb7fiIkGPS2QetdGpoj8q -gV7KN+lUKg4fMHO7jWYCRgyrQDadKssDeuUIX/HMNyFKp8IAwm4K94IHlqFTFfCexk0mUPCWa4Rr -y/0MAAvvx9u5cHSq3gWh5fkLjdDkVKm/N2pDllONWTz20RYNDBnW+i2neozCmWxFXPpqYHKq4eBP -I57LDesCTltzqiLb9+iwkE5VfjmR5/UANWspdyEOneqiLVDTnvQ61WBM+zurtkE3pSzMDZOPSXFK -0auoUz0cWL5kuJ+qwy1jw+/7VG2zUtxrn4qHKqz3DF5Y+FH0qcR2FsHS9qlWEB95lIQ+Fd5RylgX -oqDXfQ7wmPapSm4vUqhz2uimsHz/vND3qdBse5CcoXyqy1G7+DGR+VTbkjvwyRYxDp9KPxw+0AOT -hb9PJSIXxRo0jCVRVepCAHVSQ8p9Kn8MUglrjrj4PpW65FVHcoSY/XxL8qJPdRIDbG/8eJ/MUeKW -VEHH9qm+w9/Isp+qaVdsQ2SQ8FO1Y8kRJxdilY7bpY2fin3hA6fW3xBJlntWCuangvCsv1Aq+3sZ -jqlOyRIlVfXegJX0JcrhY4wplCQWtp8KJfGFZ57ZWVT7qYDuxF/JsGy3aQschRaAyuMyYbsAj20w -qy5OfQDuX60uSOMdKd2vPhWnttuy+Ha3KcgPJJCegqL1qRDpGUCxTyVPjZKqqvMKVEEG+8cTNDUs -UPW2LIe7YIg4Lg73QBWdG+NIpf3o3wSqbsb6pmQoqLL9aEAylxKsKRgFVUOnh7dbthJvo6AKqE3a -rNI27G5PUNXXiM05mSnydVI4diz4LqjS1Aq2MkqgZQNt2VdsCIpJ2isAG2Xlnnni1VHFLZIHfvCv -byprIqg6reitYAN7YWAdbAVVNdZMcr7/3xJxfwunoGqF6r+9chT5SXnBy+B7wJxjYHSpoHMkGwRQ -o85nVVBFEMRsUOUkeRGqrtHzVaG9LChUfaAzExgI3IMeJYlQle1N+bOathlUdSDu7HWl0vhBVY2o -E5CYtvygCkMCOveMVGUxqKo5G/OfpH7uuI+gitUmrGhAUi6oAuZf6Lx4AlPKg6jxCDOzjHxBFLtb -UNVZJrLd69r7uglGANTXkzCjoAiqvASTiGWdKZRVq1/99tPz8k4VGLPkNRyeX0bJIxdKkzo4sNco -qLp6xCrwB1UH8NaThduyQRVW7zT2UGIHVQAJEPa4ZcvOZ1A1CaL1M28BHFRZKea+pToIT8gE3fGl -a2pQVfu6h4zUMRr87pM7Mol/DKPpYQmuEKqgw+cWoBwXIVm4H/37ANmEqiOG8ELihZp3UBWqxpir -IVTDPuHXQtmJ5sh6cToTXpjKq8PkCcd49EclsQFf1IYqmKHJD1WVu9A3osrUHM2Tc/ooBGSKrs78 -xRhFtsgHIHeJ6VHuvt8lRFURcw09ZbALRNX2AQdJFzRSg6iyuZtpUJcXwIgq06e6QMiDZYGogpvm -UoPqW0HiRNVi5y9HH6KqpUUqW4Vk6TceqkqvmIufEMpDFRJUTO7hW0vy/pQEsYjl9KGqUOsio7vS -3bV0KAc0ati3HpjDzibSoeoAQRaODuGuUOrg/89Yiv+Je+Q54/BbOFRZMqYSHI3P43YA5fvs1fsR -lemhqha/WcCJqLrt13BmuPZ52A1xWishqlg7RCT1K84YqEoAXAShamnmGCeialOuLuSbBoISMRFV -xjQRLUKS8oioCtN88gmOa0FUhehPSrVKdusQ0lsf+7cSVZz99LpjZeP6IDtRxxJVZ+NyyLioKgbI -Mpki4YxrGeMpbi2qWhTln6OlEQ3EuajyU8Wkr42yRZU2693Z1EslhUUVdMCjogoR7hOJqqtvyJXi -ZJVMTj4Xc9pHVO3WLkgI850XUZXxocYKDKKq7aOWCkQVMyyNgmS0EFUKfHY4aERVD9Sihieql5S2 -Kkzi71u2yIqYvnc8couOJ6pegw5VFIySQrYdeaOChEHVUQxRVfEjcpUhqtZ5FjaO69AZH/Fnlfl+ -JrBSgWUZPEiJ4p7iqCNl32dtJIiqCnD7hfE7mZ5XhajqpXPLRHYOUSWpThKVKB6p7EBbX0c7wCIo -eq+w7lWBBzfvi6txqilrWlAg7299atN4ogquOnww4tYFJ0TVME+40ThUyXh3cN+G4IckOb+msY9m -/UNV78nlvORBFbpyUwmrmh8UoFmghagqplESDkBiYESVZk0SHl6QKRnFrYJwDxBVD72LbQ0E7qLO -K7AXqqniR3+tMwgDpLRpKOzPGMBctmyKqAqcc1jGIGnoAkRVrgpKCwDsCEFUlVorXXmSw6H+Z8B0 -cJAhqtQB5FmCo64pUXVJfoPabOCBCEIkudqeqOpqdKY1EYkqaI0yf8glA4mqsallST4Qc4Y8k1Q9 -iXsEbLRwN2ddbFYRms+r36ekCkHPmEQy0ZdUBUGOEv5KqsryptEI7X1dS6oyjpmI/YTzWFIl9Hfq -9Juk6m8r20GhQpKqdHEmqOhRG45U1cPXIxkiVd1DCV/4WEyyfGgizqLbhPiSSCJVsKXSj+tvF0HH -TO6+7we0SiQlI1XZBh+/62PB3CZtCu7g/2/Tj8onTIBoH2AKjjyhA705Mz3I4KHHMrCQKpMf2fNT -SZ4KAQ3vnHTro6rIrwQEbvNC0hr76ldHtMVVL8Jfgi5qnsHhUWWVwtyRre5HVex8iLengn4fj4ra -qUztxIPNG5mzizIbflT9DRSIRe+8lXA7ZbLmj6rzcOaP7EeVmEBfkUfVTVOWQ6rSUX8mpcAHSFXR -Z5GM6ycf1gmpyse8+QRuzi5zCrAOgIlZO/HpoHwe9rR+6rLZPk6AR6ngBKRqkQ49AFqYxIxNH7bx -3hQfSJWRrrjGKeEPhi21VDkom3kGAS4dBSP+qPLtBMPks1KFhRLbNzV5tqqcphqG0xDiSTfWI5XD -tRrabUfVisMY39eoap9uhh4vTKhWjdGHgNNBsLzxary7aVSVrSQb3ZDweq0Zp2qVPuK7aQu7UQUU -FJJK/eXRqCrDfHGPYBjUzO+6URXQWvxAiC2jOaqsRGm9EnSfM64QrqqmrDS0AMe5vKMqw/HWHXi4 -JZ81G1Vn0EqDY6JGFVi5WJiK+ysQoBgPRSSfjaoejPcy3oHT6aV8cf+qPLodIJH+AVoyqtCNpLAA -A8gguSomT94NFpZRFQ3TXyCNKrWPzuN5y7IxqvDNtuKTLWhCElV1O0AcviJUcbweKNWaL5srHgGI -hqfdKONquOm49V6nZet/R5E4FfbwxCL7mzsxKlFlZu00sbtE1X0H1IJFUXWOn/vr2K5fHrDpcuq9 -B4yqE/RHDm7jH/x2FtkgIaMKLlmmhlF1bThxUGYPjMgEBUlimj9WxLtXGhZVL1U7+TomWVSZGuJG -AgLjmOAbo+q0iFCZacJ0gVH1tr9hJHttyDsAPyTBfbpRdQOD06PR+gGkVrDOmXs+X0sCXNBfqZj/ -3+xvBD6VMq5uVM1O7l6hEDZqVNFJmtnro6eNKtCvoGUcDLTpDGtU1YiedBVm+iJwM1uoETWqBO/N -Vq9PUHnVuTovVal52y6q7mg39BNX44cYAqQMLyCtEnLv67Hxz6i6jGh8vIHVD0j9S+Uyy6DJrIQa -xcS7cyqcBDl5SQSwDDbrgbrMx/JFKeaJJRhVd4DxDA5bJzVE6v/1v0wEeWBUuQ7YiCwSkPMM/AgU -atweYFR9BhGhlVoaVfH9RpSNqsUGMeZane/My1FlMOLg/bRK80zsqFL211A4YtCBAI9+gmSDG4qF -D0RvndG7nrV2bUfVFHQMDHqV2WNHVf0a5KKt5bTzhGjnJI0q5zcnQmm0FMC5N6qA+ixl2nBUAZtE -wz9C5HP18QZFeT5H1bHjLjlAY0c4qn4FHShfOKpSFBD4GqSq78TIViBVxdEXa282AwpWIi5MF4rU -j6qLQaRFsbQ9uYJzm4293olPQMGo+nrI0mDjbdxKrVEVmdp9h4Ik0agaEB/f+sCoOo1cwQCK7QiX -GrCJUYVvIISjw4gWRhUBR18rrdtDmFyjimZa5BEhDB8bVd3t8dwzckIbVUCiGpipA0lKblSANqqi -4XIEvp5EydOoshfdcCsb94KXGlXnkMJl1cOXZN2oOo2xbKTl62W7NKpWhpvO5M8vw6DflLxGlfAO -BURzO1g1qpjDn5RG1QdY3NxTqKOKSnv6sbHJSbK3ybpZpKTX9hpGQRzGTCxSAasLndjf7A0nGWxU -9UXC54IRdG9Uuc66CF10YCGuKBFsVFlP2BnLtAp3o6qaBpCSpaDg/ojRAEvV0SFy4dFb0Ph24WQf -p6U+AVc+X6o8QckcVVCVI4WqVgkPgv7lALQfl4p3Acfc5/1TUhhLDXHSRHvqYpO60ighc9Rd4dne -SDAg1IHUJMKnwlgcYuFTCSkUo3usbweqEv8QKt9Twc4HYojNRZGg6EuMy4zbU1XIuQPm7amie77M -N670DtEroer9NdUAT13eQzTLthnhvKPgSagC7CWDdR9k+H6sQfBCkGfagHVxhuvJk3co1bwFY6Nj -L+4IVbXsoadtEKqO4L85CVYlVMFWYawwilgmFiZ6TmUQquD9ixUdPAQAQhXOENI7MA== - - - quT4MFDoEqrYY8+KRiXChKoHC51+g/WqgkjBGULVpYdVEOhtTkv3ZjifUMXoow8iM58XQlWQP0Fi -/bsjoSrNji57iLyVUFUMQeLtvf6aOvnbomARqkr45jMduEzHiD8JVdXHX4/hX7noEaquHoDgvFgk -VHW4ObCeHlS1ZGIj6Fs8XyQSqnYwM9OaQn9CFdrV0FrQ2/MUS6hKpyr/2MX/jq1HpUmYUNWhTwh3 -mFbBYmZqJ9SpQn6RfNtFnq6WWI5Cln90rHy0GFNlR7SAy3sgzP4CO4CZK+OOFJmFOM+N4dQO/x5+ -3WGsWAEttSEhMBJxiXDsnakad953eUbEUjT+mXEdhoWj6lBtEhNY3yESIGgoi+hPL6E5cA3/iFqW -DzZVGHiW50M0Vs4LdQmw+zJq6RSFmRTIAXlyeOPl6Kkv0sEq7woEeaeDSU0GCwctVg+wvbWODGSp -EgHGq0HPv0mKwphsqSZcJVFTe1+tXevDMv2S1/PTUxVtLwvsNid+sfJ0piUwGyj8zRV/kdzsb6Pb -EPlPXFHF7p8I+yBdAp3bUrDClTw/QHEE/TSvWotSA06FXdQ3UWQZeZdVT0645x3mUYS0SErVUUMD -bcCtIungARCgh/tndoOTV46rJ8ntLfG1CeYjhtN+ZOzmyJVbi2fRAgaDyBpOR/j91ymmuYpeu1Q8 -2+7IQZFofcehddtFPGIpS8sFKtuyE218/4YQ+OSwzNvyU1TiA5JrksiWKUo/Auga2ioiYza1DlS9 -1UZCeHb4FcSV+0MS318oYf3AcxJFVp0DEtwwmGWcPa8nohE9qkbYkR/dbG+W96OX8beq4lwrHqh5 -cSxOjxBeRgFASgXe7ZEjLOPGKLsMSYQBwH0DREYaHmSEpAvgi/K4QC7l1czrCFR8V+RNDEG+bOPz -9X+IWV5alQFe4qwdMJGVF5zBDC1nHcoLySS49tbXUL3axmC/cnUqHreyHMnlGph63nfdjM+DK8wM -wD4LA2SrmU0IAgBgEoas+ObuGNSgCYQGvYX5NNWyWDeSaaD8Qu4YOnzCzDASijCVQCw54FZSo3G2 -bSWcV204ma2VI5UymcFKLS0GimgPlQg7SywW5iIoAaG/IeeQkYwlMAUAlIdStJPJ2XmhZvEoeNss -WM2biShgvKga3PfQFyQhfgMv3fyFXReN9qvCxeQMFaSyQwOWILpBIr+jI+v+O3tNzfgMxBZD+Dl9 -3HawBbzI7hRfOP8RaeKFkdsGl1ksGPqBohy4yAYlwIblVTEGJhFtj1plWaQnqBrU3hQJLDeFjLiE -wVC0XirA54e3aKdtVcpHDqom99W9OF4TNDWFSRbCLCHKGIXUcHgTb2Z3Csyr10UFG5433GF2FH5x -4MwB2483YE71udIYlZrWyl/e4RQXR7DdRiU61hILib2uUSrLSqXUXUd6T2gj8FTwCyERU+MULA/r -3Q+ulP9Rq7SH12XbWToa2NX9KXVx8rYGhTggS4xpZXIHxoerPBMW5YqOqwsH6cpxARC9bQ0jnmtT -WoxBweUde1SO+8ungo8LUA1eFbwGECsFBDBlwbkfPa0zdzYtuFeCPzGoTg1jsbaNSuzbHANGoHJY -QoHNCi2wfnz7zgn6Kl5TLkrtUKbn29hU2SHYRMEwE1vA2I1JnEzfOdCDLBD+OvcZxhg0Ums96Ewh -8GqpSNOsc2Rr5cgO8Xcb3EQqI64i6L4Dvw2Jhhjy8Ms44SPY1Xxeqzpnt0M0P7fFDsyWgy8zLLBc -Yewd7/DE4um7bUCYqe+1KQa0aabuIQV6hp9p/IS4IrsqM48GXBzHEeLnWTLHeh+3BKX04zArw8Mf -tWKME4xxrFjNCgqq0Mh75sv5SB0aBlZt4jJzzJUkrCs971Kx/uAPDCvpnbnrY8DOCCH2gK4EhDJN -NobkJVLUGm39dTLT0Gg1+uhiP+ShpCjMqd0eIfLLJFdGvUZzLRoA2OEyAQzwzmciLHVYUnJMd5Yr -D2GfvuXV7njCE3PcHph5sUIImvQLo8VcgyONZuIk23p+VbPLJOXRiTDX1mADph03xJIrewihCwiO -I2xCANbWabf4nVQYpyLlAc+tkVivAzFxABw+V4ZAFl7wM0qCC0Pe8IR0DHga9NX1RNQznT411dJv -tCRNYLl7ZCN1inMLzxKvPA0jTGBsHaqTmw33QwEvq7ll118xT3KdqnbTQSHB7k8t30gmUMc3Mv9Z -u6unSOx2VvbP1ovPsJGr9RzC/GTEQF3CkTRLhhpseKHDT06Y2H94+uF+Voak97wa+AJJQT5xJsD5 -XeKuUgfrXZFQZk+fxQyKkAaOZ8zsJ5EIKe7XP6dDTBpRURgsjZUNAgf7MVmelol2Q6bMrYJaBvd+ -QBGZYoRa2dgXweOwE7AGJNP0nRS14L9su2DLgtSa2qkpbTMrWfpWzBVkpbwVGrbsFOSj6/dWFYLd -CU931l2ohmSnYblotykOXOK0ip9lApYpPt6Kd4UBJaLBlIz+FFOP8teWT/GuAoJi5bqPiyPXrwlT -8KvSjR/UZShbsUGwJVyUTdjvXRakOoJqYEZcKw6KT6vK6TDjkmuUNdpHrctRSUoX4dES7YJgPGgA -k2q9gkVoXAnNu1DtnEWRLhg06XxrXa4xBRFDXGZgO/spMZbBrp2zCnEuHycEMuNsEwwphE+EwhEv -zy2uY7Fm4FWBO4OHpa/qlII+l4rVviKry+/rhgqeHaTkuACjyzhOeB2Yvne9M0GQDbEsiQAkI9QM -EWSJR1lX2o6EWX38K0YiwJa0jW7T3LxR9jgkP3TuzQyMvqYm3DNhj+tZ1jL0EtbAppmrSUml4vDf -Km8FYAAaoExTUMGiX29vN4KboQJKzb8aBAGw/W9l0ziCIsTQAOwFo5V16+D6tJWuQKyx/kCEcYU1 -J2E35uHJ86nW4FaRK7Ja5BuxQV0noCFNgzf1g6uA9JmbEAH8xA7y1SKjTskithw4TjOqMnmil5cs -kPQTqkrOwhesjc0Kvc5aeF47UCrLXMixwC784AhIrcJESd03kxIZ0w33Pai6xyHZuPVCZSSICsef -enJ9bBF0Lk67379AHRTwGVt+Hl5ozQf5rpkdKjjXve3YuChDLOXri3IzgRZmWuAFBmkbZDoOXJ8y -a+6S0q+AFbYYr3zqNSclFXj0L0+rPhdSpDj71S+bkGxptAbmUM+moXAeScA6uJAWT6nDYFrjLdxk -DUJjgrDrXWXn+wADUnB3PidUGtc1K6Esj9a1xrFM3MX18F0rlHCn5K7y5iRARRxsMRZSyGXpDa1y -jlItwd9/0eyLlD1P7xS78oDG8+DIi/XFG00eK5Se2PKYTJKdL3VNngRJCHXTAC2aU593SZFgxXWc -Dr3HITgcGMxpdxSd7zPAnvDzqimlkVth3lQN+2vnW4SnDFBt5PFlF3rG73NObKcVjpPEsls3rc9I -lXnXuFAPIygC1vl6d2EMh9X1sjZALfSAbO28GOXFtaN6TidLDABowU8dXxLomcWE3WEnUsaNHRnP -J/JCh8ek2PJBW0VkdtR+bIx0yNg6B4ZY3FMA5y7nba7uYiAXNLvCecg4crB+pDQbat5QBIGH3HDE -NjUYPndrlnh6WaoPJOJKwf05p5dswWFMS/kohf9fAcu8nv+JbgEwCQ7WUQQV4RshfZkgJ/tI+loC -oywykoWUvvIlkENNvSXbP9m81wYnWjv20BL8y2j0t2EtF3ZjYqVfJsDszcpIFGwbf2YcUHglG5T0 -N+1nugqe0uQg6gxXr4Z7Z02davhBGGU5tmZJELW2feYroqZPoEYQrvNmfezLBq9pBP2gO6UPTXz7 -TvnqP8DNmXkVO8t27wznyo7pgj1nx8Ajvf30JJshzzAaP9qhSkM2ql7oOJD6nnTy++RXYFSyVN2N -G373wxBjA84IUAo9HjtTa20DzGNBWS32DzJjDGAjzA4KFiDAJXhjlfdnwscWaFxhDHIjltGO4xwb -puu11xxcBGttbgf5t2oeK9mc5lvTEmRVIWMtizGfZ7DqQfhPri1UBLlZKK583igpPNpGpnjTNAY4 -oVcYG2mx7MZxi0V+Bz832R+S2K7eyvI1AE5AFH++SqqINCoSbDuVIEMdhkCf+0CgjfQ0JabhJzGA -07iQES6eTwJkc9tShMDlVgdCX51aA7tv44Cd9YpUAgnIHfDljJjAIX5j+qp0RvWfwefAi/caeUoy -MBHJbJ9XGsGKfl51Iz9KVscprqJsjG3cOSpbYF2PRUWpiyIByAG3PwQ1Fv7nO+trvgFfgYyehITh -uKEqj+eytOwSaPezmZyAzzwnn6gMtVLiN0qt3BHTTNdswUE1Ng4/A4JCgdN2KUepflWkhQgS/PrB -L/lgIrFruclsdUU4zoHteuUI0KchxO8EYbrVVA9AYPM48lB8X2RnPIglY5MNp4o/MVsa3a3yNezB -A5M0Fo5WJqgTTYT4oE/R/GHtJIO2wiJyrQo8ZPkP4PGFiWezrvR2jJEHjneD3ahxWaVkBUl8KlpA -cetKUU0BHqR+Atra6BcOsAEM/yv0xCwihVTbakF8AXoBdgGrQzOB53a2C51WGN5DkM8aQm1s43XS -iM2Bl+DIDH15qV1eaPs1YiFqCLvuRmI2GwenlnIkcNTpNZljHxHxHMpmpsF25Es6GA+akHCEcCgw -hIPzZAujePij0v2YBz7Gbmai57BjzTtB/HwOD7ZHcfC0ZBSZGkOZmZEPWe+TsJBi4UStESqzIBIC -PSEEh9Th3PmiQVu9NczDgpkQqmSSdfdC2LavIF2ErKK++eT7N8GTqcRrWMPIB3MTe4xZprAIDr0w -mz8xQyknEyraOoXt21S4iczwFqTKHBiSiorAU2Y3IkamsBmsxcsJYdEy7EUs1kXoghG6iKii5hh/ -0MRZSkwiSFNdeChjDRG/MQXF2XwSXjA3gd/IW4IWDk0egraHcVyABooA2F1iwRJTUGISUzAm1olN -H7x520JoDloCsA4jJPrObOJCcFqlH8fCqIUYF1YyxCLiIdPM8BIOkhMOkw15K43ybtyTG3bjYlJC -ZBtUT27h29ZNJuq2LkKIkOGsyvttIDWnBIomCYWT94MUgRMhSfpMYCjEMUQpuEGLhyVuH2L2ECHc -rBcyYR51uYnAT6+nEhiGEp1iRyEhZ7heF8XKfNVXVMJE1HhwYFAKQYZTZJuKZFHgRuSYUDip1ZWo -hm1vDM/b1QyrnRKcWlKYcQ+BBH3SUA5Rxar5PRJVGFqmYmOoNYQihC6bYCloUhoxlGZT8YcjDQXZ -EES7el2SciUvXvN9UzsvfKZhLtyMfsrP493NOq7OH8oIIqnmDIfvTXOGGWaYsuyp+nxTCTLLPnej -7RepH6EJwy+T3JiR0I+UisR+TbcQQnhWCu15eEPwJdQbPoJfedTEzOXdJjqyymaR43noMo9X5uH1 -3O3EEvGwR0IL9SwEMd88X6gft7gwp1uFByvGv1qRhdgv0pC1Elsv/XjCL41/pJXgTg== - - - 1IsIswm7THjozJCWuaaOvyOvz8PERjGRkIggY2FBSQomEOtlNs14tJnxDOoublsnOlyo47MqDCJH -sQVDoRJqueOdv06batV84YUX3ja37G00nIfQmErYO5oZaT6ZgwrkHy7/kD7MPZUgNYMoS543NHQ+ -l2F5SO2UJgkMquVvP5F/SH+7M0GP1HVX2XgivJs5SUUkYfmEac4lNx7txOedrQ5lwjt2hOrCPULD -5U3+Qu3ZMg9zPsw/pX5OP+pVW+Z/Z+Z9K6pM9cfL0LnZCSP+r+DAmIfMa01I6phfduON+WV3ulam -JqN5hH/T7kc6fb43zD3d2/cjxh/TsRPVhjD7v3bE0Ucrz4TkD7dWONlwwzmVvKIgD4sF2R4X/Zn9 -H5/QysyvTjijC49V+HB5x+KsKpU/tHfDD04a/CddRAiadPwnXRf8J91I3U0lvjXn+C9VGRQh3WHW -htuPdcESLaNBRi2cCRWrXq1K6MyE4VrCgzrhVYcLD4FyzUOgdOGbPqgSrYzH8PWNNnCakg9FI4wX -M1Jm4zGtqMlQVhQWBU3ORUGJi2T9iC68jCjsEQUJgjgoJAGKO7BBHX5rYGlxjPxv9wVfyo0xQ/gD -FQ/hEqhwM8KoIpqHQSEIKVkQSVEnPeQogkSrD7sqDKsw9ISgwotRmgcViyDFmXEIvPpg0mt4rO+E -PDzUmIscBY6orCU+4R9DMlFC+ARKJCjIKCaES2DbhggPp2qRCPEQrTpqZwWJFopiKFIMPXxqiPto -+vAyZ1JEJ5wMVFAEVjKsxeJQYdmdq6DA0zEMcdKRCMfh/qVfiXUcvyqT7ufKUp55X6Ep8/Cq9Jyh -QTTvzIwfSldCc4bH4Ql/Qj0xsUY1lczPGZ5qPo0IV+JySFzymPJc4eBW5J87kYe5QeSfwyLi2qok -tDAJ4knDf12GKhQ+La1YHuMFS2YOlv+tHz5pZTHQksRAyaHzcoEW6RWhWCH8lITXn8CwLnQ+rEiZ -0AiBm1seieVST1Q+tCdvrdbdTB82QXxrXvGp62qS0w6NsbgjBx1ChonLG7Y2e+QhbPnmh4hHlXh4 -P9GzmBHICf2K/PP8AaVgqER7e67RBgCDFnDAEAAAAsBgYDB4GvkDFAAJXiYWZgwGCBIKBhhCXqEj -cQcAyAHIAgAA3WDYyonrxEWhMZ1FE1SUHFkhCVyYv3dQNGVnjxsVirpncvxOOzqkfA24yWwUuJhR -ocZUkhx+qBIVuno8JOKWCESXzx0ZaLKesEpUqCcyOd0nPsoLXOAvHQc0Ylc0VuDidybuAlv35FDg -4vNT4QgNnkVvQQUXyMN01w6Ewhu4oMrMyVyA2IOJGPcVuGAuWL0KrH7arvMUinPjR+0qoRkFUz6E -Zf10rIt6MJuNTnbxF7jgxcKRW2zg4oRGyk6+HewoHAMXXy2XNDx+SjYFXd4iI+SQjhMpN3AB5Pqi -6d4sqWSKcudqLnCRkR1GTCxZiVLHFLoSsDiilnMbo3ukwMW5YtPRwcjhBaB1XhXxrVR+yLljcUd/ -gQsN0B+itINIC7eYVqwU7vpID1kaQQIS/wiPeQYuCn+RB8KRBlNbtZf89LdSyaucqPAV9n3ALlrT -Tv4TvKMdagcuRviDyUKMrTuukUIpbuZwlzYim9MfQZuGZ+omq0u5P3BBljzVO+Nx4KL2GlciIRz5 -wMW0S4yusIH3Q7r0wAXcvRmXggjA6/PqgYsBogt/iXixS9gvrY2C/+FVYx504KJnsX1/QTQIowr/ -wYq1f4USsgMXUzJloj4+cAGxped7NiBz4EIfFOk6H+1E/DtwIUEfTko/cCGUFIlpv5fLC4CI+BcV -ILgQjIXngoWxcYrkJ7hQyM/lVBqE7AkuPAj787MqO+inqFcFF+TsXKZHOI+uwP0zDgXddmCDI8J0 -VKIDXqsFF+VbcEKIEZIPb9ZuP3g+R9K84KJoBYxbdu0JuZ6y4AINcWt7wWQJW3Cx124PUSmykNXo -63kLLt50UCAEBanQVSOkZeehMSgYBAcT8pwVtFq+4IJJBOVUcNGnlQkualk+ES4TXKh1aD3h36g7 -BOr6BChY/Eae0Q3ipyO4kAIrIXYksKKDs7o0ByxMEVz8nGzMOvsguH2hrleddwguSsxPIGWE4GLk -6hwFj4O0fHYwwQWE8NoeklqOyORQlXyCC5C1r7z1j4EVBRdV27yUyqwxOchjbtzEZH2c7gj8zqfP -DGQquLDB1xYs1dEN+IrBRlVpjakSXFx2XZBELaK0XqYY7I0neBvXh7IkBZWi4atk+CbI/MM4ggkE -F2PgqwT0gYvtfblBWcvB14+FaHZ+8+mogR4BDBy4+EjYgj2YDlxIPdsZ5Q2QCiUzpxMAqrjAqRKs -zQgu8sofEehJowMX4rFaiplXHXKXvZs5YbW0hAnQs1lOPXCxiJtL4DTTrrj0u/g4PIVAKVk6cIHw -S9kAFydYULB51jen8svG9OAR29Ahca4frRzaD/TAxYF4PJaVtk6rf9TkTRDY9fEkuCgQV0Vh5AkS -XNy1AjJ+XQY6wUWGShIaixGqElwweZ+8ggCOaBXcOsEFiqBtJzkJ7xPbwOi+Jpx7bQKUpLj+ppHw -9lQRHrlcAYKLysOaMpNELhk9gqMQ61gYEVz4QBi09yYgWF7IJ2fUBIsSffcIJPy+8T9qwsNMEPK6 -bFwzY/GPD5jxYI3IpoyaoNsk/WxvGN/G9XQkuCipBfI3shIq2IZgBBcrMc+y5y9WYg4Wz3fUhBCN -QME/jLJbmyPZFXOi2FETbA/fuAUBpLwOXFhd39xbtnz9Jt/bgYvJcwmVoNYt+UGtuuBDBy6UN19w -0qTRVt1TknLkTY1m6JxBZ+UfHwkOXGjdLWQWGSsF0I6QN3AhE4mYsa7V7wcuRBlW/vvw2NGe+UZN -yI+1aOSRMDaxfT27sQTckw8cuDgU2b0RfOkKQOioCdmjPS3Lsq7gylqcwjTYaDQuz73k7tNcUBuj -JpS6cwOkNY6FMNcMXHQquUlCF9YYRXidAhcFMh0eMrIN0bB+p6gJbjUFTaLUGBoBPtXARZdSUgkp -80jGLhGiJsRlyCum5XQBX9QE4cmTu6IbuBD2WDVEy221wEVGgBTjTSCWIgUuOvFZRi9wMTIvdior -/gnvMyxqgunVWxHiGIiMaeF+9UaBF0rUBBP4mQ9SBS6yl/zN0DxnU/musmr8j1kZEUTUhKJQ+i0R -JPtNUoGhzBTWd+vzRfyCRE1weYN8Gv+1EF+o+fni5KzAxQJySdz1zKDvhfN+uljrmfDhzMM1JPCC -qkQFTgaoI2rCouRtF1FPGzRqwr9TNobtY8xiTWC2AAeNmuCqWmiHGeMISZJ8/xbV6QxgXS8ii/8W -Nx2CJ5N4IkpKgCd6I5ndg6ryb3FwD0YAiE6UEX5uFU0TdCP2s8zyb7Ht13ZWBsOsUtOE9WNH/Es+ -oJitr9a/BUA0L7yaJlyAMuBBW+KlkPm0w/Glz7A/bf1vkQrk09eO/4gB8dU50y87Vx7Ahdf7P6M4 -RJs7sjqgCeUHAfSrL5poVpE1fOLOhPjFtF8iPBJMsX6AC+Psyv9QhNYA2x8oQxRK7GLROhB/aXAB -FwlYQpuJC41Hw5Um4GI44L5ULHPPomNCV4A3eWS2UC+cosISARf36DvyRjsQxI4WcLEPp1QyTiHf -HcCpTcTZNjUUcEFD4P3pr8s5wMXQC3ZnEMDQn0DR3HcDA1xMQ+YeVb1XqDHgAugH6+G1B+HUaZQ8 -4OKT1m0S2BckdMBFu9ChSwEpGZ7AhZBF/V0Q2q8KhNMCJoELvh9VJKOam5KfHo4M4liBi7rMX7Kn -n4CrCaHABeP0vngpaCPAZl+BC1s+iS2nai8QbuvnEiidGspfqPtDgQuziINiwzj+nftcQrSjfrT7 -QcB20MVLYSf+uRz24m7AhQuNMZbEFC9iwEWA09lifK4gkFKfSyDNvdKsW86FduXTcwlnulW0JvZZ -ZjWX4GIT/rkGQ7cEhBssKXDxbzuRHgtcnDJrniHwPrhSHBbt8F16m7hjcwkG1v5hkAQiDiDSzdNf -w1NagQtQ4cBFgX2OV1B4bfKBC67l+6rML7Z/4CIM0myXBy5k0MNhCLKGbJg+oAXBBfcQe5AVwUWH -2EZ7fz2XUFd9AdcOMX5UD1wMjZqbZ76t73GPHc8laENMQOMNXNyH6fKW1orlap5LWGBlkfpp+OcG -/pSBi04khfZPTQaxws8lqAFIdrAYZTnUWRALklg8l0DHoGDxzyVocNTW0831UwQumo/Sg+OQriPu -/ck2gQuVl4Vyrr1cHRK73E4ERRYdgQsqg948fgYFywL42QEXlT08/XbjMdN4PeCCyAqh9ex9pfU8 -l+ApGH5VhwlVEuIhCit4LgFq8oY9OFXdMuCiZZUWITL4Jpfw5xIaGnfbuJmKDLi4qlueeWseHtg9 -vKbDyGMApgf2qOYSouuFYJRFNQ2SmlRJ127l+2hzCclqedM91KamsLEH++JPm0vg17XyjSkOaARc -VCbk2p/STXu7vaJgHVd9lLrOHBRGYvwdF3CRF6upoQNHsHMJ3jROYSvTmAdocKyAi3IIXSDMukHA -xQRCWE75xZ+Ai5Ovnn1Y2cO2gIusPyQrL+hQ5Ay4uIAZlFsWf6gHfit1us4IXNA1Yrv4gr+G+mKa -cwnifkud+4QCBVzwRmcPTnSczj4os5vaUnKrgAvsmVFXQ2WQ7pv8beDmEoqrQboOIIIMuxROjwMu -Vi7gqtfbyQDmtJxPcMXLeO8QcKGSQizfuvJ2VS/+BZlWrsmJ/tIGoNZtASSqBFywVPHuARfuYgIX -npeonPPxu8CFzvsCSPYH0BIiLi2mjjdAS1jg6ECZPgXtar0zEVxENeKqZdES7IAoIPXoH1C/rUB7 -9s4guPjcWDIatgb3geDiroF6jKDWj7IToofUgYtCTBgSkicdlNhyg5onB4HT4bn4aPxFkFlFS7gF -s6CeKTJ80Ib59PVUFwAGLpzLkG9akm6wqBmIllDU+QlcJCupUI/NW0zREjS/BOvCxT47QMSOW4zp -f8YndFZhBi70+k+l/92ShxQtgU5o1h8YuIiK2etb3ZQlGrj4lbOHRNMyWgYuJo+mp5ZCYeGyf8VQ -nITw0aIE/ZcSMpIF4Mo9+ETREmiuMX2yXugCFw7XmSEwwlqdzvorSqh+GTr0Xq4oagWe5W8i8b0t -zlI94KIUEXBxqJ5LXmkY4GJIgXaWFAIu1pHqsOkaIu4+fYM4uQBJoRrybMC/AlwEzjw6iudKnu8G -24UNcEGKDAi4OPB2/ER8wAVGIArvOpQWeY6WYIZW9I+CZYtMwHfURBxz904MeKvz7I6Ai0sQph6/ -xpY3OhUe6isVb3F/FzRjEYfNE7ggotp2RUcNrqMlbKw/YD9DNmW3swoo9zxlrWl7UYp4ozIilSnV -52gJXJ173+VyLHXuKx0pvOmYCVyMXgp7HWwu5w0bLcFR/SVdaeRabZp4XKyOloDeYQ== - - - P61Q2ltNQTTAhQANV2OwIhZTRIlz6lntS0ssKgMe4GL1GkRzVZhkcICLK/9A0YSgrknrnXQK4fWn -bEnyo5ykzguDu1xrvGzT8SCjJTRIj1yCzjRlAo+WkF2KjCDrRsSXKjfKb7QEj7ZgJR9jfuVoCVVg -CZe3Gsnp70c9jZaQ/64Ai1d+F13caAljXylgtIRGaxr5kjO8yy/YCuaA5o0xaFVdS7seLeHjYSj5 -HrdEeROqAXDx9oaLISahoAC4oFE1poXlK0NRBJONl2TIEiA7gCaA+cQQGQAXuo/TRCmkfWFMGYZg -W4dxNmo3JRX/tyh3TSEQW+tKQFy3qsXAfCB6OwpqZyvhMhqsnAVcxkpwpSQ6SiH0eo+eMei/BSUl -ECh5ll45VkKsACQIDh75PVaCy41+N2OWHY2VcOXWT02yElFYzpVEMVZCO/U/biSOlvBvcRisGp03 -lYREkQrxDov9W7g4KcTwvN+cFVt/i38L5z2+h1c4oUOCUbFSrAR06ZZ+nirW4uZvIXOk/fozGfeh -XxgNz3+bUWgW3VqwkXqJpD7ABuLnsr6KZ+HgruC7LSP9tzj1lH5GgQe+tVAJkJOR1/JnLuSEBlgX -U15KLgvW1/fPRE4J62QUvKeRMURWlovH787+C+BicnKjQVzswv+BnBK8jclsS/23SBoJDRMAS3LP -xXWwmHn0KTklRKHVCxM9bHUOp8LqlKCrG9dQmExi5D4qdM4ivXxqFOCiSpR+xHbEsYUqHVtIgAtm -Zd/vfBohtywDXIgZr6u5wj8VW+IBLmZMGjN8QXqP/5wSuo8BLqr/xiA+u8CnripYTgm6zDjhxbHC -S5ZTgs3z5aDkT/wliJwSxMr1fjoCXMgSxLUnz/6Xs92eyOFxxh3qGN3cUCglNPGfOY6AC85QlT2V -L05XdQEuWp75E3B/1QJcsA8xOUnMZRrgYuudJ+eWGPvQiQ5w4clp0hKiIMDF+PqWUeS/RX63sNZl -NCfHSmGUOKP/LXzCN9RS9GHx/rc4PD6Wogva/i1wLqrR2JthZ2cNnaoMOqJR/i2G1MI+iIiOn2O6 -f4vgl6DHkhAv6xdvME/LPioJWSojGOUEWZd/i/h/koDg0FxMMZZO/xYkSFUeBFKcBv1bVJWutBbd -QCmHkcIu0P8WVYeie9Xah0Bc8OWGbP8tQAUNxGWYG2Kp6l4RPP8tluPSz0hAyIKqyIwEKfS8CmuD -MvwKMpy6SDAsT95oJQJrZJxtmH8LLSlt1F1Dw78FhCUSFowvxAI9GZO1vijPkgiRwKHfM+FN2Wiw -499CPFrE7Gdn08Rn8V+4h+TuJyS4s8vKnpOt0DjbFhJI8W9xjiT+W+S5+iZxXq2CcCkDEqIl2+YW -iRSoeVP1OctPhVs4ABfbDoHHAyCnVoOhE+y1Vx19YQAXyCTSikKHwv+esa3MRBk1jbhwb44mpayn -jiDgYqcyjc37p25ikp0CLnCJEGo2qtgxPALoaH/L7fsoVYDIdEegUSt0nRiNgbEjRBO/qD6M/f7d -w4tC4vxFM1+oKsKljv4FXBTx7m+QLxpwwS0Iz3oSimj1blEScHF8g1MosQIu0j5yxLe/aN+pnmdP -GsLFCrjg6MFAYeQj88Rb/het0axRXkrvabGNgItBNvjAeD8ceZhEI6BFY6Md0TKByDBnMo0MEMAF -IhO/F0hojeFOygj9qtcIys9QTjPICMEiC4BRPkbQEQmOOabPjIWksWWVsrZZbN8njwzgQqFvdgyR -nw0mABd7+fBO9LyNVFmGo2hQdAXgAtfcCoqeFXVEswh/DE96MjHrUxOKk/JJB3ux0QCKbjqAAbgI -ZbU0ZmI2X7gtSLTl32JZKPwt1r1Gz6+rGiEo/Rbxlr5p2yq/RcOPtrMO2WcOyNo48VtIfHv3KJrf -YiEGsFXLpEL4vsWQ+jktspH8O51v0oqO9i3CZwwnEa1GZ9W+BRBiKX+ZgWrEyb7FYdVTMZlg71vU -eEG7LLg1yQigpLq0sfbIKjqQzH0L0xRN/U7pkyyH6SR8uG8B2nuPjUwNy/k5RbpvUSE4X9EhgAhJ -lbAAQAJh5yVFG80G9xn3LaTPgv/2B8wIKV8vpR8ktY7C6Ba0zhja16b43L7FkVp9Cx/JMX2Lcp7z -VKqKqHUn0lXBIZjrE5CJ8WejezqEZ9Paj8yrARGVQ7juIOgQHNT8Gdv5o6tN0epRQ+jxn94nX9+i -M0EXHkEjZm1rOvUtsML7DL+TItfXt5BeZD+2/F3eeN5alsS45JYhEFS75S0nkPerKUF9C3Xx9A8h -m7VbsSb3ADmm7wU/IAfqcCFEP/DxkJ+A6RG36gn6ERnxz7eQi4hfI0SlubwQxIvp853YNd98ixTN -52LGR00IzrcIpvEkdIvOS3DyLSitlRI8hZirQkC6gIUWun8E8qgzEVPjybTINtpMTPItIHMEPvoW -hfl+huwxBJ1rznKPhMcvuaBvUVix/1OyRBH79C36SZT4K2Nqa3XsfTaOIH2LokzC0SYj/076Fupo -XaM8oHnLtRSSI/s36nj8/j38OpYTfYtlFwwGpqamb1EJQZXIQP2Njy1og1C/QoXWh9ODz+LPt0Ds -WL54u8Hqk0FoljodSg7NF3uLmxwwcEdbV8IvWaSpIWWeWAa/U2w+Vv8rCNFihd+EkIbWNAWBzxqC -l2HM6zR14xB9i8vPAKos1j83MfoW57JBZASZQ99CM0QWvHywOc5VXXEal1JrketbHPwUAajSheQ4 -ENBx/PQXhq/wC4dK0UAIvY55WXC1x5LfLQ0IVrofu30MEWYOC8N4IX2LJnTEL9jOA4I/08BtilY/ -wiwfzGi1+LZvAaWrIb4veExMe7xIpWrikO2AdPk6MZZ9i5AEfmi591nG4QI47C6vIrscYVIZ02Xf -gnzD7AsJDkrVt2ARBpywIlTmXFzUt6i8vFC+tsFVWwqgKQec5Vrh9qC47SeBZKcexlApDfunSEoE -xYkXZsY8dgNrs1rGydfU0UyXsG9Bq50FqfK4ApwfuLwJyZv1YLyCdpSqTo61fYsX59vLbJR0hsAP -8hkYLUBZTCKS8FvQ6Qmefp3fgvg9pEk1o0Tm/B8b9gZaRF7yYbeQQjbotzglTPpIfOVgfWD3Of08 -f4t78oWS8+Mh6KbsJ7Gv7khdMK/v24ewZn3MahgoxteqhNfDsduwSNg3zQNIjPWyIXj/FolYgjNl -as5/iwKIn4HuAYiRbk98EMtgaMfLhQxRUMTfIB1X+EC4U6FoM/OmK8ZAygXR5A6uhtH8Qbf+LUQG -cxCtZT/Gux9KJXIG3eJqSIISpHva36KWKeNqD6gHQPErZx5mD3I26Es7yZQsjbwJ4FMDbKe/xSQK -4cJAqo9FwiOC5ZHdOh3HkzTZ2kdtf/0tfM0S+De9AFomsaIVDiyq5tsosdE6LT0gYFJnhzg/WiYK -QoUR7I9+/C0+WwHwiuVqfJ1EnSuTWpLr6C75WlIigkZiX1N8HkRNDHI48KI0z+tDk8+DCH3b56Y4 -8pZj+fJ5sH+aQ+LqfIp2+Dwo+j9fv+CRya6/hV/3rNd8zo3mb1HPAiS5pajDNF4fqtlD0NLEV9JP -qnO7cf7fMWLev/p8HhTNaZxuT4EbczD31ueBreMkZhy9Csf/4MlzmadiTrQXyt9C/NThsJxz4KjP -AzaKc7dNybLxt2DUWJX64C5RFWF8SGR0KtfnQf1rbIowAPDIb9HQT/J+myvpb7Fa5+3sIMBqMGT/ -nfZ5sMzYdW8rMDQDuL/F+aPYsa0iNE2ZFJ4T0V9MQCK5AF1Tu0n2bxFpmglYL+CxMA/v/i1Kc1Kd -s47tcb0KKzkaruWbeLhcreVBVueudi/Zou+LuJYH0mb/Fr6HZ5mZD7Pg3wKMKeplWw1c8uRaHmhq -SCPTXC0P7FvGhJqoQEoTaNJ/i+yNcxMI3n8LiW8inUR644j+W4zO3/+UszzQh3q2Dpd3FLvL3P5b -xHJY4Zf5+G/xAo54NHMLllkeiFFQtJTHsZFg/woju4FNt/vpi66kc1ke5BrIK/vfIs2QWRv3jgQZ -6UaWB1m0PCamTYr2b3F+PYdkm72c7pYbf2LpKRXcLA9Yaxd5YGKzf4u5cWcxSjZzgWWWB4rIUD2v -vZNAz9+i0s7AX2q/Rf/5k56iruzlsDwYftkzCl2+Qe64nLA82ABpzQX+Adj9YiCN87fwe/tz5/Ts -C3L6W7COZ7Qx1mZQHPznn+l8+x11Y3kgotLPouqFuiOOATKdkK+YCsUxrCKpfHfr9PW2pPh10zYd -r9vdFcZ4FqRTMCwP6ASt/k0r7XcI4D6Ygco7EdL2jB3gSPRLm2PDZeWaeX9mph1hPuVl5WWvYvXm -JNt/C2ROwP8+j5UHrlmynrXG6s/lL+zfAshKAoWKQm+xftDKg3WPuNo0V6DG3sqD2DqB/chyw6V4 -4N/i60V1YGkAaKvqG/4tCGkxfFi2Uv8W9V1MatrBMr4AWXkgviBoniijKoHaOchIKw+Mj0VajJsg -6NJZeUB++HkVsH8LWkVy78FE0+f7W8yjK0pOs79FRxCF/tHC8ER9N/K3iGnm4VK0a1d5IGoroWYw -MyFrudQ0/hbLqpqwPQxREvEVGYsLZp4DyAtYM/HY3TCBAoMCDEznbwF2CJY6P0Y5MDTfgtgHpN6C -JcPwFowAZovdYlrB/HMLUS+YzrhFRoOZ3hYogN5e2hbI9GC/tQWbtAWAOVuwJ1u4AxNBsharg7AL -XguW8eDpjqzoWrjUtVBhhKkP0FfCSmbAEwZtWtApzIlqoRlSi8afFgY2LdKWFsCTtDg2Wkx4wm43 -vdUJw2qJnLBWZlE2YXrPIpxBfJiasHTOIkdh5s1CZzWLMzOLoGEWoibM1GUBimVRPQpD3YRWFBZK -yaGwAGNxN7LwBIXlhCwgCxZ7LFbosVAZx2KJxgL+YlHAhDGyYnGRMGpi4R/dwkCgGY0Olh0WJ/aq -NyLQYigVFq8Q80FgUeODBVULFrYGFrIELHL2V9AojC2/wllhmL6iPwp78BWjJizXK8Bk77ziEJ5C -l4zFK8IUzHhXPEy2UcZFTdjpVlROfYCuYFVylyv8UjCq4wo/EwbGVUgUdgy5bBW2D2tFh94K9eNW -SGgrkse3pq8V7lYYbLWiuKoV4wpbphUoh1bYVlips4KMWbEAPgijrNC6wv5kxZgWjxVZ572IMFex -AkDybRQrumAS3+AK4wgIeNmtwIp3hQXzVeReYVLwKhBzdVR8+6LshlEkLizeKu6o+IZ2q2DnVkGb -fLNpFSevxDfi7PA8V5gnq4D+3s6AVcSCoj0xad/eJD0VQ6mKPGdvyanCnFRhGp1Yi1WOPQiTxLre -YqAK9HgtjIwwODwV4ALKUaExU4G6S4VEpaIwwpglFY9CKgxyVLRK2MGowHiiAvZQwVao8J9BhTSg -IqWEmX6KcIswK59CDfUU0/AUwbBTCFPtTaI5ltGAXHloMqD2ZjDT2E1gC+xN4dCmgA== - - - eASeEwbtdW7CVJYUxkilsCA6+zSF3ae7r6Zg5KoprHTCmDvpFHZXUyhUsLBOT2E68YVSTRE5ocI2 -JIyUVWgiTmEXHwuTZpksDJiqiVXY+STh4/vZYJ+Z+eOFeVkM0yhlspf8paSGiaBuGGpz2LnvsKLG -hy0bEDNOIebtE7HPOGI+nV0S43WJ0VJToN3EYgnCQDHTk2LaATSgJoaVLNZVoaZYtMXM0xTALpb5 -LzYTEWNyImO4t6dmTJqmAKOxoAZ6K86/XazZG6sdbywjfWMhSTr77Gtg7IenY8ZRd4wfnMeICnzp -xLh3Y19pCjODjGTjVVZ7yDY/kWHHMt4L2U4UkvFySYYRkrjYu2TWYyaDZZqi/wUnU1BTjJYnC8eg -LPpAaz/DbiW7qSkcISYfd3GYpbJZUpkyt8q028qm1BT+V4bcVgwmy47FNUDSuNOXAhIFMt8SHeRw -meKbynBW/8Yn6pjC/suowhQ2rORxjbo18UnEbLLBFLNh2MkjsyuYQswyE/SWa2ZfTc7BFAA+M2WO -NBtX1CzrWrMnYzNpY5u5Vjf73DejEaZ4G86yYIp+nOks5sxBskJn16g6067Z2eS8M1uLZxLtPFN1 -PZsOfNYHphjn4WtzjDRMQSciZjA/m2CK0F19ZoEp5OEzg80KpmjGnjFhCvN5RtUOSBjPnHpnr3oI -DqbwmRjPClixemeKJT0kL+QsE+z2BwgfYYrY1tPOpunZ2WDyzuigeMZV4ZtTbhhMEet5ptOCYNiz -Hq+Qwmc+BbowxU99VtWhDzsFOQVnmGKffUYi/aEHMUXkUdZnYxg60WGKfyADkdBoqt9xYpdChLoU -o/js2FKw9/CZNEBtpD7rYila8zOblSIMlaI5SnFpnxRBTQo4S4rWkRQfGimCiBR+YYQU5Zflrv8o -PG/+KMaJehSF/Bm+7Cj+JVXGUTD+tFGgolEYIaP4hXUkyp8NQP6L4vFn5bYoEObeIlEripakKI5N -FON9dkuieM9EFAQ/G0AUPCcsR0ruUCwBr9uhsK5Dsc6GouMYCh38TLdQqEALRfc+g2ah8OwmmIXF -h4DCUeHTfMGCIuBnYgQFHQLTc48Ynj/jA4GCyOGM/Fk8QPGFS4DW/7pJ6k8IF2hlP4E+fiJb+8Qd -fWIxBdqhT4wJtB6fAAVaxicODfEvzuITN+kZQ3zin0BDPgELgRbaEg9onTvRpwzoCW8uIF24PMHx -nRnHE1jhiSgHmsR3QhjQjLkTcUCTaickwk4cA9oLrBNjHfc1oN3ViboCGuZ0IlZ04sRzQnnmRFPl -xOyf3SEnRvefZcYJ1D97QJxg/jPDhxPQA5pscGLuNzGhNzFn3cSCQDvFTajZJmRCmyCOTWgJNBEB -aMEdQCsxsfqaqOma4RB9UBwa4nJvfq4T1z5S1pqYCTRNVhMyQfNGTSQ5aCqaJkBMaI2LNPFloWFA -NOGqoVE/E50+tF+dibl7aGWbCeKVmUg/NIfLhHnKRAGXTJgLmejd0H6OCRqMCcYXExBMTOg7TEgU -JgKAaM6CiUfABHXJnFt+iSP5g3BDA+VCw5TQMJCDhnVDmAt8CY4SNLCEw0FTSXyJ1UloMvEbtKcS -fAmaShNoJl/CGcst7gA0R/30+BLF+FU2JtCA8CXWYvpfTu8lJmZThK4BRAlf4iiB1vMSGu8SeQGB -dqakkuoSwARawH/WJZaaSwjOlktgMAKtBZhMoLllLkGQ5hLXFJcI85YQNlviUi1xOSPQ9rnLUQst -kfWfaaufudlnGwy0xMw+PrNiCHZin6kZfUP9zDYsgfWVaOlKtPvPmLUS/38GipUQZJXwCve0DqvE -zqwSBYB2UAG0H6uEhXvZFaCBBdDorBKytIwDARpkC7RtlVDwQInA60SBBq5egLZpAO2Uq4Qy/7/J -rhIBVQliROqrkdQZQDPLuVK7HL1Ugo0FaBirQJNKJbATtMehpxS0yZxW0CaYxYI2D3y5IgQ0XCph -g4WpBCrbEVlsR0iW/fszTfVn1nAqQUj6LP3zZ+qpBBKgBdJZZMveqcR1AW1exiOgyVMJEFVigIZA -gPal7gBNgyoBXpBPJcz7DZjTq4GGpxY0N6BKQJ9K/BuVQFQbaNES0KRroFGxoK09JdwfNEpTwqDQ -0FZKtGeTOV/PhNG4tJZ2aD2jRI2IpiJK7Caai1BCXUWzfxKZ+4smKHcDRKMt9STm4mg9OwnUo93j -JOhzkCafoKkQMtKuXPxqLM61RSZhPeWcUSQ83VQaH5fEydLwVxK2S+MwJdGI3DmXm64RB0+IaKb1 -lCRma1pbJAH6pm2CJDg6zeWRGPE0DY6EXJ+mz0iECgZqOvyZF10k0gs1LxUJhQJdWiLhO2pQiESX -SW3mkJhfag2GBIpTOyckdPUg4YJqRQUJpFTrDCTeSdW4BRKOAiT0rZqTPwI0VtvwI9zzEd41ury8 -R8TshFdZDVaPiDCPGK7afHgEUVYzdUeMW02OHaHtajLqiEB/NfPpCCCxljxH/CXpZuUIrM3aZBzB -SWtucMRarRl6I9S0NRs3Iu2tqYcbgY9r5WzEC7qGeY2wczad0VjsRmJn1zjTCEx47Q2NoOo1T2fE -cB9LZgSDd2h3XaNURgBgUDcC11GfHerYFrmvsQubCDECgdj2gxFEik0bjFjK2KR+EYJ3bII2FHHt -3/5Q3bwuAm+yheIiNhMuQgxbxJg8i3A5i2gtFnGCV8TMyva0IlxnRbiabF1VBBEqYlKmiFWIbIMp -wnwUYbBj66EIWfiJ+Dq2uU7EGLI1NhEIJttiTARX2ayWiKGXzSYlQnZm00ki0i2cTVqQIDzb7Y2I -caAtcBGBS7TdFhFM6amTiODatL0NESOktq4hAm21nQgRbFubRRCxfm3GfwiFbPP2IdLRNq89BNK2 -dfIQv+Pyun+GMz67rUuHQNXbiiuHuH8bDw7hRLihVD8yd6Fo3D5uiGXkJm6WW1VqbsP63BwfRzdY -jG6HfLqRb0P8w7pF3BCdsJsvrd0sG92Ne9/tZsOb2j3eYMC8cQF6m3ND6Kk3iJa9QbghELu3TSO+ -7U413wZ21jc32MkN8RDGvb4pYcS6IdS4IQY5306Lb0V5hm8BrbkhynA4ZJNspHvDnHszUfgm1w0B -WlmzXRTSt7kbQrZ989R1QzD5bbO333ZsC8LD/02CEXAqisANuSFEA6fjhogzgkMyKzgQGlxr78F1 -NcJt9ITTbSwcPzdEheE4qeHkcEMwpA5zQ18DSQOhUVffyolpCMXOEDMfbqQMoVgM4fpwLRgCocMF -eSGG4ELYOlzyWQiIZ4jMKwSyu8uqQliZQvg7FAKuE+KNCcFhd3dPCQHWcBckBKPDyRchijuEuBaE -WPCDGNWH230QiDwIx3gQVKOD0MWJfHl3N6P0JCDTh0tFcA5C49FBbA1xV324wjDEuffhoOkg2hF0 -EBNnxg/nA1/rw93lIABePxzz6okAOQhJIe6p/spBbJp7eRfpdj2VEfc1B0GnEneIJ+4SUTSjg2Cf -4oYIKzxxp/0U5y84k+kg5oyKU//SjvdzEC/yPyzQTxyggyjqiYNV4sxQ4rDTiXsRnjiFWWI6CLET -t6i7cxAbStyJDoLkWTAdBInYhbU14y9cDNYgEipxrp1BwFI9C8UgBpW4JwahqBuJ0VM2JQ75QMBk -0wVxKMkFkULmsiIOChcEVJ1+VMSBK0acGPs234Lwlf1Q4srS3RbBTSEAF0S6E0eETHGou3znaZBo -MHFx5BHI8ExF0KdxOxnM9lI6U3EzEj8OBxbkaHDI8XKRy/47eDCV5HhwybnCTW7MBSH7yRESKQeh -onLtgR4eQ+II9XVBsJDlRAEjbcs5yBZol0MKQRD5gXhBsLoJ3W/vBXFYylFNM8fmZOaALwhw0Vxv -qzme0OZQQG9O/4IAgDhfEIec9oLYNhX4eHDWObuP6pyRWhVKQGSd4/CCAHaP9+O0xAq/OJ3jXhA5 -5L4gJDdza1bJmp3zuVzx55KYxj32aZz7LwghcEllS9HcgVAW6PpU9PxJ9E2gMx7AIGgDuj0iTaCz -ySnQ0f0EgVC+iAx0bQsivhg8wp9TNE0OaXMrCAX2c1en0/o5XErKz4UZiFnP9aA1CYJXBMHuGQhi -9PH4uQMEka1teJ9rEgRBuUDkDgQRtZcmQptI73MZEkPL1NccHARRA6ATmUa3z/ksviq0wkCwKcSB -8JeABuL+AqEPZLIdOseoHNUKxD324TmHpysQyjZtnEOyOPeWGuHvnJMVCNKXKhBgHnPuV3WOU4FA -552LLJDKeY7awgCf436AoPyctg4IMQM6VwZEZtDZFBC4QleDgDh76OgFCHOiA3kCLhNGF8ABfubo -qv+HI0hX6j/k0P7BdVxeI/9Q3ZTuQjaEHZcuS39IX6bT0R8A3XQZ+sOx04HjD6Y/Heb7oSPqXu2H -IVKXsX6Aa+r26AcyqtM0PwyrTov8IL9WJyA/BL46H35AArrhhwpiqF6gI+oEwg8H4vuwzn2YqPZh -99UdYR9UWB8saIhrECV/dYjwgUx3zYdVIcuHeeRDGqHx4VbEh0lf3RE+8IE64YOnxfx5OYUPloUP -TOBKvPFLna6H8dwDL28PumoPElhnzB4G/erMwx5gEMIeEinXgzECYT0MW2Cr+0H1IEFRGu5chG3V -lV55uFIl9OAZ1z0Pk5yHW2keIkTzQPvyUC2Whz88eQiMPCh7PNS21QEeD+dXxxkP1ilW8cBKh3hw -dzpeGB586BkNgAdYhzHwACH5RLqDbyB2rxnCpn5kmO/Qq3cgQ00eliyIsq6ZHWJ2JHIHfh8/Px7c -IZ+hzuh2uAwRGUMv2bSOax3o0ZTZYcnBRXZ4ntihDNjh7l2Ho1sHqKxDf1kHfa4OQ06TlqkOTz0/ -z+dU6lBIAcu6uKAOzWJ0W9YRTgcgyXrpcPg4X4KadOCEOuvowDZL6z2JRVh3MtChugc2xT6H/J7n -QLHOQYA7hREsls1OBs1hOOYA1wnrwJvOvQgGdSNfDj7QAla2V0Q8DpFZZ5OUg5afmcYoh6gmh8ys -s0gOKYZ1nsgBS1gXXxo8Di/eOKBmHDTMOqWLA7RZ91NxYMU6bYlDLMShY6wDORwGGA7Ghc+rChff -CYeCV/flwYGJxF6t4KBm4AAyAg7n/oYr+Q0H6RsQZeAbCq8OuN7w3atjnzfYGykNVClQcYr2vELS -u2GpYGNd0m5IFuu0ukErumH0zdwQWxjIDcwQN6zJ8wz+29DTbgOwbQOYbIOemF6dZ7bHRqkstaF2 -1tWkDWYCbYivdepmg7hvnYgCwaDrevxC4nVQvgYaXFBsWM5hYcMn1lECGz5W7FAUAOaxC/C4nuzG -sIYOs8O9NZRydrNawyS0S2HWAEdyf1gDs2qn6moYXjsrVoOgbOdSNcS17TSoBuRLDXd2uzvXK9Zv -d/RyG+7GNA1V0D2ogZXZehoYa6fFaZin7tQAJC27K5ExQM44GQ2EeKc1adDVvDNMGg== - - - Qqx3kpLvnR3SAEKLxN446OotfldkNHz5u5qi4UQQDVYBXg9DA1CB1yA03CZ41IEGx8Ej/hlagLc+ -w1Cw7cqwZwjznR7PkCU8XTsDaq29ic6ASXjHyBm4qU7Jb4YpCW9sM4znmoFs8F6aga/Bk1XODEPv -dp1CBz8Hb97MYCnh0QROeCwlvIvhzDCFCc/pzLA44Qn3wStVgfAqTeGpo/DQKydieCOLDA+eGf7v -uJEMLYbHI7BAh/fUmYFFk3i8uiLdlkjuinh+MQPsxNuCGThXPGT84mkHIOG3/s3wVhDy9uVlEKlp -5AlX+mIteaVRP3kGHvruUXlRvAxwl7ZjeYc2KHGXt95lKHBiHnjiuuXazAt8ZAvvss578pbYZWDb -hw+dTDhhzBNZ0dNKfPSWltLrkjO9a7wMdzlmphV5GaRFPa+XIeDUs7KXAYLVqz2sh5taz6Kcl0Gb -6xkBtPYxXaPeDS+DL+yhAgBTsq5+5LJHkoL2zrCpvUK8X695t2ffZaB/E/cujs6luRftMmRb90Di -u6fcZcDV0XsT14nDofdCaGhifE/SZcDq97oe8Kkhg4/EK3xMevhKH4qvSOqoZMvjg7Yi32dOPj/N -9pWPFzAfhmk+U5cBRDnfaZeBL2cf3yDAwWpIer5ylwHroG+2y0AgMvrkU4YUICfLMHg++ZwEj5wN -h5mfd1B89p0k0D5yDGZQwQp4rDN+aMqAj8sQEFoG9CtDR/twqwzv0j7Wpgx2jc0KUYbnnQzVQ5NB -XsmQmCMZSGkfNJVp08gwI9rXkPwgyxb+uhcjB/7ZCWSX1frHgFk/BqB9DD7zY+gd0toUMhyD/8HG -wPGMgakxhhLtYy+Gb8YPuVtVgelucHEVwyyKIfNon2vItLTvKZKmfaxDDETtE/wwOBSPQdRuGNZl -GALHhUGqfTaFYaaE4SUIwy4Ohl3UvgWIUrXPiry1j+nA4KDAcL32/QKG+eiLBTDIB2BojX/h8X7h -bX6hwt0XBLhP1BdU6dPyBRHApRUXvgBj+pR7gUTshVcTwz9e2NP0At3bR6nzQklh7IrygvT2efFC -4YIXirwL08BdaODsgnb7lNcFnfaqC8LyTBdipc8culBQIo4mV96+vW+hVkry5AJ3KXpcsLD0UcUF -W4CL9UWMmi1ICbiwGN/C4N2CtLmFE7otjN6+c1uYun31aQtIb99dZQvM8wL4YAsYroV1QmD31UK4 -qwVWqQWdnBbWb8KsjViCEY9ZVhItRIAWaLqzYHSzcFdmgUNkFnLHLOycATdmWZBRKAu4A+BkR51h -e0CosVgQcvZKLKBhITBMx6ct9ePtW/wQLDRmeuHt9nH/V4AWAbiCvr0CdbfvySsY2xUA0hWI3D4k -V+jT9g0AePD7MZRYbR99W0HetULd9kFphavtI2cF2yYreBQr6AqsECDbJ+dVqImrgECrIO1XBbpV -hbepAgCiCqa2r3ynAiT6LCwPLttntHJIp7XV9oVm+6wzVhmATAWK7TuPqcDYOzbYPlg0pxBUFgRN -UZkKxSaaYFVsTIWNhO1bhVlGn5ngFr/ZPn2s9+Ska18Rae4ITkIavZRr34jnWnYjzwjSkQx5l+0r -YUli+3zJcMNU4DmRpMi1j7tEMNa3Zu0rwS8VFlwqoG7O6RhhLRVOtS9J+roCyOhDtdo3LcrloKpZ -+26v9rFR+9b75FgqVOUxOecFUrREBG+pEOPplwoBZ+/WeJgKeNO+OjqpfSJa7ZNq7bvBV+3DcGNL -7SuYCkDyd1LhEkdASeNRgTX6LInqigq/ta8MFfRZqPDaat8pVBhbQgVWTO1rIC6TweTWTYUKHQFg -6xu1T7FB/vp3075ELVRYIaHCHqD2XR0fLBa60z7q4AXwCBX+KEQCSqhgfRChQtF/lYQKM+hChdV3 -boZydkSFtO8UKtBRx0KOVyGWNWkISLTPpHA914UKo4+H9n2IW+7n/goUKtjmlXjgHw1msRkqwKmf -QjTaZ1jcLtJQ4QhoXzH0EYQPFaQ5G4LmdXeo8OOHCtnHaX2aI/0URPBTGEf7TucpQGBPkKV9stQp -DHRtwekU8IJTIF1TMHSm8F1MAc5LoUv7iLMUNlQpWAqlcGBS8LM8UuhQ+wgMKXyTIp13IQXF1b7E -R+EcqJF4i+nmKPhVNQoeURiFLhaFqycKg00dQdW+jTSsfV+MKAwiFtceCrLLzQqFJREKbwYFroCg -0NY+OqAw8Z9giP4Jufgn0PMTKtU+dvUJG+2EaLUvFp8wo/AJKsEn7AbTQMPirX17nFA78Dex0oHZ -CUvVCQB3pd7wZ3axCUPHCcxrH1s4IdDIE4r5Jmxr32Juwju1CYSwCTDWhP7XPuxqwoHtY5wmODZN -EHGmCdRLE7YDWm9FxOaXUHAy4QWPCYuKCQGGCcgPTKjrS5jZvkm8hMMzSUCX4PmWQNT2Ld4S2Ns+ -Vy2hzSwhMSzhBl0JcawEG6qE/uQ+BFTC+FKCkywlZDVKgBFKaPckDConIZwmwQ4mYeJKwrSThHEz -dLmvESkUSXAlVqBeFphfeBZmJGhUJPAIkSCt3KcwJGjB0H23Bwl4LZAwO/edPwKkhD6CjewRQI1H -sGlH0DjpCH9yBC66j8ARPLcR7NtGULw1QkMaATB2hV0yAn7uUxIjHAKbKhxfWnSfFIr3AX0XAaHJ -UB54Xb77SLwIsFXVm+ljEZ1GY+m8CDciy430Uzu8CId9qeT2LkJtt4vQuWmVyqwcaYaENdpdhDe8 -r3GLgON94csifNVPCxWCkc4VYRXvixCavA+6IiSpIoD/pCKAT0Vm8T7zTkVQGFQRVvK+JaYI7PAt -ayiCS50I0pgI9/dK3vcDUSLIIAvs8yTC4hEBAPqw6TVEWAgihO9D8JaHMEuHQAKHIKe+ksE3BOG8 -b8AhzH6/IVTKv528D1GBQ6Dzvp2EgEHyPhj4vM8TcQiSB/YZosr7lgrHIcDmfSaHkNmGwJf3QfCw -MtH9wfsM8pRUGoJ+776mdTSEfXiwxeB9Ib77xHe7NIQVg3hk293HI8bgT0O4zb0vWKqokL2vEZJB -dr1voNr7zEM1BC36L+mrNYTAj4vw7d7nagg4e18XG6B7H9gaQsyE77Ny70ugKtI1BCdbZg1BUDRD -j+4awrk1BLdmCKW8OiGBGAKWXQgyWQiLVAi/QSHkgAlB8X3uIwQAhhDKPggCxQfhajr7Bs9BoNUg -kGEQFOb7hAUB4vvOnyAw0JMI+D7+CMLB9gKM+QNhtoFgbYEwSwLhYwNCIAHBiwQIBQCEh/sHje4P -3Gx/kJh/rQW4/aDG96HSDy7fR8kP/PF9OIAfNEPoVfz2Qen6YBzZLo8A54OB77snH3Ca77Pkg4nv -c4kPlICfAfig4u4B1O2B7bIHzOJ6sE89YCg9cDjoQTuB3258oXAeDAO/6pcHMOdhQS4P8iUPoBwP -/ice0AM/tMIDM+CBQsHP4zvwuXdQcXeQXe5gOm4HO/C7px3oVnZgCHaAketA7cQ6UIKfoDpofToo -56WDHfh9Rwf/Gx14IXQgAj/TPQeaboKpnANkAj/hP98P/dryG/sLRXPQ+MuBkVYOhlQ5GAK/MzkY -/pADn3YcqNNx0HOMgwkUBwVAHBjNDweJhYN1wG9wcDCYBQ5c/gbk+Qa71Rt8hDdYyG4AJXSDEviB -xw3+wI/k28Aj+IG1DSqjbVCuNpAX/JRFG2htAqaGNmBiNsB4bGBo2CDta4BM1yB7rcFbrMGArAZQ -ohqskRq8hTXg4E8DnHcoHMsP/j4NdvCnQV7Yb5MlSMHvJQY/goAanMXdLNfw04Bg8FsqpgW/43ZL -8DsSqAHnGwH9rQ9q8PDToBXXwG/H2x3pAzUoau2c0Eei4PfyBj9MBT8sqIGpPoMfQAg1eJwOfiio -AeNo8NNUzLsJqEHy08BUB7/Qy1wRfnYkw4MfDqAGrXZC8H8aoG8jYIeYqX/kpKWBHPwGSYM9Gw2o -we8kGqAnNEAAaEC9Z6AU/NSdAb5yBhc3g07wg6YZTFRmYBzMoAt+Hy4DhusCzzGnDGCeDNIrGYAZ -GRgPMhgXQQaoPAYbeAwWtVCw7cEaGPwCzQl+A7gxmMIbg92uWIFfk+AYHNHfGBTtwm+kwk8Qv/oL -v8fGYHIVfl+vGH1bY9AbojL8TjYGJpqG30wdfpaGesOv6DYGf94fFuBvDF4YfmuA1KVE7yGGY3BM -2ABbc+7GoFvxQ/7mTTHxA98Y8Cel+N2YGaDitxEWTDgG3OL3lB+/99wYdH9jED1JgmPgBLKARMvg -Tz/K4wddDIBXMYhhYrDa8duXGKz/RCpQlXGAwS2IQXF3mFwAIsL/MHgrHj82+pT0YSB4eHp/2n4Y -nGoLycdvoUlZF3pD7U6vmIbR9vgJiuAEgsiPAWLw5H+lGfmFIAYgmpkx4pUwI4Ts6y+IbIgBCUQM -7Pr8pkUMakOQ9UYMZooYQBAxkOWRnw+S/ERV8ntu8iuGoeTnlfgyJD/+5oYYVEXEgJciBjZ9bzBb -6xJGDGrwE2DA8vVf8Bv57arSSY8SDiQ/w9cRA755etCzEP8LxEt+RQ8D2Ey1DiY/rIOMuLwC9zEN -g66TnxBNi/LzxKT87vcFPqkdplCh7tdiGgyUCAZAwwgMlEaY8tsPGJBR+b2k/MpA+fkmMGDWlEcE -BmVDExeS5Pg1x1Rg4Gf+gftf9lkvCMRfwB0bw4ExX4CrsDkZ5Ud6q23dC+b63SDwXqAITym/N69d -PAiV32P3AhI394Lm/Gd7wQTLb7vE+8rPtuWq/Eh5gRO84C7l9y0f2kG9AAmMsAvs0wUEPBfIKxfI -5bggIeVnFS64+RYQgW6BMmsLIGILUuUnWQvaibWAjPLjrhZUOi0Ypvx20QLugpk480wcRe9NyDwL -oIo4s2C2Rof8pKRCFuQwFjDtYkFO+bnDgvif3rCAVIYFlhYWYGFggVb5SX0FnIHgSMrP6AoE3wpq -qJCKVQWh/PqoIDZxXgU8uWYV5FQVsE6oAoFhKuim/GaPCpigJqQCT+uqOFKB2pIKNhylw84KEKRA -xk2BzjIFKpeCnvLjphRsQCgpsApLUlCLQApIFTcKCqTywzD0YP7f/ZKm4c4FhtQ7wbqgYAoBBYv8 -BDPzG/AJiCeDLGB/Hj9jLkjmCTj1ncCLdYKa+cHmBAdxAm0MJyhkfqObAOmaSUd+bAIlqAn+zwQ8 -/MmAzO8F1yrW2VkJhjSDCZ7qJRjEJYDup8ChLTLmV5AEt516SuBXpASmFJTg1wm9W1c8zO8oCWr/ -ESAJDhXOt6b4rYRgjZ8FkcB6kGBmfwRIPYI0O4Kt4wh2mN+ijcCIRgARGQH7i8DHFoHxVgS7Uyv3 -GSyldyGaMb9SIbhAtSACT986AoIeAhDLIQgmJDrOsob5kaZVUa4QHC+/cEKAlmDhlSIECYEDANlQ -uP8HkBUEc1ZBcByCQI+BoDqXHwiB4CICAqX/A7WX3+wPoNoPGOQHEGv7gF76gD75QA== - - - zuVn4APL7QFQreRcesCE88Bo8gCOFw/0lh8ED7zzDigwILlZsB9S4HUgsNUBqKYDK6IDW+U37Bz4 -pswBbuX3lAMUL2EHOZD4xYGfhwNTBgca9xvQlp+kNwCsGyiy/HDiBoRsA/7QBpA/NhAtP8fXwF4A -k3Mg0h2pgXjTAFFJA7ZEA0IDSk5EZcvNgKrMgEguA/WUga+SgX2X34MMsJafFMfABsvPgjGA8MRA -MQ8DGsh9lW0iLb8IvMCdwlUw4IXE+IpDgAE4ZbiIX2CalMTRW9anBZDUBcCeLnBF7JQLNBNcgNzy -Q3ILCGELqPu0gNjlZ/gsMHxZYFbHAqvCAhNfAUdzBVrUCryGFZiV+dE5X37xVCA1KoCongKMawpo -l5+CpYBatvzVghVPTkQKCB+//DLnifnZSAE8SQq0+Bse5ufY8rvSv8sP9+lp+TUlBTCKigJJJZIm -uvyGJAV4te/eskaGUZEowCQUoLv8wNTLzyqvW/MMUIDV0S6/I/8TOI/e/GybbH8COM4vNv0Exk1n -Xn44tKTJr2oJnPQTUAV/ApBCy/r6TyBsAAXIdvyQugVVQIE+BAqY6YY4x+8CFCAtHQX8E1DNNAnc -zGOnuYA+409g3k+AJ3d/AgP9BMD8BNTvE1BIN1Jli5bAMjdhxkRKfoOfAFGS3wy6n0CnPwEQ9BOw -pSeArROoDsx9J3Yt+XX5SX9o+/vOldpj60jywvoUTTJ56EAmROZ7cQK6/cflYhfwiQR1xQnQU08D -0ID9PyfyeIjHMzB0Kk4gQq5iSbAO0S7VZUYJdBIZaAK1sElYnmMCFoZ9pYFvTe9L4HDw6HLo/KIB -aC0B7vp3BF7HSsAHLHfn45OOEmiE6OFyXONxdBmW/2OoSSC2wP43cuq/2eJNEqhz4efwg+lSFAls -JAlK6PQShKQTJBDf3FADVdQi8gi00gYbRFXgy0gftNpIAOAjqMF2Gs8I9Ftt4nZmf14EBgwpSbkI -QASQSaVFoPe2sp3YIkDWQDn5dIdvpMFXmt/827s8KRD7LabI9jeHCgQ+6FOHcjFhj/obAuf7TnYh -sIF/i3L+uHdENy0hADXQRQctDaYMkOcgEEtwggBfbtcpEMiaBvcDUhpAoA/6gHTYR1aNyYQkK7TJ -r1v8M8AEYHDxDiWWJFyqav6bC795QDFWmJHzD3prfrp7QNNeCrIy3fTAvSaqQYrUfHv2jfqHwbrm -Acxw+netUEnmQJlUSmuC1/5qlClRdweMwEPhFNPoryl82QHRaMm0M2VaAkodEJcGMC2IHSW8uYsG -dADGPdAoXQ6Q7utWDVf8n4jYrNNzHOD5SBheV8N2Sz5YD7G+9Es1GsCCFjo3gHm20rO0UKI2YGq/ -tD+lhyjrVSBl1cSwAVp41AY2oOfw8pIy+Rn2vrPxaoB+Gz5RyAvt1UJyGoCkwgN/qsupCEUDoi06 -odEfEesInxViwuAPENui0qMbnRnQSMSoDJigLsp+UdJGxlJ34Xx4cZc/ahgTDhktjAE4RctJiAEM -JXmnr0lutXk/65loDga8QiMKy13AE7peLhiwr3rMb4CXyqXhF+DlFaaZ5ZdLg3f5Sy93aF5AtgRe -71+4UFAXUO6K//G80SbxUEnCBVDcEOnIQsf4gS0A/lfV6JACRJ8FwONApCZv5EyesYBy9xwMM4yg -Pgy9AsBkTCvgkH9EX7ZSqwIyk+kEMCxFBRBz3EZSYNnpi+WUZzO8QAqwOwFG04yhALH8H9DDlECY -PgHD5Ptzx2yIiJQR6ARotVF1x+0apGiMe9gg1KP1NQHzTgJUKpBqUcJFnBmpMAEMXs8ATACj+4sC -PWPgEqtc7JUALZtPG744JwHTGm+rRmj3pif6sip3HhsBDhRAgSGPgPzdkZsKiTsC6IDL6f4tT6vR -lZMRUKqEyNKEbExjHKYpAtL4/YhRaZyRQQTQqz6I7JFf50IAx7LcMktvL9LF4bGl/Iocznwnta0k -l+0gwHdC8E4TY4OAfboIBIiiTI1TLIgCLY7YD3Agu3ac+gFAdQmDlqGzVzSND0BoUsGkiI1lsSpY -ITZhUipKHomVu0ZL3pUEW4Xi0QNU6oPsdN8BBlIi1Rpzz6Mx5glNx9YBiOYqiJZmLuwdEPeQmgNk -Am3bHXP5sJeZOMBReCDNU4YD8OnwWwgHOEpSWehXM+ySm3cxTQiCTbs+OabRl1jV6qe0Juoh/52T -/fP2GuAgSG5TJyjyck0DHJIAepSMZWdOby7Glcq/lAHGvQAtBmBk6z7WV82tggEOBV+f3pFMZb8I -Oy+A7l6SlkXLpkjEjfh8KEzCab4gpitWgYzmD+Lo3ednHZmpH4uuHp8F2AwchaK3nfSKra8zABf3 -R+m7ySRTZR3QkDZeAaAeeiNSfNBZwak+AgTW1eLGXoKxPrkWU4Baa+lADj+JqqEAJgoB6gSweBBB -s3dN6+OVxARgDhYI4LiMrBtDKUqAMjZaS1wE/giwqgK0QHqiRQC+o3A9Ik2Cxw0BJPLehN+En20t -EowgQOyA78JOA7IsiLIPIHyQHj26yP8z5E9OHsA+tcAThkL4Blo7HUCxpg7NAl8GpkTR4tVGQrWB -jw0AG5qjGzuUoGAd0AB+/C0H1dPc7xhAQ9QZZ+VwRF1GKgHyBTB2N2IUzmSpBWCefDk/U5oaYRUr -AGnbMdQcra/rabZHAaRBPuiSc3oZ/hBMNAG45/xcKl55lG4kAHKZG2LflyAfg7WbBeALz2hV4f7p -fANQY8EB5udSwUDu/Yper48EACRwSkutzIBi99zck9Ex21bdoXdfkQBWmtHQqq04Kf2FigTA+dXF -IPzIwCDkwhUkjC+kY7HOEwkAGhi2gkKkQep04CQfRZ0gAXSlBC+lk+72MBKAJul0YdWy0ynfrhYS -CcBDTFLD3N4ZytIFEgCI4mNkHB7QLK3EFCQAxh9w0mWaIAE87zZbKy5GaGEWdoFCAqi17gzUwgbc -KKV6QgLgpjU/mm2Tv9ojgMPXgcEEBiBYSSFykJu49BTxtBQspsMwuvziPwIgm4iQwJ3m8AigTsCF -ZNyhV0gRzHb5/K7+5caXA6gJ2XwkgXoJrhb1/QjAdLHVPZ21yOmPAFKeMM2GomSwsuMRwAKekMc/ -2glb/FuRxnup2SOAPtVcb9J8BFBngqOHjQfTwXoEYOPfSCsxMqvvY5/n9whg7KdZhKB3nT4DCzA/ -fUhWFNPI6SOOl148zECJLQIG7Kh2n+vQLDJ46PNibhnYI4Btwl3y2skfe3dCBv4irTidwKt8YeAR -QIvpvSRkAUI2MxddR+1SoEcAL9xWlsnmTBmPAAAny47FbxtU5TE1mRfk9WbaHAEs+xwPIJtAhwjt -99+x+vpcHQF087PDZiT7kY4AYkPP0QsmbZVzIwB2iuBSNZDKmZBzYARQo/yAFU4mMGIEUM4sjoAo -NL2ybCsHUH9g5awX1ygIhAg5aGrNCGBCGmMuEUoUvvyVFgGE9YycYP7n4ZcdGYYp6AAD482JMVe+ -/3x+EcCGfEUFGuTKIyaLy9Ouuv5UnFoEsA7Dp3R0H9wKiwAQt6+GQKJq7OniWdcRfIL48loEsN5T -ywawryB4LALgf0BL5ppx6yaicyEGuBgf8BxTcGS0Q5AQAVAv6cIBIwCmLE2AfMky7BXmD6ckzIe7 -QowgbgpxyAtNJ3bLDyMATmr//oHlb0xSjHRprnH+fq6Pg3aPwIwAWojFn0mskFQQXS745zgCiO/D -H/Q8TAFKY4zazRCT4cvsHgEcuQmitiANcXkEsLFznkvhoN5Tc5RpHmUDiCWhDz+xOhELgC+qFBZX -QBKRRAKw5vNI8BEAPMOxK375h90oE1/eNiYMvj0CUDbpzN/DFBu2248A6u7JDjXo+o742EcAU6lk -+RnmTRF3hdMHYOgT7oUzZKqaijALPlu4oCCdDsBEGc7xNAPyWcakA8CgI2/8WgMQsS41AAdouhi1 -kAbgHALVMdEAWC5kJTVGA8BBwiczYnmowYR0B9J0NhMojwD4aN6KYkrGOisidKjMWqYvDQB3iNFm -x9hQqwEoDq3nyOjMDEA1ACd59Msd3e4w1ACcs5yZdbL/UdkzoAaAP5BTvCR8NQCDFMCT6T+b3gyf -SzUAn+o6n9fIcdB9Yry0o0U1AJ+S+Ou0o+vbogFgPyAEpMaeLIlVmdrMBXaCY+FOmCfHVa7nGCUc -1rkGgdmaO3qw+GcAmFTUHmbWKEho/I51oaEm/1Vs8jAOvWjFMwD6IiWWNOMMgFlfXYzfo3Ubj9Df -fTRpWrSHxCU0ANVKnjh42GQ0AB73fBXcvrrsyLmXbWdmnSycBiUGXlWzEY25vvwMQNPwRAHZIAyh -4YczMRKhjwYABpLAwTIcDQCIWs20GoAt/K4/yzMIjCi7LTYR3xD/NQ1ABcXvFxJ9hJ36onSBDzAC -eO2EDo4WIrN9GgC38muaHMiaBqDkEJcUTwKa2HQZG3BNFA6Y9NstcxjdGWbhypSkTElKQ4rL/roO -PW8BdQG4AWyVYrGhGMVWNFcsnza1D02LoBFJpAWH5TawILOMV2nkt15ffXP9ajrZh7hIxWBsdRLD -EqaNxAVxRHIccTZpfmJmLoSrTOpmyWxGt7ma3bhYnXXNfOqN1lRWKmJEeRNU9ZdVXM2sx+qYE1tc -eAwJTky0HI+eRTaXWAjJfkpU/goifZxKDH3+vffne7u37NdLrxmt1HXYPme/1fGnKkIj0UvXL0mF -HkP/3zZoYvWyVZ826uQWpTKvfrNmVCbYlaozGxNjn2ysRNz8Z82//0x70tOqkVp4TrAWtlynl04n -+r9Wov/aBVmfonP1VHQcNZW0pG/lQ7VnfpnS7/ZnG+6j7f9YTY9ptPOxn9r0sxSv/V8xRc8islo9 -WLIbNzm1sU9+osbiD6n8Qz1njJF0aNrpWP+MmiY+Kc3I9Pf0r2m0+6n3/XL7zkv/UnKFolNqxe+m -mxK/G9m8sxBaRA3N2PDDcsvjja4U96VavqOzX1yp6CjD1T73eB9+GKuyzDf9yPqEvZIaB1XdxZpa -5kSfqbqL4Zjr71BJifcnZmWp6OpkSaRmImq6t/RTWLkEKRdKkP5f6VC5POvuetdxvWsf5OYYka9t -VVyLL971rv/qljPyvyO1NGs75XSmJc9SXsTWZH9PZTFkqmeqLuYdn252M7InRSJfK5Rp2PTKOOJ0 -kZGSd7rI9BMzP2JEqHOh7iYhksqkuCCeMSInNiWnh4wMi6Un4/WmRaP+VOy/SqVg+LUZ8TgSMX89 -FNpPmqFhUWap+qrKYS7sllutmvJFOuXFsBpzt/vy0hSmt3WpKrJdP7GyC18qSXf5XRoh97svb8X0 -DovptU9vsHR6R/02UTXD25tgWaOwLhvpMO7L+z/21524bJX9UzeDuKm2I+ygjjkT9uclVxaxemuy -lUhONFOsWJqI6T3bd/Zyw+WTW21jFqTp5jfmNp0yMSH6FN2gUlAQvWRa/R1C40vM4w== - - - 3Ks6EvOK6WTNiN9NbR6dgwUOGKwCxSIeKKQhwiKMw4QrTKm1g4hixD7DsfKbYUSwlEhE8Kgc4wh6 -wTNLOdyyhb/Cq57WhKjCmqhyKCxKfPaPM4iCYXEREokFL5imSmb8YuiJEU4Rc2GG5czUhlSgHBqb -0LlbRX5xmyoLFxoNFI4GGntyKkLDtEC0OhewFoiuCLV5aQNjEk4pw38KCaY+Kjh4LqAwsCy4FMGe -sYiLVhDqwgjXMCcHWaF8YJj4DOl2rPy/IkTn5c2nJ+czxUSGQSnOIlS+BpYEviLUEhPIkggkJcjK -Efsij8C9wR6igQUOGFDUUomZxizIXpnnEoRGQXafaq8XJsihZDhHRQH3zguxc8ECBw1oDVUaaWDC -4REIoIAHCxwwUFATDDVLKK1gGSiY6ESBOY1VARNAgAoQB4QNqMwFBw0omLDgOhccHICAgh0QoGAH -EQigoBIcTICAgh0IoGAHANCBAwYwEIEEEAzwMMUEDxzQhwiJUHCbAg0pg1Kp12j+++VKZUHEkXql -s47qEa3/KKPUscR+zitHRtrNCLZCpDkrGreTTi7WFa2rcTGK2S0hszHDncgYM7kju5vByTjSKgwU -CGfFc4GE0R6x2g3CGgqcYq4ER5uQBdeUpVr9ughnzYGnpeLzKGqUhNiOxF/CSGBpOgnEBnYCxQLr -DR/csbz2KU0bHdfxkibngn/Cey6oNqymwrcJi82mwSomHmJcFaFO4fDVnBXkfPhIEEcoEyPMdwhP -on6QOhc8hlVp4IwpcIJkJ3xcoQx++rwq0HQYKuZAM5pzgV0VPiET6tELDyQIYIGDBlE1m/DwGMMw -PtKQHMrzDzvGULeC655iBitwaLJxe5NVdCG0NqIhJCPSANEE8g7DoDwYNPwIjVDAVFPBhakIR5hy -aFjCVOgU+bRQD/7nwAiTquikJDwyTBoms7EzU57QmXPBVHQyqoSKCTEIlfpTpwwsfQK1D2zUgaWp -fSiQMsbtMA7nXPDSRC3M1CVCxToTCxUNMw2kEVQT+BjvUwyekRnEPauoyjjMkPEw81BHoFIdVUqg -gwUOGBTfR5hiLKYaSL6iREW4SFvxXT6fwkXh8fJpROGNxRZFRV8MteaLwycVoUzraOKd8IuEIpMH -Cxw0GOEZUg6sThxqQwul76gEG4zm0YAAwxcIUEgQBUEUhmEcnGk9FIAFWjIgeBQKCBIGBBI4YhED -UQcAIAAIEAAgIgAAAI1J1BIMEmKPrd/BZswg+ed6YfdPPRi7SVeFv1exbxpoJBtDEKibr/V4tDX0 -CoVmpmUEcEY2vD3RPN4eIGUsmiqHboS1udI++3VEwttg0MWHopJR4wMgIfSBxiQ177dEfvI+gJIF -WQUtxxpD48cVs/Xw2wVPd5rB3PRKgqORiFaIg+2W1yTB8v8eLjdB2ASU+yckUVFUuupQWz1K4MUw -Cy4s9o5ThwgOHEAHXpFWOioOLAT93oANXoDagMWc0ZJJMM+QHrChcBrnEuKQ07Sy1oeskqeOzpko -GYAS0okpORRw8GIw/FNAWeToE1gFbEUdIWBKohhYPgDz3TGwJHy6DovVzAOkMLgyg2pkwFt/LCyk -9y1Zyo3wTWugV6q7KTYRPLPIReIVosSHtq5LjbYdronguY695ltaGyCoE/32N8wUTbKN5QN2ebTB -K6kV6b1g3r75rH1dDDKY39jItWP3L0S3u/HxhNEmR6YfLi8fI+7pW6RjrWmvQsvJEI5gGEV+Qjok -Ue4ogcXhL5yX+h7ZI7PGDnod3aCxvidMNKDofaz5xEFGo//+jFdOTYC13p8jiIgEFjoNnlBD2IfK -KGZsVfJuu8tbutC61uxWfPr0f6fwYk7ZyvCoxYt/0GHyN5l4L4bju0GHdTGk9ZsntgZfh4FcouIC -uXy1yJIEjcs+WLAwv2Gpi/uNQi6XZkYWJa9hMaY4wag53jm2F8UP8fHKELtCC1xqoLJyhiOWZIrY -RYAs/jTIQjai6sIJpho3C7CG1IAQ3A+yPmBCunYLz9sYjNjCG+6X8MspWlqUSWDvgB/scStlkbTu -QNL/BnD/fnSvcOdOAX4cE2M/VuNK2A+CSEnUNrxCDrlrNdLFtijOU9rkBLVX5hwgST2ATRLHafl+ -OmsYM1FTNg6tPHtlCilaGuAcLIXBisvD0vcPokCUue74gtcOpl7Bn/BqCL3Q5z6QfWUujokT0+tx -DprAHo8npgcG8j7wvRSkHl1t91woM8yDgs20yDIr1/VNwWnQnKjkJfYQSmqpPfZC7CMULMn3DdBT -BWX7q1gVUvYVYv9cKUwMjFcSTte3yqe8gBbDfz2HNiWu7pyH4xi7whbova/TNBUrIniEnpBHwOFw -qxg7wWnBoCccRnmLXMzQNIeGAfwdPc24NikjMvdSmQgNmJqnKrhRBQSYwbcg7kX2TDk5Dmo9WK+n -Iw9RRI1X0yHM4d3jJHyXX7GhJRkTNjWwzhP90P8r3PtO7uveyJudNLSXoJlVQ/3/2EXY9mr3GFi1 -MRhKAX/C8XCSNVSPvKzpIVECltAE1QfIvLKAUVwcvNab/WMZiGe6op2Busu43E7pR9JQjVbtIyAn -6DFPyy77+u4AKV7+gUrMCP2x69HfHRLV1Uw9WOzS/0IQzPR3arUaElhRlAk5UIWMO1fXUzD6HQfu -gXI8yqNSrk1h7HemmYnd5XqVTgZWD5mN+yBnyGu91/AMFNglqwIv/N9NHkFhzHmUy19yGbgA/02R -MrkJ1GPYKlXQ8tNIMsO+uH0D+WweMwlsOu5D84g/TzIDD2KBJRhrh4ZptXhygFRDHjBKaQHCk/N6 -LW2TUwUbTiB3aWXW8QwGL7/9UnLbXmdgSIQ+12E0rviPmHiqxlSxfHVW5Eeixtkw5l9mvDWjCXjf -7zCwKYvxmq6zybHjuXibjnmgSu2jXXayrdIiGV6waYKBdzBD3YCgKmUZFG1bsBMWWHCcqWgjykM0 -S4lmUHvvbYjKS4EEMY8JYYW4gARZbtRdhCceLxs6Flg4/iwV7Ib6wXWok0kkMMlRJqNUB6L+oZJU -u/PkI8mBPEXgDVwbxnfEqwsa+kyTiiqsGfZ6NFQFA7bBI0DV7lSQwZhCVWA03Rm2Cig0YbhGU+xU -wXuCFdyn5r8NfOxfAxPbGcUNPDCgW0+X53xEXSybfwga8Zpe8yYoiGICnzQ53E9lLMZOwBoKq2pw -oMCLUE/Tn8Borc0UG/JXRw0SRT6MV4fpw5o/yvVaDG2x3tqJgu4GAVbCD3SvgWa4+MyDslQ1AexN -gdCLsxd3cUAdNMuQAH559+QG98AMLADUBzt0VogKx9aRhQfPlLsTRIAeAdcz+FcKmDcObXTgcKSM -cnRI/mLgGhNFkG474jl4HWDRkRK8FWmVXdoPVYNz+PKe+bQbaS0QTAVKbaWcKyNwD2pwDZHStzhW -D9N+8qQ+s2SFi0ffg81lJNM9NmvoPFFGwO01QxmWKlblYJNZg9jXDxrVTQjt2sdh0VPv6iG2jPS4 -gaTRsXaKYHPrBUWo3ONfM/PerpRbGE4sQlB1irLKyDmoPCDSRlt23cH7lXRzl4BD8DFP73ucToQl -KM/Kt2vInfYfheOpugdtI08rePzTekdQ0duO9cZzuW+fNuLVpa5sYQV1VVoKMeig245B78IfJQE7 -hSb4m0AJeF20jaKb1poFr3rdRT3NX9wZtI1a0UrhT8H/QYZyE4t20IJMBs6GQs3r6bZv+Ap4D3sd -VNdMEC01Ua/75ipHZ5uXFRFLSc4SDxO+XDIm4gSibS69IroSp+jCgT1El9nHat6MNxzg5J+ucY4M -sUBHRbpjtT4lfY7cs+SSe8vlAIH0JHV2Te4wEF8QGPWgmgKlTHAwIdqCMEB9XHXB56zLDJJ9PCkt -FW8u6M2RX95sDuIaoNVOP39O6ZAqvaKsHY8eSDj4i6nH7AtYBFpaJIydcH5anbIWpeHg+jbKDm2g -IOHutMVZC0u37Z3wffkWshzCxPG0/dpA5c/rbqh6NBMlqgJxyguR241pKzt7eaXjt2u2zdodRI00 -94VqecW8VJNaBrWWlYndOSmhd+2E3W+b5v222FMTIXuwqnEtNwtCIGRAkHv2Mii3Ui3oQNqBNNWe -EuPp1kIUZlJapJbSc3rtmIxyPKiQUahsRMjy2bJeIXLuPoPPJIchkN81ru4Zkh87NDuPpPXAr9IW -HiDKxaoyUP17X3br2Fu8REqFC5AIhgm5xKhzXyCLvaZBZRkdjF4NEaDBNwg0TCZXRhLqzI50DOVG -FAKlLcKjAVKkprzp4MJcCGB58RotVeoTRnF7JZYHqfs8Y49YSR8zcUTHg1whBSE6NvZ6q069xN1l -BdgZiPeUYaIW2vHGwsbrP8b7CS4rBqAnF9Eee1Xxj0LHpnkRhZK/8hwCPLgBK/hr32vtROYtduZI -XhJXJQafvirKTE86mOFc3buqH8bEjYPFJj//jftws8CN1q3Ek8Zq6nm4aKiIttcqmF4yhQK/xQMO -Ed8+7iYkU40wCsE8cU6UWAOXMXuoubDUK3OxERgZj3PlUlgaUCH4H+YFRLga6SRZDwW54mgEgNrK -hEcsJ+cmznGGsfvgQE5dNHDtGAgnYmSHL+yGs+Yb4vzTlDjKPcws3P4tc5J/Wvc0UO48fx+skW5h -Dk1je7xKa1RCI7C2D5E0fCQp6/GQ32W4cs1eH+EBDzvgHPBzttQVSHCk1JDX/J9l99aRpKEY43bk -kJ6wpeE0TqhWIficzGyhLy6NHLAAOSv56agA11F+tefDgmhBQA43EVs+nEVuh9RRSANcl/npP64y -R9hR72byIEqNjaNlHzH8p6ROf7TMhzAJPtUwnhR6tPJHeZMOzguSBJjEQRnHK1HjPsoivEQWPpWo -Fc7P41zPLp1nSG28h76UBkvsO0h3Zk893wlhq/qf3NuqY1HTKaMcYUE/bJwZ8qVs6HzcbfTut4r/ -dQDUM8IsiHaiuiBfwN/9K2gPG7hh3uSeCGGvA6vrAkTIpaFk/Femo9iTaneBvywC64NizHFwi8FF -yjF3yZd+550l/vnog/vpzg3fR3IQEfrCtgXIZb04CKDz2s/8Xxu0oappummVLCdGNS4UnmkQMB8I -7M2f3GE1qNePCQrr+f4b+PFKdX2lEJk+msGG7FV9pXP834+oGQZQahIGFgQy109CL2h2piIEt7f8 -/b/39uE4oMIdnI+4mlP5mNjvKp9mz7Z334GA86RwApPuy9n6YH8DfcKPbcnL9mZWhVJDc0T8B2ab -loELR2DrRvTFhBMhEc/GAW3JnboYBZQz+P8z+cFGiyK8wd0X4THpT4cCZW8ed2HrmkMa93gIZJQu -mUWb1I9ZTkQGBc2bleHcs/XxmhiqyknB+JhHjR3fqVgsLFBCQ+CbUD3FcQvvUCxnxiQPA8m77gBH -CLyZT87IzXGmhp0FHH4ntKX0cYF11xbLAqd5B1j5pnf3b/SfVbBS+e1lqOCG0I4bZA== - - - ZIA5FPpFpaZd3TEcLuUUG5RzS3Up33EK2tVIXW9g9H28fEtDF8dA+AfKOn6J2y7E98xEXpsIzTqP -wUMguh2ERKPXJipter1SPdbPnsjPggmchqkDkZfANXiAP6DRkvY9tGrBECadJh+lkrg9NzqFNcpW -+tZiaBEbfQ0ZRwO8oGD6+txk1hMkKCVsoaF3KAYZSECp+nBpgH2c+qZ0eeyR7r+E5+Xc5PdnBWO1 -nTExMpC1GW4wpjgJ3UGpuMvOPWYTRNyt7TaB38TL9/I+LqAUqieKb+O+W/WLCwmCkxj6bKf17fIB -+JGS9D5CxUx/C7nWRM7xfgmVJiGoeCQ1SNMGnCO1iXgALFgiI+jUKtWpvLXMxy4csjZ3zm0EFM3K -Kv7wggMlh7AG5wDBs7HGRxh5Ct52jrtBMFndPaImNuqTYIVcFRjqOWGIRFHrriHpYnSi/c5fb0BX -fxItDGF6NwEoLBKtzA/ysOJapAFI6S960UM5rokR+v0fUUKOHvwuzPc/65RtZYloaCTm6ORssqFX -SdSdjIYLEzuFdiJ7ia0Hwe0kVCG5wvGuOUGrlSV2o0uHhqMkWkksQe1wE/2eVZKuR5K9cNyYNULg -22pRMMtpsut4ts6eQtiHI3INUP0itM86lGKcHZ3JZFFyuwKAkofpnTEoUhhlRKEjC+EEsFj0DcV2 -uG23BEL/R+uiGjsrU1h8T64l0u289/CYswDAyIp12cItxALv9OOOo3CORUCh7gMVDheWKNDwKMXR -hlVcsKy/x86xBVKcNYzchNCgCKC+EpscWqxkgxcFpfamSuRncGAkgxUEsjZDg37i0VKsadHdcHmq -QJatMwQHKt4mjiK9HPWSqvdoefh2oXclpQs5X8nW1P7KCEzIsxk4gWficgN4SNSFsR84K6OPxv7A -RnxelRwHDf7wXIWKgw6jtse1o+fCP1UJxqyZxlpMA3Kzxxk+AvD7L4XDFnTf357ty+K6t5e7SFeD -dfp6VqCo5nR1Aa+M4uybcw8+X3HoRAO2Xfe0DMAGWFPKfAuUZlqqXKhqqOk2RAs3Wc86GThlGrnv -4pyoUbwlmPZdd1FY1yHa++yD382WHm/fejinpe94weeQB1hyH1D3JfbYgIWg7liBJgD4CdNUuVQO -g0ayTYSkSZwymaysbnMihP+Bv7wiTyRMY2aa+S/CZXsnfixTOhS+erC4YujeXADrdUkeHEtvH6NE -b0/jGwbPK7CMzbG/xNSoPrkXv7JvJgv1EhB/bqXSKBnMW6CC3l/Ur0I7LDk19kIO2lK9AlTuDBSg -pdvrVzUIl64RC0TjyZAtIOm6ILpJ0V7n2Y9uWLarGapBKhHuIr/MmuJRNzyLMthiJUriRk69836p -uVlwUxBGCAjD78nyQ1gIADpQR38EhOatzrsZ6Sdp+Z1T9HPUy27FhVdAb6Ne47VzbgQFp1HJLHT0 -T8i+vB36SO7p0fRoYlSd6vVncZXjzomIZce3AyhB3wXaIy/J++TNglhmwSd2/seLJVjM7UwE4uGQ -ZM5r5YoP6DvYi+wcVRvFyp2hJM+mpeK1V14R5EojbuF1inljE258HBj/gej/c5z5zzjKNVXN7WGG -wDU8cdEIepCFGuTHwBwR5dEw4TbvZBVdxy7RySRVvuwP/nGtDvhHBDlCAyL/sb3h6f9jXXUWat/g -Q32KAVC50fB/7fHCq1M++D8XwdGg3/WskEEatN6bkvHX9YJudCX43HQ+OH36J0GPYbABA+D7ifZn -ro0iUNJsC2Ubj6LVqaB0U4kL5R6zAYUnLf7zb/73wC4OwYFgcE6CuXgUjEMob/mJC2kycGKwRv/a -0nzVAusOf7BPH8KUEAnjA02YhOKiH4WhJi74OHFRcKyw/RL2vTc6gQaI/XuYuMCuhUEM4O8L+4XV -H8P+8S0y0LDc5LdNMG5i+UZwY5hTMcyRGKYoLlyWhKfDMAKZYdcPTVyU8Q7DNP3Exau3ZDj0fMOB -IEwp9zVFg2EXQBdmDHCdRb4Ho1BcUJ642GHkVP5uRnHhijPDVKyG9ckM0xiGMUiXnXTjg/UpLmIB -d5DFHIZJT9hSOHuwB8Iwi70MI58aFtaUnHbDAkFrGK+V1zCevDWMrAuQleFfwwJLUcfCDl1xoalb -Kt4qoyBaVs6boIzyGnYhWNtLPLmGGYIBGyYyHOao2DCYkeEwpDaLCwHPvpUg9S1uiwvCkfZw98K+ -uqyFcV5hiISbs8JGxoNBsaiLi5Q52VpYhHFR2Ovxzen/ZVyM9oWxs/he2DEFNeWboXGB0cKiMy7a -KrdPXtjSS5RmZMUwzlJDDJtgMwxEOsPc9RR7hvVHLcm42MtI40Izzrd6OqBhhhkXksxsWDxAw1Kp -SNC4iLdHwxiX3JF7pxDQMKFow7TT3oY1AGrYMtatT+rbH5NaZuSVsLDNzMphLrnDpCF+vOYvnX7Y -hxvEOB5i5saIqTwk5lklVu9MzEJ5YhxFsc8mdoqpuopJmNXAdfI+cBPlYhQHnOYVU3RjTPRrXAjM -MtbauAh+xgaCGts8NgazbqyuKAzHUDPHJASZNlz2M3ZoHtOsPLYc5zFpJl02Dqca63njAsMfy9+0 -NpBRIoQMzEC3DZcljzVyXGCNLGw6VicdyTygZO5XzBRIdgRrMkjTyfzuk4kwlDk4LuT6UdbVj1jy -lylb2ri4i8qgwSpz1LjQ5lPauNDYhm5cyANlDY4LNLQs31FjzzKrs4xys+zf1jKYvmWQ0GWjr+Rl -UvDL9ADk7bnYs2wAMxw32zgupvHHCbgbEpnObOI/zDAwzaQcFw6smkUzi9esGheL4+KdzYY/bnag -ejPNwZm56JLDUOXMjp6zCtOZc+MiudfZh7izygTPaGCvPBv49GzTuGcatpXr4D7T8fuZjOPC9KHl -ZCbQVOq46I3LeazOGC0FqUhGKshBE7RvXA7luBgKtBpOcVz0AFqwcVEE/kx14MYFrPd9lmc+8yHp -GMdF1r3PXCKJ5rMOk1oQE0IEEnarSQZkK7tnOZ97JvHyGb+7z5rX5ozlFjcuGuLPkAHWCqBdag4K -NIAvrXHRJmiZubmrW2uagcbFrqAVT3eTyLiI76coaO/PLcmMixU2AltftEBLVKDRwwRNZRw0lpNx -4SUKcglNA5AzLrRg8giti68LBCNENC6KaKyQj4EVodEGmRBaDYkHUmPQYpsiNXKpAq5xgWXQuO+L -QfOhcSGGlT5s6KhiGYVm0MQJ1skitAOv0GBYNLR8sCfIGdpBhuaYwB3ky/uzeMnQlkKMKWBovCZb -L1TOZ4DBb2gtXmjnB0PzZIxfaMm60KIvMO/QhPaxcTE9oRWZ0LivBhl+BIaWv5s+Ymhz6ARZhhaj -FNoXqdC8xkV8KCmeCqJU1QlqdEEisQwNTh6auyiiofKJBrGKtt+4OKQXTeMZzeO4EDNamRsXuhca -DVTZuKAkUmC0nwIXsBoXm8pptAOp0czGRVQabahgtOIVjcyJll8RjeUvM0dvXJiAMue/fzYaXREW -0eJ940KmiRaiJ6IlAySVMifsQebcxoVDrPF5TKFdT8Gs0/6wDC3XmrdDyxsXiWg3W1b7F5ehTWXj -YssvhtZbDKMbF1uGZhrNqEI2LpYVQwvUuCjGU4Z2t40LJmpchBhal/ZTUBNVxLGbmo6hBaHQmK1x -8eyE9u9BK1xBc5qNi/8nA22iaOAraBvhQTNrXPDvvBOaPyg0McbGBRey6rymU2h7qEKDfucdrdAG -VWg2WpxiOtXmrazQWKKh2RkXT+lusTOaGZp7wQqtuMu4CBsjsTBE54JuPaEK7SzGRYJfoUF6hqaS -cWF5aD3Zyh5aY7U+NNDm+KExb0NDPmMuxrhwIMK4cMaqZNk5ts5JQnt0hNY0FxeP2lQdRWhXi4uN -K7QH1XSamL64KC60d92phXYuLiZaXFTvLDT+V2jf4rLQLBcXAZ02bUNwAZYXF9teQ9O+De3jPzTd -urjIgZHkNrRkLTRIbWj1/NAsjkQzvLjQKFr7agouLdoOR0aLYFz0bTQNO5rN+dHkY0RaD2YkzSSa -NLqN0vQXF21WGg7jgmteSyt0/780ib0UGjINH4yLVprmcpvGMzmNvtppH+1pkP9pdhyhxhJR80Sj -try4OG+kJlGWmgPjArh3mtrzfGoSGtUs9lTrB6umMawmrbZarQFztY23V/PQJqwVSMba5aOyxk44 -1l6pwhqrHGs+L2tDjIsbnzUbALXmJONCJFsLeLcmzrhoi7gGpXHBba5tpK6Rm+4ayuY1c4SvxXt+ -jXVfwKbiCrb/EzZojYsq4Ejjgv5rTrjYMNzY9BkX5oFsDUk2y0rZ6HLLZiKZzZFxIW+zBYadTZ43 -46LGLmWpDBoX+8+WQd/OpumMiyThNlsqMi4UMttce8yWjHHRZ2x1TtSEgss62wZ+tkzGRT+0+TSk -TTPTxp5Q24ZVtfFY1saXBtTAiW3x02zjaW2jUMTrMjEuSKPbHsfbyJe+7XHgBjPDzY4rbrIZF+Vx -cwPKzRdVH47rG9/VO3S7ZFwsM90SXnWDy+sGqrMbZoW77fftBinezZ1xIRJ4a2VcAMVbclLeJtx5 -w8j0Jvf1Bhq4N0vBt3+Tb56Uvllo+7bFuLhFgm6H0LJY0H47srG/4Zj/Nzk6iXFxp2cAnDagGcYF -697fjPInOtxvAa3st04OGBcwQP25S3D8dk78Ns/6DX1x0bfN3zzYv80uLo4lwEk7Ly5UDbjHWOCQ -5wdOhHFRQ8EhYlwQ2dxFAKnvyu8cTgeHQXHBHcK1U1wgTDiCo8IR7cLxrBlunzccCTycJANxYxQX -t4o4jpM401NcSPCrl2sChACtWyjFvVRcRHnFhcQUF6gTB6/LE5flG+jdNz9xjzXBE3csLoI7cYGU -uGjFRQWdOC45bHEBe80Ul6K4i4snWn5Sok7c4qY4OE5eXIjs4qJ7xR1NcTz9ivszxeG0uKhD1MXF -BZCf4jZGeVNcshcXMdxPcakXxrhoQzFXXAX1tzj2a1sccaGAeC2Oon1xlo5xnyNJNDTuD93gGDdZ -aJyacxqicXkTT9zGMmE0s7g9Gufps9IaIaG5IDIuQMc4+yKemBUkZH/ou0BPMrcXt+DGOFZuR1BD -KYuLbmNc0OKiMLGLi92La7W46G6lLC66OCWBVpWmxUUZ/vbFBYsL3FRTTPzK7sV98haakITFhTZE -WlyY6+LCY5jq8x34FxebeP3xZ3ETuBan5/5IGRcYZ+zFJUzJomxdhoAYF60xzpPPOAuwcX7CcS5N -QJ1ixQP8ODwKQE4alzSusy7JdR6XHOSYwqsAykmyKId/p1zAVc4nwXIajAsHLfcjLudB9HLHH8yB -vrioiSse8QVdcYvn/fw+c5r8Fgbo1eKihKksLli5HLLigh053pkhgdu5nGOZOkdX3Tmvm+c0tA/w -bFceDdAJAqBL/s9x9/1zI06udxb0n8sAQEdxxHcXLeGcIXgy1ReHjmOJbv7p93OX9w== - - - XAfVxrkTiIuuMHP9232uRXdDH4uOoLfoUOmiA8GLLn4DwoASncSTOwmrUnFxSHT5HtGNRHQqD6aA -OcXFo/keoksVFz7InoHi4q2YhPneooDoRKfYK+vYOdjERWeKDnCTVBXlBZ5I60af7xaUEAXFBTVC -U1yYW348h/m5Xw3kVVy8FQo/V+1TXEBVccHA+J4jd88Bh3Mt7nNlGa640HPV5+Lvn4NYXHQOdKAE -aoXQceo9ZugE+xbGEdEdrKywZdGJXKOj7KOTO0c6Fiidt+JCz9ItXEznl5ouSnHBM5nTcfDp/Fio -Y7GOOg9d6u791FkKVccjVvefrg6J4qLesE4is85mtU596K0reK5DBmhtc26srkqKC9PdV891HQ3F -BWoJ8/Mi0HUUvAUo6KfVhEoEpLiArH/juY7pBHrpaslUXIyFkm6sQCJShUGn605E1zk4YnFxmC0u -jm9dx3qw1gWR9Jc3KU4Gs7gIe4snxLcuBnQd+TQsZQuq681iug5La/bxA1Ud2aUqLo4l1NoqZl4X -xVtUiY7igrKwiQu6qgNIXDCvQEJ+L1Hk1zHuFkC6i7iwIpcQF8Y9iwJxkelPr+OpXlfNZdHrgqQl -Jk+16l6IC2Vs6WaFEgviQvPh4uceLkodLgg95ILUYntcY12XUYl+BZ5V1/bhAui2d81ZSYge73Bh -ml33HC42W9c1kZtBOFzMMut17ZK9bqW7Dq8LEP+uc+5cergYBupwUZSHi1xaPlOuU364cMQOenZS -j32tA7UumLzQAw8XA8t1AaaCJvtwUfxxHWYLox4uYny4eK25bt9Kb7vXvd4HsLNBXABG2LEGsOWI -XdRYauw6A6xtvJ5heskPF3yfXUEBTke7hXxJoHaWWTuZFNvZsbaTCVNOB367+R7uMBAXxXEH+XBB -wHLXibhAf+54UyMunLcjxOkORbC87o72LWLwGUhcaLnJEhfqwV1t4gKi9C43gF5u76SmUodnSbTv -8Gj7HZf/O0oReCsUF9dH8JAUF1WDh6G4IGrotBeojUMlTyMk3Aqvi+IiZngPyMOruYiHAZi3lMwD -b6ATr8NXPJcI28RjJy5oRcT7Ji6mwjOhGeIVusGRJy6kRbwmigvkxGuZoHgZnXho+8TF84k3N3Hh -oXiNQOLBuEm8/UnxoMRFeRQPdUqrxTvQLZ4SfIRk61em4GnxBndw4kLIMV4+URPW340H6I7nyoA8 -CxF59wWOvX1ULl7ZrbwkFBdkJLa8dmwf8stj4yHzsBn1btE8qcSbZ20e+d8fJue5U1yEbOfVk4oD -GXtefwp64wtF7wCTqrhYY80UFyPbeQX49NQvUu8FpXpi5OoJorjAiEyi1p+4UG69nokLuOvllrho -TGBPhWLP8mTP99TExTVnb2DAWMRqvfUaJy6QufYYPMXbHhoVuAcHk3v0EtI9lnjaM1BcaLoHffn9 -0LRVL4u69t4Cymtv+96Y4sL89zYUweehuEglI3wVrobbET7Ka/j8FBd6xBeYxefGanwd+/g8PPIJ -5yifoElVHJf5/NvNt/HOx9H1AvoQSfRxIenzUFzIm75A+8SFPeqjKVh9EGp95QMPTFxYQjVswYmd -FkyIoX03He07Wv4tKgvjKd68Ie1r+hMv/y0o/S2+6N8i7E77NKjX5yv7WxjL3gjM3eRhtQSvfwt8 -ol7+6cj/LZJ6GlGQ9rUo32kfDZND7ZPktuiqfcj0jCh8YCCztShrX/a36E3Qv8WFGSP61b4cs/bJ -7rXPk1BsXwLSt2oQTIIzh/tCTv4vepm++t9C7d/CP073/SV9++6/RZWlPUPr7cOVSKW4WPq0AFwk -t/LwTvn2HZHUV/gufVGyQEY8U+vr5NsX6O2zk4IMAC2a2sufuYALfSdIEgnyjCGjY9PBAaJKB1zA -4++RT61c24gjrFEQdv32Tc6es8DF2Ybp7esHLhTxxrp90ia40H7bF70Vtw9k2yct4oKLCgm6hajt -a1ZwIZ/7XX/fbV9McIGp1tD2XZN4cEnT2z60tk8LjCsq25cZnCGAqgYewtqbu6j52/8TcobI88n2 -gb2XjCEAiBfU9g1IMsl6bN/BCbiEy0ESDRvb94Iv0Vh5DqUOW/Optm8WYbJ9IR2IGFw8BKaECNt3 -dGoh6yu59v0h2trH7LmEM4RFg0fAFlke4OCCW/uYJvcrvEZfiq191jLWihY3Q2C+9p3SWWXte6j2 -dXEzQrgIsdu6syZny5rhg4sZoMFFBACDC7gNLpi6g4uXH1zcqH2j07xqnxZrn5mvfZ/Q1j5S50e1 -76GULdJaR98l1fTg4ubaF2zPs/bx5hnCxYLUlkr6wUXYma+Oah8UfKsvSe0r5x1cENRz1T4+mnj+ -d6T2zfWDi65cWgwRqKYBQAcaqoMpCBeNPNcHF5UbXFi9eHRw0ShdxjR82iceXJgsh9zcO+qVp7ch -7RvpwGCMghntk1w0P5diHB1cwC1NpIssDEWKwYUr5lIo7bs5gjotuLCifeQgMEBNcKEF8Yrff0LB -RWY8BNp+JO2LjrU3TIKLoP/tpn0L+4EKLjLKrNq3tQomO46VFlzwq61CRAPb2sfSqRBWUhZ16do3 -npPZZJTBRVj7PK5/WnAxaCmRLnLQu/Yl8rO8MJeaSWZsHwm49kXTGzDE9sVMtu92FVzdmMt5t097 -83+h7ZuZE3XbVw+4fbuHuRTZ4GJW7jtEBVYCUHL/+NauD819NwwuRiLd4ML14tUXKDBl7hsspfuM -gwuhD7pv4MHF2cFFtu9dg4uqyU/3ZV4UTBlcmIzR4KJUdN/RhJpvcMFhh8WW7pu4vA81Di7+Iy5Q -sdbgAsKF9+EJBxehygzXOzW44NySr1h8k/gWGpIjPVp5X1N9envQwYUVO7kn96SReF+faXBBGC4E -Sp/9kOR9ZLvO+yBNmBtc7CwGFxCby/sUvcGFLxhcKBdcxKxTUGMy7zvbDC6YFfbffza4CARmcMH1 -cCNQLxgXcYMLTu9DBhdoITS4cL5wmvfJARhcLL0PqDFu874sBRck6X2FtcVsmMnEvO+MkuBC0PsW -1fM+oG9eb0ES71ttogvBhcMH79NzJLhooog14n3Fw/u8HAoMgosWvftii4LywAUxvg9YV9Td+xo/ -MSD2Ph343veqFbjwRlvJgsDF1NRoqwK+T9e9DyOwgO8bab5vEGwfFpUS4ef7FvB9moB3XODCSADb -h4AMXICS5l9SgYtQT2fAQBpQZwMXaeI6cHG8fJ+MNkhGsYGLMhy4qPV9BUji8qEFGRLBRfSBC6rj -FQeUQZoNXGTDAxeMFd/DZ+Uj3zcHfR+OggwYY/m+AaS+DynfZ0fg50YSt6m/542B3x/BBX4TXKAk -+JVJ08NiUCvCdAUXzLvg4kjwW9piBj/PjvFGIPjN4TODi4QFF/ii4CdaBRcal+DHYEaU4EIa+24K -LhDYwJcO/NZ9wUXoSjBcwUV9nqwEF0Xgt1g8jxFcNCSe4MLV8MCPuQQ/VVXws02TEyQwRnBxZid9 -dy8VXDDULpsjlRNcxChn/XD2v1BwcTTBxaoaSAHKN/gpGYILAkce/J5EO0AEt8EPscoV/EhDcIFh -5jMUhD1w0UIDFxYEP7r7Wfvry6pvb9zgF4cHv74GP3iiHaS+gx+fKXDBzUX4iQYutOsPfq/bgQst -hhFcsP5bcArg4o/wu3tSRcKvd4/83yLYAMCFzS4l2AloKMLPAQe4WDv4oYALtaRZMPiJa00FP24U -J4PfYcBFVDcBF0fmtglcnMKtJ6DAhZyhPOjiwe/AVvAbpYGLCwUuhtzfwC9WBC6wIihwAfsx/H5Z -+KE/eMDwO286nN9d+AGnEoIL32MSXAzWr+EXiOCCWR1+VHz40TIrh1/XD1xIGa86ucBF2PADFv+M -bftEk9tsf5SDwAVn8eP6CQIofqwBFyEVcNFd8Qvb99jiF/es2YCLsy9+A9QVkJ9gBS4kBC5UA7QB -Fyy6SLS2aj9+QuCCGn57/AIGXBCTTCWRL5HdFosacOFfifBtyAUuktbNBi7Sth+/bE44S73KmV5W -fZogv45O/CtDEoZqIOfeFh+/r/4XAo/8DNEebFPt1e0sEelgfAJlwEUo+z8LuPjCgAu0ELho/Ul+ -46Xkx4TJz8yT302oyY+p2w8lvzLHClw0ErjYMeBCUrN+Lf9JBFxgTyBXW5i6LQjJj88GFiQK1JKf -1GS894Ymv4VaqO7eyS+GUVNcLsN9P8CFovwmeMrP3Sq/N05fXCIErwFcdJqwyu8jwEVc+QWq/Dra -fwtEWQ0pv+dp2ZdMuK94BDrM/bkwkPSNMlouU27Rpf8WnhGAiyttE0thyi9zKbwCXGAnKCEBXEgJ -cDFSUeXXZcd6NVd+vc8xARdl9qQBF09bfnGVyLD8vpcsVn6THXAh/AHBBVwgUebAraj8+CuACwFm -SSu/JOhN+QH0eGn8t6Be/HMPld/D/C/OMQAXuL/y45dQ+XntvwWqifOFIlJ+5LYFKOj7b2HTOAdw -YXfclstFNga4EO5AIq2cwIQKRqv8JrwJ9wEXfiFwca/8clt6/njWOnsOuICxEs2vuR4LYslwdebX -HymdtRMmCQS4mJao67ewzO/nthiS8N8Cd38L6f0W3QhNSOdFhNNv0SRyA2AmfgsW21O9b1EBkTG/ -si5QViL8Fv8ojLytxWRbQiFkfgfbYpTk9i30RdW3YNG3gPbsWcT8vCVWkA7ml2t4Q5P2LUYaCNl1 -LIm+BdLLDzvf4lu+BYAR5mfmW/xZacYxz8sPQmH+or7FisIa6q3Lz9K3eFLf4sRQXtm+BWneVn4P -Tn2LiWerAQS2voU6yy/AlgB/0b7FZOODy+/VtyDLvgW4Lb8sonsLl1/kvgVxBlKymEsVJBT2LX65 -pozwJkOQ0AaKl99/30Jcfp1ioYGWpJYfh32LTOS3KMH6LR4sP1ICIdTl9+9tMRZSvN9CWFa42/wt -oOpv0Yw4CenmQcLERSX63+IgArhgLj+w/d+CWQVwEV9+Hf8tQNv9zIJ/1SfM727+LbocZwYBXn7E -/S0yiifRsOFMxv+/RT7B/HIyJfOT/i3m9LcglIFifpUuPwl/C/xaL7+YI3P5Xehvke0BEImNpoN/ -C6FDWXOLffmtAOb3lkpYdP5vAScDL788B3BhuMX5sU7U8vsyBM/5SRriBub3ybInv1O3BSPAhRQA -LhLOjEL/W+zg34Lz+EF/C03+FjJLHtnxo/W3aCHet+bfIusSUkUYEA/coJH8b2EPgAvhu+S/xUgP -AC68LxgwDAkmca0tpA+T3/lvsSz5Nfr9W9zqxPtbNJXLkGbyg2XkuGWw7imrQp9aD5vwE9hm+DHy -1U7urkdg9ncM3xofFob8NzaQWwaLaUTQB/I4bhma3KgFdomGoVIBwptkIBZYTGyheqPgfQPpll6n -PP1b2Gpc3MjcTTaGm7/9SsT+LRA8/VCMfws5PpWh1Ju4cX3awpmVW/1b6F4nJQCfBA== - - - Bbr8kf9W+rcAEQMUuhoHGJfFjb+F/var9kp/iyVCGUrO2N+IwdgRZRf4W3y/1c8r/ha/Y+JM6qXT -zpXEc80hpqAq/1T+EH5KHKjvbIXH38LrBEUx8mi3nxwQKINjVSBVp2IB4VEeLpaIEItt0MumtgW/ -H+8yc6HIEiL+LdAuNFHxb0ElMtC0te/+bhTswsomTyjUvwUspVcHGbhSirC0WiBDunllKJfWCFK6 -qXoTvrSqWX0W/Ho2y7/FprVocQptGowWAg/WolZDM4Mz/xYxX+34OqjevuMMeEVOFulYXNBK8LcY -xhgUBi2vKv4W+VvwBB5+69IBQSlAhzZTUPwtumByE/SSswrNjVEah9nf4mXlc5OQk/b7Wyx4zJvE -c1oY6HUndv+hAhXAZgksSaUHuFBfF9wtqG9BdIuBOIAx8iWkRFf/FhG2Vy0kh97Pszgqk38LE26/ -TGFCvjjZd8PtH7gU8Rk6kgvRMBUD406PUcnUsqr9W7ytLy8K1BVOUtp9+ezfwr7ixExymWJGWZ78 -W1BHS11/i8TgzB7Ixh/iW8i5Sp6ZfwtB2RTZd07ttaL9W2h8stYbGfF7WV4JmsKOTJPsKUx++PZv -8WxLKk1Kewv8tyh3w2BOtE3tJsCEpIZBowZYm8AlDKGhpdpe9DR4EcEPJ/dK3yWJ5ScBCLAM+99i -6IjgVsYlpzD8VT+MkPS/hRmGWyUFSkOiD4SetGHowyQBlgqb9AhwUfp8v/kDbf0oKQMHuDCb3Afn -vpW+YFoD8qxDH21xee2HFPY0MONsgIu167njBQM9OMPfNm6Lo6wSoKT8V4UZ4MJSiYNebFhZxF6Q -auB7BrgQDjMV2FTxcCpEgRbgArl6/zDv9HAxpeV8xPgFPS3N+AS4WGZiuezUB49UwMCdJD4CZBaZ -s3MDaQYYlF2jYUl9K45ggKHjjT7ejhI09TlR9Qhi8VMuwEVstaXxrGASIR8R4OJDUg34LIojd0vS -yhTzHB9LKaqGEAzFB2wBFyG4jWuISQpOt0W/VNjVho/2TeFMptltVi8v7TIuI2LvfuuYUqmAi0b5 -pVKdjmrVCLgw3QeFw0LQOtwTcNFCl3xFoI+VuFvR/3uc8EYBFyvVVR+ln/FyaRYBNjGVgIuBAS9o -NFIx1+dowIXTHrk/jBVr34CLY30FANVZTW3ca0o1vz5gjIUkVAhc8I+83xK0OTsAgQsdRxJeKpt6 -L3Bttt6QdWwGvR7bm9irIQzDchY4SwrTlNeYksBPoLAN7zeO1UtRDCsWUAovtBfm82GwAkrq0IKt -0kBtEsAzkAu+XlgSExcJIR4T7B1U28CFsoe6C+8XIj/lQsTARQX6on+2CoPy6qkIiW8DF/RqIQiC -C9YWe4JbmbmJX4fgYtXxamQ+84IwEFyshw1mjBjztoTkBbzZK749V2CzSPYqOS6SoEMUXCgCHxhq -mB2CEVRwwaSRClZr0F8Ljlee1tvSzKDgwiP6L3HLtkgFF1KhJHVBJbWCNxazoO48RDrjR01wwYV5 -KwlRnCxFq11gH+kpRGNTIZD8CC76DBthb011RJCKcdgFelfIKve4hslxuEqCFxHBhcA0NJxQOjMK -BBcH1T5wFwD/xjRJH8HFdj3PvSiXMXTIqiAQXGhvuPUvk1+DgPUfwQXxQXuVRjx6UC1dUHfrTEbd -7kme6Pd6b0ZwYcfswmShMRnP78SWLghMnFCIbEdzfjaqtBsBFkO80mrRwbWIcPEfKC/k/+l1OZV9 -LLF0AUbOlzGCi4mQVerBjuFAq7F3CC7qXhorE1jDiRxPBBcTefHUj74vXSjDFY95jXiXKbAThihP -wYWW0ubvh+QPp776v51hggtgvWmyyGRJJ//r1e8SXNADIXUpCU5YFbiCC+wLD3a65DO2rgSn4IIB -2uPBNpIpuGhLLko4WoOCC5w7W7jpIlFwob4qHtZZAboSDV26cGMeqGZAiHL7govl47qT7rm8B8MA -ELt0AVm6w5CSMSPEuyhM5myXLkzKxh+j4OGgztWMChnlgovefRGlDq4F5RBNYMFFkobf4RaA/BR9 -U7904fjDlxnuwfJVQXTBBTm8LPzQJNx7tVYLLk671/BTet0EIJB0u2Dh/rh9ZnFROklkc2sCtSKq -4G11z9K4cm3BBULSsKbjFAWcoIPnSKf4Cy6wUYEIR9ryJB2R5U3cZyy4MBSHKvPet84VtRFcY3KI -ly7oqC0uwPtlRSjew8rKqvQuXQh+5sFlmwL8K0K7QMpLF6ZPAlJuS3LufvLQpQvdLqdDbBuiDNpe -cMGCSXIrgU1q5A/RSxcAH8L0PXeQsS8gLLggmsjkVdMlnAIA+WGQD0cSxbuMYnDpwvIUGQ9S2FqI -BTQuXZDU8Fs0fALU8KPCzyuNli786MU27Z+QW0sXbFimXvEvuMgdkluZRri7n7XgYtAwAt+FiJvN -vspDWwYXmqbpRHKYbjS4QIK7FIGADS6QQ6EezwqDfNNbBrR04TaPogcoDmAux25wof0aHVH1SwvK -JYZQBYZisHTBR9wII3IRtuQqBVQ9tgIsqgYX5VEQ3Hkv06k3VA0uQDKfEKFcJ2amojS48NbAkRsS -E/FjGdBkvyLY15UuVPjjTDk0uCAYp0u7x4XF/UoXOBy5opM8zt2QMrKvkWC/jgpP3yr5PbiIZT2T -vjMIPD4vXYBVhl1kpNSEF5fbYMmqGD6glA76bFl/CHT2FsVc4JaTGrFJblFYOLigvhMUngmyyCs0 -+HfTLl1AYzPKPTQAIJBoOcXu4KKO3ODW9LNOfOlCnsmoWRWtuBdCBxcs8uJBJeyJ4jYMOCt5D/cc -iBL7CxlcQGmX5aIsr1pnymlfulCeJSD96Z0t3IKLVdG4YbpwnUtmAk9rcIFt3OBzYgcXh5AyDXxf -o1WP5FX8DoavF1CqpgveuUaJgCB7ix4lR7Tl4II28JMO8dwciZ3OpunCiHMHOTPxwsEFJQdVormK -asD8pmyNHVxM2ydlX/0G2+/DmImdyCmyS2J3cBFDNuFcQ4VBFmIS0kYCBI1/LjCj79N06NYn7vDn -AuIzxs/xmh4Ascv2mqo9uNBZms6FwrIVsk9KenCRNLDURcZQS88J3ypCpRmSDuesyjZUTucCp8hn -bJoBPGW5LA4uhoXOE2PrqHQuPLsZyCBb9M9EH610LvTCY0RQ7rID2QYXhj0c9I0QlBA3uEDQ3SYJ -wc8aDW9w8Zat4ER6OqClc6FxIx+Fo0XSL1g0uAApjwiHfiaURAcXVjWO+J+K3MmXvBm8SiyUnAsF -ZXFfn0BhtrPk4GJE1MvCaLVcpcWg40XOBa6HbgV1mp0ZdEREGH8HF6z80wVvVaGMgwswMlLoe4Vq -bU7OhbFTM/KfEN0tkYaVuHVsf54FKULkKdNiJOz380XXG8KF1kcT/pogXAQI4dHm3lNxRAMP4YLl -Xf/WMnVKaRFr4wZtWWxXozRikk0O5DSd7CfxwUU2UmYpVpCxUUp4TFeOuCd9cAGKrlAVpCBycBEt -RYhRUsSAetxhzoW+RgY7UNirKzwHFyDmJKXvaS+bIGrPT+FtPomwsL0TgaLBhXbU2HAGjoUiAhpc -9A7SaNUJssf6KJxz4VF0Qu3OF/GNZawGVZlNAmh0LoBnwgJ5TkqwyHvYow4uFvRATK5VMLITDi7o -mqMEG3ys5AduBxfOTAg9SOHgYsPucC2AXQcXO9jdEXJEFJkAuWM6F67cZbRKIV8G6DnuQ/AeNrho -QjboHlTw+kaRSAUnweXVgs6Ftv+xKeow84YwN7hwPtBfU39EZDi9ZqYGcfQKjMLj12npQvn4uXnu -/pXiFhS2wzJtqlCIzgUG8SxQdl0BeQo1F0YwLdJB50Lx7rbURTQEMs+/wUX8FUw5fLwLZPhPqHNU -N7gQxMIdd2uLgg0uZIYybVexiZ6hYY0bXCBwryRNeIx95GCDCy24WAQvNbhoHT7AsTnngmINdcb7 -8U/nDBFs+4TWC58dBt0wSoMLdijU7S8sTTzOSMMMQsk7YWITLS4Qv0YT7CmXTXELdGNq0TXqIH92 -zgVatjYlIzucT7+dUbDHOST4At+x7pQPtHMuUJxK4ooT5nbOhRw+Jtb528ZlBSq4QNYxIA/bqPp6 -A+dcQCn21xajWqWw6I/jjYGNu6k5FzxTBY61FVygEWQoRMUNUH7y218KLiT8mcA/xkQXhSpHcAG+ -DYnpzanKX1U05wLECjvgh0xApPxzLihxIpouYaDYCS6WndmFO7eCV6qZlL/9J2WCqxDKnC7+QnkV -whJcUNBJU3YXmUBxN6STamw654J/knQR47q5NwhPbLQZDRBcQMjPCHCaN64zrD8Y0/pgDQoXJtMN -okzGF0mkBbhYVCCj+oKl5MlHf0JAEMGFE2lBW5LlfEpNcEEZERDOI7fY5LnAbs0vElwg5YsSoI8t -SSHGYERwoBNyzYeXaGCEpVwluFiNNf0HGXOmmKHO7yx3mjvUluBizzqnqap5+NDzCJUQS4n9c+/l -imfSouBCvUyBBplzS8EYFVyQl1RAnBRlPo9YyFZwwZ5K/Pa30jO+bkvDA6OOayu4gFjj0Tej3qUq -uLi3UZ2HMxGnAB3VtsBYVhYJVYquq4VVq9jV6fqpi5YKkz6kVv0Wj9YW0BYMfNbVscqmmAZaW0Bj -n7KmENcLLugf875p2GWsF1ykiU2oZUxYLeth2EDXvsSCi3g836DNXFeR89mFBRcjbiLEuUX0WQO2 -8FYjVE1XraxvqHSMDs694EIDg9dNzdSbkC244JJRsxyiVtmlTiBDNrDY5r214KKs9J/FLbgYDvQD -T+KGkfusvxHVQvdGKCvjanRm5Ff0c1jc0+0UXDBfGqtX+QRDYyt7nBEHZGBwEd5X4xtSJeNGC5xX -Vyolegd4EpVE2VoEy+JjcLGhGbDJUwyevKe5xuYpg4vFsp/nEs8EZ6sF03zZ07BPa7QngoO2TBlc -7HZq/BV5dz3bcIWl7jJ/09q8ooovgtbP8K6IUsYipMWoAmlYpEqMwQUCWM/pmk3G/gfLLi/c7hlc -jEOiFVt3rR5jQMoFUbVCTc3xBNoGP0DmYR5FG1KzRb/sEtkyZIMUjLnXpgwuJo/yKM5U86Z6xXFy -BhdC5sZxdWAd4uL1EVjUoMGzn8EFEAVykqaRSUjBhWJh7NhZBwcvOKdIpN7AKPvR4yqDCxvws1Vq -lrw6zvYoZqi4lQZycsiPepXuD4MLBPjtSqfJ4MKRSa3EN3PBhXHYf+8oX1hH71JGUcmUtzFUKC8u -ONNW/wp4xR1yK1usoV9BprLdQwS3pQR24WYXXCxsAXd79QXQ6C240Aw9gJe7C8F6wYVWgmO3gIaF -jz0YL7iIv2lDdMnyrnK8AudHbx4B0fR4zHcFdHkqc8GDS+e672tXaI4GD4Hx34i0AtfqAe7Q9orO -0T00a0jkcNkXXAxxdMPgQvrITN8Xq89Vz2twQQMGWqsqCyN9X865woW1qPrE0rChXQ== - - - mVxBV4DRPpIpM7FtcEHkSA05d2vosLReMs0geEwQyjQHRoMLNsoYSFcdBEJ74i+OIpwoQNrv4MIS -4dpUZRtc8FBne00hayrG+o+UwOCC/u9RSVD0xm/q1Bg4CWuW9tlncIG6vQ1VRokA01um0dTADgkH -L9Aj1AKE1taCC60G/YM+LZCKu9OMW+I8aS24UEyE1ktZjeOCC4Apj76ClMJM9XYGF5olzc8Zd5Uw -g4s+foR9Mo1y8Sq0jaaJXUfmbfCUQDwnksvzQLXbiNJP2WpwoWXRy6pUjWLTmMFVAHbmhUUMJVW/ -wYUgEROvD9qsjongKlQIWRIOJMXGYI1ucLGnXw/h5dyDq+B+U6eRCa6CGHsFrzHTeTNCuAr1yPQ7 -jwYX8ixAJEOWQ2c+2wYXcZO8p/chfLnlKPsYmyGWqAIJV0GhGkrU4joeOTK4iLZo6u7q50kaEBlc -IL7Kl1AQCPP7DC56qUN8dW7ShmHF7azC1DCJinKATbdXPCG2cBXab0G9xQY0hLugSoIOX8YYrsIV -fJBPWHujCoerQFw/QUbWumWjqgp/DW9wwX1FiFyUjQys52CDizXWMho0aK2YswYAkLHBxZlyuufr -tm9HtJTpoQs6uAp1T22WOVroavhpaXBBuEr03gWvl4qN8a3CUnWEWSrzH+iQIKxo0KXbDS6MbzFg -2cT5b+KwbybpvR14CbC5DfRMGbsnJjpzaUTjWjImbAwujAz9dTTHDo0ZVmqEFvStwhCuz9DNtT4X -awwulFrI9aPIKr5GBhfyKAwSoV9XjVdbWTC4oFkfWWkt2ZVrswqHZYpQZWgR/RWPhekUXrEKAz7v -oHUTrpI8ibbPqs3w0GIV6I8YaT8LBA0uuoc/cGn0CJIS1ms0XAZ0FgnxYhWSuWQpmylWAaJjyIcZ -XMAqR1FnXPcCVQYXSG1ZSkfI4CKPvLDUkugb9nVVuAB2gmVsdFZ6OW18zYcOxjEMLlYt7uY/XWxW -7S24KHHLPYoLLkxA3f8oLva0JDLArgpDP54qk1LYncHFahh33SE/GVQEyoKLJjQngLb6IR8ELaAv -q0Ih7IVkQ+CDNwsumMM4SnMvbyc7r7feygUXDF3WsC/BtBWGqYK/J6lw4rJkmUcV7IglhEUnQ2AV -G5CejRhCX8o4kloSHlWgJfiGHZMKwagWXJQwH13BPl6mmQUG9+k2+x5VsL2e/ZdYGd8CsYaqeQqB -dsCMOAYXgjraxcDc9bEZXOBeUy6C93h+iPkelEvnkXpp1wUX+oCmcI+8OLMZ2VQY8amwghHGdx1m -TIUi5Pbu916hS3YUeIBw6Foq9GIWQmWO81EqUPzY28tbVdw5hErPGVzQDEsGTveGtQOqJYLzerod -qXDlxjJHwvNRhmyYDC7ykWsWPr9G4suAazpSoZUMA3XGyrqESPKwvB/B4AI59nAABORIBfEDkvBb -a2F7Cy4eMcxPlQK2r4wFFyvPiU0hQ61I7kiFIqkreKc7hhIadRZcTJG3OzeV65OAze246pwY0Xag -ksVIcOHEDcJ9X5gCcqSCoscxSqirLTCXdDIHRyqMcaeiIsJs952koKA0i6BHKuiSrx0ytOa7Vpup -Br4jFVxDBn/yq9lAcFF5TMWpT0kZj1RYugXURWjgJWAaIbiQWIXZVbx6WaWNiTtwQcVHBbe5dYOf -85u74eoeNSrcWm0Q5yrSynDgAsDEikOOvylDAuaBi2SBC1svNpAQKvLTBy7CJywM/j/WdYx61RgO -XJjaaZb7l3qLqAwHY/Fk1uOBix7GOMCyPNw2alRIFEwewUWl6Ih0plhRo4KIRd9+QxGDvUYFogJJ -WCb09kIOXGxT75OnbEWVr/jAhbdYCjZApbkPJaXWqLAngnNihRBPO3CRcEdnjr43EMmLyuPAhaXw -yxYGAL6p9cAFskFozgh/zRYOPg0nKb+xHyKkCVy/7uTAxSI/ixu+JMsGLKFGhSVzktfWLhaWgQsN -g1VdeRQXuMh1JMHicDUqcKM2Ii0qvs2NW/onNSpcLMzp3XkP/aNouyx/pXM/9CK4YORhxsnXqDAu -NbVLeuxUjNWo0I23bxGN86ZSTnjARUttvdnAphIDLtbdc8yxpffaqFA4fv3Q6ImWHKUBrt7AK9id -FRM2KrTndNMm+VdBcujXE7igt00kMgIXCKymTMtxfEvyaTjaqACFE7KOBkvwrRgbFX5Po1a2bVQQ -a3iSI7x+90RMAhcaBaz6ACo0lhmBi3VMbKMfrz64UaHhUkA0C1fGFicncBGK2tmMclH1mbjY4s70 -4mWS6TYq1Al3nhrfGIkJXDAn94S7oWjEVbA+7RKJ36jgZ5N57jACF5vfKNxLHls8AZTARbLEMAFE -xweePlAhN1EgHhHxzQA8AA/AA/AAPAAPwAPwiDrQD/IH+AF+gLOcdCfdSXfSnXQdQ7eILWKL2CKA -f+Af+Af+gQejo6Ojo6Ojo6Ojo6NL2I+jKAAAAAAAAASWM4E53Dh+ipOf4rlf9durZmqfR06fV4/7 -OEkxQSOGB0uIym/LgJWCePESQ2XERL9J7GihYwYmxslriBYrPmBKbpy8bJCwXrxOJCBPyE1XwEws -sIADeKygJDEDJggWKjZUYjvQrPiggmUHmJOX0cd1ww8QQgcBcNCAIaLqoRK7EVPNeKFWPjuLjueP -I73oEC9YfFJSRsTTYIlg/Pulz3ekkMT23O20FRGvgxN4ACZlEq2myp+3YJFmTh8UUR/7d1oMaREU -sagddiF0bMGriT6zXDXFoi1SoSFgSFJwmmS/W4ABBRBAB4wgWrAU8YJlRcskgtu140bx+/L5uSQ9 -KmmjpNUS8lmsRDVMVDCkXuXfTXDrUc3XXstICSHAjhgwSFo5WGI6WERatEwoHpz0qiWZvUcQtJ4+ -WkxWtEo0SFg7rIiQ6HPqTVUxa3LVGJRoddMwX9cBs0IEDZohZsj4sEKlRczEol8Si6aA+B9iqEih -Gu1IccGIoWCUrHCoxFL23KSitNfdItmnKW6WKxq2YdIa0ekUpo9JX8fyGHa/pfd04TDLyCfp6xB9 -NvFvmNOf8u8q+eXNUfa2lKuqIP02QlQwWicXkUfFo4/gs0hOv+jXVcOjVuWhUjJDpNXCVWrxKr2Q -PClb9t/VRkkVXotgdvSqNGAoF6sRiicPyetWHZfg1VfLevRieu2q4xlViMZJSwYlUvHgKb2d4t8v -Jk9Kp0lGnhsqIy+hvkZIqYZICQfJyUbIaQXUh9y1BTscJWdUIZFdNvFlGhMfE8JnVqGRf3fptshF -SzIa46RlBIwUKSA+xsjqBexEstsh/A1yVw97hlo0JaQX4aLFR0tJTCpk8slTrEIxqpArn0k++Y8W -MT9SvDyAR40lYMjgCFmpIHlUelu0orLHhdjzpSQawWcbr1OL08/S3y6XBZlkHn55CJ5cNcWrNfLz -IzrtokXCYdJyCfEonltF1KPoeDfPWxRXrfM5SZc/11HSihF9THL6JJ9R7vgHPRG87qGFTIspNIP6 -iXDB0oMlROYEgu31SI/36plyWq+Wsf3mSRAFpytWIRoVqEXkgd2zByXv8RP57DKuFEmPr2CRYoSo -Vv6dFbctGm7RsF+OHrNUEYlKcPvKaxgeq2bWVb8mdw2p54qQVA2WkRcpIjB/h+l0jAp0Q6V1I6W1 -YkU64W0W0M6yXxUsEREqWGC4Ti0i38THS/Ba5a49KX5UVS9J+eNad0zDErmI/BQmUAyPYXhcglOQ -WqJklgSvJP7tQvK4kDwxp58GFWr5+VsE7zH0nKVfkjjolVo1F8Eb9EJneWpVEWr+5XiLXquGQ6up -klmVjy6DApmA+BZvq3A6R80X7O4yDLnlkpuaXhX1sq7Zfc1uCm+3ePZV3NKfJqLPO1ZITDx+bHZF -6rcEj1P42vSqpphV1XEMp1WY/hWctmI1xbdLdrt1z7965qX4cVv9LEd02gaLNAPKY0gemF67cPoE -ryt5DdHplZFnR0tJD5USmNBv0t8r+iXBa6hN+3M0xWtqZl84fALaXbmMEtJHPPaI5xb5c9Mdo3CZ -xlWSQYFM+lvkjmG1y7Jf0Hr+aNmb4ypmUXNL4t8h+Cw6S88YktKT9bKeMqRDD1XPJZ6cZeQp8fXS -u4pYlOSqoBXFx1HuuPrrUjAbs+EY0r8idYrZNapVSeaocxkpNU2wenLRFSoQEC1aZpi0aFgimNSH -Zcu8Wc7h93KZLoahtOxJD+WmK1akFSoTrJY/J7mTYU6GHrUMqWfslkd0egWzK5h9ze8oNf1yhLnN -5TbdJFNyHGLPT0qCUvM/yX0ESTw5TGpkMvp/d+XTUsSTt5B82A2n/PnKR0/5c5fdtpD6FzDViG6j -4FUnw1XchtjwKm5JrKqLXrxtRK0ZwtMoHt0l5I/oc8yGUTCLgtkTvOJlKHrVmF6fZJf0qqzZPcnv -E7t+0HMnx9nrXi3TRRDmtHfLZo/rTfIGvV38Riuaetf743bRi9UyS8ijAupToEQrIc+/qnY52iT4 -Uc1b/PhzDK3nyC2f4HJLf6/wd2k98ZBL6W0aMRYqhklwucWTr/T2Ck+H0K4KXkctSnLT1tzmYucx -Q5cNx3Q6RLdP7qqTYX6SOWqaWtXVpq03ZfnoKJ8d5cOT7HbKVf0SHLWpCtdpJfQ5vWxqblEy+7pj -kZxGwSzqZT0nuZrdFyEsEy2jZLdlwylUoBcUKHXHoFc10a+Kdk18fESfVzNb8uMruR2pJz+GqDZV -tY6/oiOXbb3tCPyO0DBsfkvqOXJZXk1tUjTVMgx+rcfRYmiHoOccaW9zs40Ndqm4zUfvk5auG1fZ -+KhdR2ipWlGTeu6g14feSE7TwE4pfHbt9civs2x6tK5/WeYfaHedP4p0p6EbFPoouuS5pKY+Ke5k -SHvbDXK4p/mk+DHJEFqGzrKkpqM0DaEpDX64OM5gKHueDX5wt+1k+EFJ/OtOK+qiYVTc8qaYkyCf -lj1KhlSTxJ6xW27RLmk1R2rpm2MNdrSnsVnHc44u+g2xY08p3t92f1lfgiQWDaWnyV1btRy765GK -suD2xKY7Gepj+FFT+Ovk0MNF0GOWpBUdqeZINT2lWHcc/nW5CMad1pfiLX6yt8lc9pfihwxzsPNJ -MWSWJBRNtSrJPZ/o9auOT3Hbo2SPkvj47Wa4m6FKbkeqaVpPFIt6zDDVoi/+nbLb/TmW+HgKbj/o -OEJHF6yK0G5IzLJaVHSOOvmZ4PWF9EHJ7uldRWhZUlHSmorcdYyeRSdZWs0QXEb58C8iT8leq95V -hJYoeCXp7VTsftLTdcsjN1XNbypuf7QMoeZfiqc2FdnvWhx7c0y5asuPu1CFVv6dRcOf9VTBakhO -n95VpK9bTB8VzKba9FOO+Me5Gefdtrjz7s9TvaxIfo/g9ogtg9DzDj8b7NwtG0FQkJvNyemcnE0+ -gj3pic6xhJanVsVDL+Y0NuuEXHcvx/rzTi87Uk89BOuuq70uBK9/NV23Ld20EhzzJg== - - - eotjT5Zx1qk5ruY4lNMpORy489QsW7OMJ0VfDP8x5EGwzTK2w5k7Lu46tJP9JvoxT14UPSP5ahrK -2aAdTtrhvJz2alnNbac0Xb1t6BzvTutBz+64+wN5kkSzTuxtd9jhnvYpw89Z5uI3d5qbZa6WzV4n -c1r+dT4Z7qJ3e1vIJEHkOELPEMvSoGiDX0+Co9R0te0/ivf3xV33blo+hrcYvtx2cldSavoiiHvc -rHVE6omC2VTc1uGnZp2TA0JvWci7vmAWdI5ttom1LOa2t9tkkAOtZYtHH6ljDxnqIfc5yRGb6mMI -bxmcdWhO+5QiC15bMYtyVZ8MPaVIexubbWhwG7VqKEU/5QiD3RSr+qVog51OirUIpuI3JgRygUKp -XjeEmh/TNK3paUVftHyK4c+armBX9bKnVhWppyg1US/7Sc29FGOPkz/vJsU/LXXR80sxhJaj1MRD -jydDfwRFZgjz0Vf6mySnVzC7elUTi4rWM2SvV3UMs+WS3V69bA9+dcfRXvdunLnZnJ2OPZIe8/RH -sRfDnyT9Ucy9DtayEgTEG8AJbgADSDPOzGm4x+Edl4PeHn45CM6eB3vdydmYG5CW20rO5t22eONo -z+PHce1kIwhIyeHc4wluOB0ISOx1pLLkw/D+Pj0Uyw1n0+EEZwA6mB2NL0s9BPPPg7nt3GzcTnZ3 -HtrJ1s4DoWsujjK36d/3ZhrbyUoQkBEExYgCBYkCBcvhyBtnd5tnBEFkuHfc3nV3150bzrjZyF8n -cxu6OaGSWxT8/qeZi5/L6ZggIGmHg4OfDoK119kel4Odim1Tqcp/3tx17bbFHLeHYB2CvQj+Y8iL -oQ1+K2fzbhr9fey2tdwme939dSWzdLErDBPphWn0m6PLaWnWcbltF0MROX7GMGSSobPkxVDNOuEG -JNyg6M/x1Kofc/xLUQc9TymK1FMXQZYDwnJQ1J0GMscQWorWlOSyH5PEuy3WOugGRbtx7DGUQRDU -rjJYqxz0XK7zcp3/NPdxFKlpyF2vbNoux5LbgtBTlJ4hc0S5rEmGSTAMSlN9FD+oiWpXj0nm4meD -3Qxy8+fVYWiHYf15sNbBwc9jkh6TvEHP/jp4y+AtU8ksi3ZJrqqPoKlVUW0KMkd9DO0Q/KSm6V1F -Knp7Xd1xtNe1mmaCgIAnUMDdp4ckyuHAm+YRxz4M9a+ju83cbEiQzappc7e9WgfdnGA7m34UT2ua -Ylc+FM9OR9W0VdNIDifT4cSqaa2muVo2d93K6aiczsnhpBmX6XCCo4MO92mi4Pu8cWmHQ3/fyel4 -KEA6FCBmJ1M1rdxsVi2Du07lcNQNJ+VwQhCQdeti7zs7nVXLRKoqc17byUoUKEwQEDbLzg3nBAE5 -Nxx0s6G77f66OOvAHU7b4aScTd11OwjOG2duTqRQmUT4vjdL2tveLFM5HbXTkTlO7XTQjAN32+x1 -P2mWztMjhv9pglT1/r78A9dtsz1u/zia22jPc7PM/r7fPG0wJDscEAQFq3VM6AkaRZb8wuwYlJY6 -Kd4hKHcdu3Fpp4ODn0lNSygqb1na4ZgdDppx6PBTtQ6rdXpSlDkN5jKPKX7O0SdF0UmKTpIfwRrs -+NMUvS8/jrTWwTsu1rKYy9wtczvuV9GTXWczDuxpH7Qkqe9Tyu5iiItgHH7s14XYFR/F2ON48ROx -ZxM+d9Fz/X1qxpE97j/NuOvUjAN3WU6CuRjWH+hqmsrZsJ1OvHExx8leJ3ec/Xn399mg95+mXopz -2Mlf15vlLn64x9GeN39fPoZ7OcpfF4KgUDmcNsvYLEM3m5fz4u5TMy3TQQdys7E/D96yHfRWcMuK -YRGKekgy/zp566AcFGkHJOW2+sf1X5d/3y2W9mienew7AaLpcCLNtJPDSTkgdueZICAlCMinwwlx -A/KBoDCz7F9Zz5m6mnaDoEhV97CMt87VODTTNh1OhJvNum1rlsEc52pcq3Fv17UbV3ayDwTEzDh/ -qrpbN38g6ER9cbQ7D+V0PB1OfDqcSDscNsvSTkfuupnj4CxjORt622QtqztPzTgke46C47jbYE5z -s6zcbMbNZgRBoWodfAT9cmS1rNWy/yxDa0pqXZPb6iEob9rccTfotVon7WxCK8uTqD6aHhO9wfAe -ydjzbhDUQ1H2OJiTiEULNYLXOynantdqWcjhmB3OHoK+GM6b9pfkPopwt5UcEHFzgtyAvNyGateY -01quY9LPNCGPC3ZVa+qH39xpb7fl5hmD4tnh4F9ndxy9ZXW33aBHYldTu9pfV3ZQhNxU5L51caS7 -rtWyWwTzkow/UA5DstNpO62knn858mK4j+HsdXC3qRonzTgiCAqTA3KH3h2CKYcTbxrddXHXwdu2 -cjrlZmNmnJjjchC0vQ7WOmzWSTscNeP8p0l/XtrZuFt2i+ItkjC3pRnn7Tb7C19tazWt/kCZ686O -JqIAGUFAzk4H5jiY49aMs4vhC45Dp5mDH6x13A5InHHobtNBT940HfRUaop/3rtxLue1G+d2tJaT -hSdOlCAgKIcTnjjRnTjxbhxILEsoGirPj2jW3TeiQDF7nmlVfzFEOZtys0mzDM0yVttarTs7GggC -Elrf3VxpUFyzLORwxqyjchzLabMYlprGr2xK3uPcFmcbmtvqz8tB0EOSbpaFKFCgmWZ/odvJ6m37 -Q7F0piNUhTlO9rZ3y9LOxnOeNhiym1Z/oB6Cegj2IYh3nLlBYXY2HhXtU3T+uhfsquR2bI5FqJlm -G7GDguUy/0Rf7rtH8jXnfnnmYxlzHNvZqJxNLX4+XlZ2aHH5y1IPPZJZgkrSQ5IpVh2R4pxxYk4b -2Xt321itU4Pdf5aots3D8Aa9d8viT4tBEmNRgvWfZ0pH1GrqISh7m6p1Uq3zfh0uhrGW/eLXglcW -/JZW9S9F0VqGWnQ/yVgES61zetkU247QlCdJV9tgr4M/jw4/PPzijgOlpwhe62K4ahyzA5JqnXz8 -QmcJOkuX0+Bug83vKU1dbTs3IG3WeTVN7rj681QOZ+1scvDDvw8PwXfTYE1LOZs2y2KOa7eN1bS1 -06m/jkSOX20jQVCYmw2raSUIyB6OvzjmXyhv3NrRQBQoQhQn7A9MtbEuiiRVfdH0H4Y++O0g6BHF -EsUJtbPRwe/NOjPH0Z4Xb5y64XgDGAB44gTK4ZicTjYAHTQddFA7nf4T8c7ziCTeeW2Hs3Y6N/j9 -ZTl33apltNfZnwc6TVSJppsOiAJE3HB6M4W/8O081uv+aZqTJG+SLpeRHBCys8HJkZSqoNMciWGV -eWatab1p9JbBGefVMlbTTA4nPIEi1jQ9DPVwrLsO5rRW68RcFnMZu2ngBqTtujsU1w4n1jI+DHsx -9JAiDn52+L3dVn/dyBzDYPcvR5nT6I8ruenpXeGOGzsb3CRD6epmG9rp0F/nh1/qNEXqqZ/ifpJ3 -+IVQ04SiPQjSnGZ3mu5tebft4LeTJNrh4GJYWlOPSeYh+G4ZLn4suP1N0hS3u1miVlUln0do+C/H -+uNAp5hywzA6LXccvGkqFhWZ39rj/DJc2W0Yp1AIDdshuHKa+20l+f4pUzbrxNwmQs+W257a9kfR -dstaThOx6gh+36D3OUeY3NL4uwodt1a0F79V29xlKLLrP5quWWcfw1ccj8zz9jqY007Oxt02T1nK -2uZ2MpXDgbmtlKa+ONJdt2ZZ2um4mhZzXO114AkdRJATaaczgoCMIChQ5hwUkrK2tZmGcjjsts2e -V3ug/Y2rpoXWtVXb8sbFWQZnmcxtJMiJNevMXsd2OPgHtpl2cjblBkQEQXFyOGmnA4Kg6AxgANyJ -E2umyVunZhqqfV1wPELNnxT7UdTFcM2ys8Ohuy4HwT4ESeX5apyabXAX0l9ocjJ341zu6yHJG/Q+ -5diPIO1xs8fZX9dqWgx+JDQdlST/cfzXkUzyM4a3t7VZx9xsTk4H5XDOTofduLjj/pPkxQ8Hufrj -yg6nAwExs0zduBAEZPY6z0j+o5ha0VBZ0l8He1wNeiG03MfwDr/78z6l+HpX1Ira4ed+HV6KthiW -HM7rdTw59iD4IUUeHfNT/LCnXorttq1ZtmaduNP8MTyhJgo1exBUOx1ys7nFsC/Hdsvuj/uMYUx2 -VXz80HnKosd+mz6CoHP8yTAHPb8MT+53RV+z0K5OhnspitAyhJJsxvFPscSWV3QbxaqhdfWoaQxy -opXNw3HNOu7W0UEP/7j76+4QhD1OBrucFD2nyZNii2+3CPkuuD0iQ0/o8eNng91+kiKXtUVxBr+R -qqredxdDmctor4s9L/Y6fBTVTuZm2sxx9/eJSjP3vjfL1A5H7XTWrFNuQFaNQ3uc3HHmhtMNYAAk -CApS6rId7d02U7reIDh3nLxtKWdjcjggCAgcijEYkhuQXgRBJRl33LnZnJuNudmYG5CQyroeaHY6 -8ue93JZm2dnpnJ3NumWx59EeeG46HQoUeDiW1tUvR9vj6I6Tua7VtBkM6++jOQ7etJeN4+H4bt3b -gWknI0E2q6bdIDh7XYlNXfb7lJq4x9ncRnNbu2nptrUcl2acvxRXaNlkmrnX3d3WjyL+gbQHjpuN -mWWotsHfV38daUVZ9Dtq1Zbjyk6H5HBEDmfkcPayXLMOzHViRj3KfZfYFbSmNNjVIqhyGh2C/Tja -X0dKTZSKtlw3D8NVy0DOJsw4/8rOILhqWczTu/b8pM9J7HknR5Gz+TYgImfTdtrcbTWn3dxGb5qr -ZfHn1eHnehuacUbq+YSeQyTYYlGRSYbS8oOWLddhuU7cbfXnyd72QcWR+5UR6TAiz2uOeTJ8tw4N -dj9a8iXIkllQeoLUlDdJlstcTpO9Dua22eNgjRNzHNB6rmrak579SYJU1GOWPlqS8PWrnncyHLGp -aEVRcBtS0Vv8cDJ8vS7+PBoEcRH0z5Elsyf6LlLXWxTtUVQzTeV02qyzcjbxpuVhqIuiPo7upqUd -DrlBAXtcL4Jth9Nq2h2G+AeWHM642aSZ1mpcyeG8m4aDHsgsQ+PYbtwHsskGoAPJ4aRa2GOi4QaE -3TJ402ivo70u7XREEBCSs3G1rNUy0Qv/7luHoMxprqapWdZqWqppaZax29arqIiOi9RUF0faA9mN -+1CgGDcb2OtY9Z2P5GqeSaz7n6rnVGfva7es3KCwP88nR3bj/Cu6kufT6tYfSG42JaczbkBkbuNB -sA6/nAxB6cmLYLxlamejdjoyCJZZ9oGAgChO0KhMPcjAtG475ra54/QwzEOw9ro8BE8OiE1+S9xw -wZLr+evor2O1zi2GMQjSYgh33D2Gq3ruzfHVOipn026aXpIu3KbFEQQBkcdPAkYUgfKXdnPs0ZFH -SVn8YtD7U7PEriRnA4Pcq5ZHqEp/nU6KuAiyWyaDnYp1dc8bnaBLb8Pg1kR+VafZah3Z4/hx/MsT -5WxiWKcKFBGEDCpFWs+eBHcS9JgiCa/7qel6ndGL2uA3f1upRVk+O2yOUSv7l2Uehg== - - - 8Ka17pgIFzIkHtBNijop+ibZk6PHNEfrupflC24/YFBOMXyLn16K89fVIjiHIB2GKGfzq6fMSRRC -2/xI0t9XiyBekngYytq2cjjnBiTErrxp2iH4chvK4bSa9mpZP4qlFfWQ4sltfbN0tYwEAXE9cC7P -NyRDTidFyyR7zougvWknhyOCgJAbEFTLapAsORnraTZMREZq6mpZm3XWTiftZGmnY242atb5W/cu -TzXL/HG8v2/muB4M3W0jORuSA8Kf5QoIdIdgm3XWrNNu2sttNgiG0jQnSxkEUW/Mkya8dW5HWzsd -Owxt0NNDcO62leuw9Jv0xvQHwl13djqw570cp3I45Qbk1Dq06N3iJzpL1qru4NdmnZPDETcgIAoU -IYoTHtQ0we89ivs4rtT1F8VZ09INCMoBQTkgNMixbPkFP7wcQep5hx8Ngqq2lR3OB4KiFsPcJGGP -G63qS55BpylKUb4kQxCQDgSFC24tQl4mN07Bqo2QFAxXCrSiuyn2pVh/HweCYndPFy5VP5p26LVk -mAW/uxjyooh7X8vh8KInMwLxokhCy5fbglBzF8P78+BNEzcnYL4dBAsVLztP6esZUB+b39J6htCy -Bjmc9Eb0WaSmvymuIHl8wFYl9Awqy/vr5G5rtc5JXn3AnJT4HxTshuB1aFX7stxJEg9FdttQrsOD -jErqhU1sGvPxR+pJg92qddSsY25QfFo0hcrUm2hOiqAUzUexDkHb++JMUzmctMMpvbAsiqmW0eA3 -f54ujrw47qLIIgLpI0l/3ux19efdYXiTp0yeo8Z1m81ICITy+dReJ3OZu3VaLYO3Dc06Z5aBIChy -MmziBg0VHMPb5mbZ2umMm02IAkW52ahZJoNfum1n1vnLsva8tcN5s2zNOOuWpVrH7Tb9LGWws79O -5jZ9FHHwuz1vB0NW0+Yv5EuT5HDcbas3zu68EIryo1h3XMxtceit8BwnTZfrcJJMs4zdNjXLRhQo -0g4H/rha/GSQA5klKk1tr0M3IGvWgTvu3ba0s3m7ze02t+P+8/zFEe5w3k5H1jTb82yvw8OvFkGT -y+TQy8fQ/jx3285ORnI2I2dzj6PKcWbGMbFsiZ17SlIXwdnrVE1zvS43xRhe52OIck0bLBILE6kv -xRnc4C5zuU7aZSa7Rfn4sfeF1nOF30Vm+v6+mdtgLWs7HNrjSm8rdxyqVUfs+j9LudtajRNvGQ1u -q3lN8XOQeqp47pTcDp3kDXL86K3eVGWnZUD8BzX7MkwR6mM8PE+COMj543diURBKilizxIObYBdW -yyF4rZfk23Eup8XdBntcHHYxve7JkQWzMr6+j2Dsae6Wwd1Wgx6PkqTYdb0utJqndq1Br90y2evq -z4u7De40Hj1lMVw5jTdJuOvirpM7zt00ESyr3CeLIuqFQ2gKc9234XSbzcfZpNzWp2kdhqzWEbHq -Xo7z16mdDojiBLkBSTscDym24pg3y1wU3SwzQUDKzYbVNl0cYY5jN03kbDgUJ+BNSzmccgNyg6Au -hiDU/E+T3TKSAyJ/XEj8kk705bhWy9qMM3Ob3HV9adahuKFA4XIcH47zxqkbkFfrwFqmi2Dpffl0 -PTvZ63UzCKpatmqZu22tln3O0ifHO/zir+PJsf4+VctSDkibdWaPmzuO7XBQzqbVsvnr6s9jtezc -gMTbpnudH4Y8CMrctmYd2ONo0Hu57exwclHMRXL2vrTTOTsdDwQFyQGhPY4XSfvzelL8TzMFv6RV -FaWoX4ppBlKDW0tmUW8re5pfip9zHKnlSP2u8LaJVdGMk5Pg6nX5UWS1jqcc+RDEwe/lMlbrwJ0W -s+US/KY97g67EEqSxOwK7a7YMMtVZXDjzdAvxxrsPukoUrcwTL9Mj6NW9BZBO+xKclrkpvUSXMFr -Cj6v+PAsV+3NcDdDOux2U9TLcOUy2NNKrVqS2yZ3LTrJfQRfrrOTn+pVZ5Bjye6JXpdcFtSyO3rW -pah22q+SqpelPc4OvdPbqtwXxbaecpS/ju221+NsEWQzrdU0+vP0UQw3nY4OJ0LOJva6Net0KE7E -YgiC3RT88uF4cjjfCR3ODkiOEpUS/rfBb/48eNNeTVs7nTXjnJzNumk0+LVZp+109O/DO2/lcEYQ -FCMICpKzebftY5rvtp0cTv1599f1YniDH7tpZmdTfx7LbVdt+3YbT4qgs+zHkf4+VtPOTqdDceLt -PJLK5h+Ifx4Pgvv38SB4e93Z4XwgKGYQ/KAsLpIf0yShKD+KNLfVnOYZxdGqfs4z3rY268jcFnvc -mnVor/uYZO51/wfW3CaCnCA3ICZnY25ATs7G1bJfJEvn+VrVEZcNleS7beNm825b/YFttr3ZZocf -KDVLbIqHYLnZ1OH3qutRqtId52acNtvYn4ePIC5+9/jNYGeHncqew+Q4hJYfUwSh4o+OvTmCUrPk -rq/H9SZJEsMeEay7bfa4G/T8kyyx6T6CMZeNTjGVkqh0DHnVExpeuasden456iNYg50qdk3p+XpX -kdktseNW3IpS0rSWPvmR6HQNF6okpz1nGEpFFKyWXFUVuyD15E/S9TRU3MZouqSmvgjeXdaLn+gk -V63Kwu/9KJrgdsgs15+3r2lIhvv13NFxtJot2L3B73XLL6LQaHVzcaS9zj9H1LuiWrW0qp/zrD3P -J8tcFDcddAg5HFoEe3NcNU7LbaRVBZ0m7XUmyGbcgJScjbt1SOmqh+MNfiDU3MFw5rhW09ROx922 -l9tYLUM5G5bDwb3PzTK200k5nJKzMTebttPBv+/VtjXLcPDLw2/1up6ypL9uJ0URiqrcVoSi9Nd9 -TJKUnjjoyd3Gj+IeivG2zRwnb5usaXsYwttGd9ztdTnoyR2XZpyX2+gPbLXNH8WfHG+vizfN7jaU -qqLgOmptPWUJOk9PSc6fd3Y4acZxtwzOOj3H5V1Xf55firW3sRkn5YDUn+eLZN11InNcqafIHPcw -tL8v3rY0y0wO5948U4qGwC6oHGVuUzNOb46x2/aY6NrhzN12f10JRUcpSn+cy2Xyx+Uj6JcjvGV7 -GaqE+pgNl+TzDNbJBK/7Upy/jsSqobPsRxB0kizYdckvaU1FKvqfpV+KJFP0gJxKb8dIlVh2nOSm -P6eph979dfoImlyWF0OWu8L4+UuPm+B06CR9EtxDzkSnWaBIozZF1WuMENSMWAqGqkTz8YDMsg69 -+ONUQp7/TGnQC6WlSQ2TxK4KPaPUswl+159XclnT675aRzW7Kx/P665PcStaUZF68uYYcxrNqFi+ -2npQFCbDMEofFR6+xaoh1OxJkRdDvyRTLbvH8FfR/yR7MlSzTR2G+zi2WWZyNq626aMIQs2PSf7l -KHscLoKu+BWh6F+W/jjOHfdumtrhpB2O2uGkm42aZeMGhM0yN9PYLHs1rea4WNPaLGs1zdU0mdtA -5+mTZA16H5P8yTF0lp+yrL/OH0UPKb5cNnvcKU1PabqD38rhpCAgbqdTe9642aBZJ+62nhzt72uz -rM06rqbB2xZvWtvh2J9Xfx/b4eSfd1LX0ImK0NS0sj5Jyp7HchuqZSQHRM04uud9xpGEnqSz9Iwg -L3p96PEhqIOhmnFK7trC7y+XJZ1mDn6xpqlapmpZrG0wt4lM8kOKv1n65Ihq09Ka2mDYapkugjno -6eDHi6EugiH1VLmqCC1tsFu1zUloX6LGDBG8bsmtzIdPyetUq4ZQ84OaOQmq5NcFFCK5b5W7olo1 -5bYmdg2ZZP5x+bfReKVirFqv+CWpZZbLolQUFrsv+S2tae11ItRErSkpLWGzi2pVVJu6YtYlsyU3 -1U/RBQkLATpuqEiZUvw8RsefcgSh5gctW3Q8e95uiif8TfPpQ942pZ4m1PxNsga9EKuK2rb2OBhQ -n8L3KBj207I3xc9JilSzhMdhe5+nayqOX/Ychs9h7vohQ54E9xH8TVIXRXTLVoxKofNkOyBrBrJu -HZ0kYc8LQVCQnA0Ohv44jk4TxaopNvWUYj+GfznC22Z/3/2BaoeDckBsENxJEt42EwRFCIKi5HBu -MIQ1Lta2HhRrjmM5nJXDOTmbkrOZvW6kpjtJwl13WtVPSZbS0+WyH5O8xa/lOmi2scGv/rpdBD8l -aXvevG1ulqGcjYfihNnZqFpn9jj78+Jtg7Us1rKVs2mzzrtps9etmpZ2OjLH0RyngyHIPEPn6SHJ -t9vSLDM7nVTT3E2Tuw0HPc8YplY0JHZJYjeETXuPczsctAMyclmV6/bgl3dcrHX+cdTF7w6/ddNC -DkhPhv4o4p9ndx3ucbjH7WP4n6YuhvCW2V8nStNU26JYFVSKITLcx+/tOi4PnYAcP2C17aphGlGv -QuSnAPUktvw5SxnkYkwjHignJTjOclPXy7be1kOGuMfZ3oZ/G0t+Pai6j2LrXUNe1iR2T2TXtaag -Ubw/bxfFueNGLOry8Vd43eSmW+9aYs+7BPMz9JEiJQI/FEGS7yrZZc3wKE1PqzpCzzz8Vm2zm2JJ -j7fg9y9FUXqa1NSkoqDUvMOPBr1dBFuYRCk4vkcRtKavehaRYRWLfk6yFsX2+35VRbVsT4qeEQSV -IQxmUWsqSk+9JNnwQzkcudNAZrh6WRX/58my3GzEDQja6ahZZm5Aaq9rybDJPYe0KagU5457N03e -MjfjnJ0NSp5btQ0yT7zrQOT4KUeUmu6eR6JAsWbZm2knCEgeirw40t53h2H9dXO3tdwGh+B/nvCm -8eKXSk0PGdLfRn+cPoag08xFkKSiOvjR3DZzmrxptbeVVBQHPVbLRpATdNfF2/ZmHbbDkbfNJ0kc -BNNOh800eOPgjTs3HJnr9DD8mCQvirYI1uDXl+Nfkm/GcTNOzGWvmCWxbVz8TKoZg9Ot9CyRYogE -+dGzQS4XP58ccfDTQTDmtlbrvJwme1tfjnj4+SVZYlcX7LbouIq/d72uu2VoZ6OXo8mF4W6Tv+1H -SRenkA+R18uvj2A0RcMmWI3hdEle/+gYYr8p+vyS3RKLmt5VxKoe1PSYJT+GIrRErenLZU/oqXuc -zGnw19GgR3+c3G38CP6kCCrJFbvyYehy2cp1UvR7wvOecgShZQpeXbSbglfRaq7st5XXrVuWMYVg -9w13nS6CItT8TVGUlp+UFLVpLoIsOka9L0+SMKe9XPaXoapVRSjKlyMNdp8VdfFymVp4H8N8/PYS -9E2SBr/Y69hNgzutH0Ne/D4k6I/fKm5HdJsEr9wJHVp4vKIUis2yCEU/Jekhx1Ga7qLoclzJ2eBi -iI+jLoKlEvTFbydFDznWWufNNqqWedS1P8/SypZME/e83OtAYygiyRoM120LQVCIKFDY3kd3Xatl -+hjuovibpW+WuBiiWWfkoPhRskXHYW87KkVSSfYhyI/hDX4f07S9Dua6JDC8UtGWir5c9i/F2ePO -DgflcEwQEJXTSTmctMMZqerJfenOi7lt7WQpp8Nm2tx5dgjS4GeHIB1+8efhITh3mw== - - - ukHhah2622BxW1LTlcv+dESpYVM5jkbwF736y2RP20eQH8VWy8oNCMxxuRj+pAhrmbtlrNbJxZC0 -qv0oisxRlZKjU2zFrMleu2Y4F8U67E7+fUUKxeLhX5hEKjl9YstWzbJqV0W/vmriaKiCNdIRotrB -MpXYc2+G9/j56pmT4+txOimKyvIfRZJZesIPVI48Kc6g13IamnFo0MvHMB/Bjzny4HdaTZM7Jqnl -H0VzUnTZc4xXK8SeU65qUs3Rav6sybrhlH83wfAMhieXRdnxmAyb0tIfPZ8Ef3NUxfAtiuy22SXZ -m2XLbsP0uqcs140jf5uKhm+QkPTluZflCXZV85uHn9xt75a9nWZ/Xg6C8LbJ3WZqURgR36IEYsHt -dkIHGSojDOCxo0TfS2qKUtcqt31S03oYpp0O2unIn9dynU6Gq/b0kGD9eXbHyRkH97rZ61puW7UM -D8Pa607OZh/JEXqKTNMGxZLTCUFQmJxN3XWvppUbEFwEVWy7cl1Smt7fF4KcIDkocjKMzfFJRT0i -+Ivghxw/ZqmLoQ1+8KaxWLalriARHJFiKj1DpbiL37tp5QYk7XBaTTs3HJTDKcl1FN3fQ7H2Onjb -aO+bOe/dttjrajHUy1L+PFXL4G6jv472ODz87I8zqWbIHOeP86Djpwx98fNHsCc/UEqCUvM3STz8 -1KyDdjiz59XgR3tc2tm8nDaDXi6Gd/jJXsePIGotU6tJ89lnmEIx2ZW9jT/BGbHVjxOUUYqaVlPV -mi6+7cLkUeHpFMzO44enY42TmIqSKMbXXbH7n+NOgh/19M1yBr3Y49qsA3PaLn68+JFS0y9HG/Tm -r5O/bgY9GvTq0NPFr4SWL3rt4udhsJuPYV6KLiWQDy4tfTnmpEdSSVjMjtwxy5+7aFgvx7freLME -pWjoLFNqiUpLl6uGyPCPoiy3sdw2imX+PFOtimJTfQzlj7vHL7SiLZrGQzEFx655BqGozG22t31M -0aSaH3LEP7DduNjjTjALu+VUu/Jj2H7eq89fTKZSy6JYtXSeIXIUmWUOgmun826a3HVn1rnDD5Sa -s9fF3KaHoD+OH3K8vc4GPdnj1i0bNyBnp0OHostxs+f15rmXpi2KrKaxWQflgKAcEJnLdPDjSRHV -uqV1rUHP/jw9BHPxc7fM/rq/JHHwA53mKEV5UeTFMAe/udvgrSM6SdJJntbTlJ45+N3gd39f7XUo -Z/NumihN81HERzCl70cra4cgvG2114FQE9WypFWFvS7+utPbrmS4Dr+402Aus0EuZIond92y759S -/M9StKY/WpLU84OSuejdYGd/nIccdVFkOc2jnn2K2uUoiyG7aXC34SLoQcuQetZiJ1pLmNzCePKT -vVbx7RgRP3LXdtjho/ejIon9rgjtLr1NotP+asIh17PobYq7KdahN2pR1tya5DfqdXVRjDuODr/e -FPHQazXOj4oh+ExaUZJq/uY4e10egqCTVLXoP4on9kTJ7ZBZZr0tT4qj2EXVs/xxuxmSWpP1qrC5 -fdFv6V151HS9z9Q0dNPs0HO9a0ktUS2aclMW/bJumvS2vqrWYuibZW+OeinSoVeHnU6GIjY1tesq -hv2znD2PH8fQWaLa1ISWvwh6SvJH0Y+KetLTHkM69HqTBMAqZQC13d866cvkkDGR+F6TNXmTPE3S -LVJImrRJF9yWaZYBwFJIUmpExYyLHSpM8wBSKSRNtuwAbqjIgUNmxK9nDMCVy7ruknl9t3e57vmd -xHHb7u19l219t3Wc3+991/F+13cS7/Nbrmk+13Gctu2c3wcgo+/5ftP1jlzXXSo8meP8Lus1v+O9 -vsfkrtP1zu8xbv3eaVq2d37ne53XB2Ci77m+1/qu73uMy/oM2d+1Lef8LhOLoec3zYPMZXoAoxSS -5vP85u385ve6tu3blmmyJnGex/c+v3Wbx20+l2kyp+17t/f8lkkG4ML3PR6ADPne+Z3M6X2PB/Ai -cZIH+YKsSRZZD2CUQuJ2LdO6juP6buM1Tuc3ru83j+96n+89vss0qfP53dMDGJkxAJdtu/S9tncy -3+Ve3/eazCETQtLMOMHwq1E6AJMBrBhAibb7vM/rXNf7vb/lGq/zvc/5fu93vM9xnqbpW9/1vM7p -m5Z7+uZ5mb57Xsbtnu9l3N7req973bXXey5jx2s8p3WZ12Wd5/Vbl21Z1+/c5m9b1mXYNV3S9d2W -dV3XbVde6/e997uM33he13md53V943Vt1zL0nt7xXO5pl07vem7rtc7jumzbPY/ndn3LuN3r+Y3z -e87jJu4AVgygtOt7be9yXud5LaOm61rW6/vGa3znbR7nczy38/q+ZVvmbRNZ7/ot83ne5/nN9/mu -97Re73WvyzXO27Jt63qv0zou5zrO6zqP0/puy7lO673e23Jf53qv9/eu87qu63Jf07Ku6z1ey7qu -67q+57Te87ku8zevl3h9x/md73W97/W9122Z3vu+73ea3uvd5uWdv2O5t3dd7u1dd9n8buO0fN87 -f++9zuN7X9d5bfP8Xtsyf98739O1vN+7vuM7n+/4zvN8vvc3L+e8vu98vsv6ru/7vuvybu+7zO89 -3+97ze/9zut3zec9z9d9zdc8X/e2ffN3jsu8zu91Xcu9zvd3Ke9pue9L/c7vurzzeE/LPL/b9m7v -9c3zPc/zMt3jNy3TOM3TvV3bPd/XdN/zMt7fem/fut7rvZz3eY/jvIzjvc3zPN/3/B3v/M33ss7T -u6zzPc/L+M3jdI/z8s3zfI7jcm7XvM3vuFzzOU3Xcs3fOZ/ved/X/Y7j+r7XtKzvuC7n+Z7b9Y3j -t4zje77f+K7nMr7vOb3zd2zvNi33un7T/B3nui7rvW7Lu67bvazrOr7L+67zd7zLus7fca7jMq7n -u4zjOq7zd8zrua3XOt/ncp7Tek7r/B3z/C7jvK7nOy7nem7nOV3neZ7nd57nOJ7bt53XuFznuK7L -dZ3neo7bdU7nOp3nPL7vMo+XbNze8R3XcVqXdfqWcx3Hcx3P7xzPc1rOcznHc/3mcRrvd/m28dvG -c/u28bu3ZRu3bdym8XyXcRrHdznvb13G8z6Xc/3e5VzHdznPb/zOc52X8dvGb77Pefq+7/y+75u3 -7/uub7y+5brm7/rudd62e/mu+7vnd/rG6du+b9ym7xrH6xqn7z3n79q+cXy3cRnXbV7WbT6Xc1u/ -85uvb/uub7m2b1uu7dy2bRmv8Z2X913fZV3n7/jWddum89qV13JO1/i98/iN6ztdou0ax/Garnn5 -vvt65/farnu5ruucr+ldtnHZru06v+V8t2v8zm/8rnMap3UZr/Gd1nG8zulczmt51/e6tnNZv/Fb -1vtdp2td1vWexmVdr3We5uUcx+mavns552t5r/u8tvuar/k7lvd6z/m71vt67/Udr/ed3ml552Wa -v2N9123b3m8772V753n5tm1+1/Edv+l9v3MZt/eaxm08v3Xczne+z20+l/lczule3nVbt3ee12Xd -5u+Y32Xdlne73uV9t+W9tu37lnd752Xe3ne7z2/cxnub73Xclnt9z3ubl3e7zvPcruXe5u9Y3nv7 -tne9lmm+7vO9xnG5vvM+l+vbvvHaxu17z2Xbvvv8vnfcvus872X73u/75mm95u+433v8vvObt228 -zmX8tnN9x3WZz288v3F51/f7rumbv+Nd5u+cp3WZv++dv+N9l/m8pmu5v/VFlIB+EQyL6NoT0yK5 -vstS3bJ009jv69VW9cBz41BN69OVR9U5HGlxJDnZ2nmqO/+sraptfaq+9l0FKxWi5yTX3c+y1LL4 -+0AqO4Ng/Hl5SeammZMlmmUeZ8OGIW6isBd2Opwos8z9vN0sVTPNAgKxiEAjt5XBjwbm2oFGRoTX -aVIiHlhEdJiwXrvscVEZJSJDwHhBqmmVUaiFJEL5/CdZPrXNzLQPBMTsdFRtOzPNHsucNEnuCzJP -nyT3ccxLUybHE5Opx4oVpDyvT/Nf0xsqJTy4oBHx6CchPyTDLE9eBA8aPFjMzISwgpjRYocWMyEf -XybHlOPgMGw9z7OqdRjWX4eDHP5x+yiiWrYVw6jX3c1U7jiS3MZREjIj5nrRswp2T26bm+XfqiOY -tUcQhtMkv//ScRqUCEcIiwYFivE0rpI3ZlSY8IHHChMRkk7japqnrByOcMfBHkeL4Mht346bQ9HM -tJHDWbltL83eNEcuS5Lj0gw3wYMGB5YYogJE8MDEDRg7VkhklLBiP36zpEiobzGNUrErM/KoQIFg -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 -TE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1M -TUxNTE1MTUxNTE1MTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N -TU1NTU1MTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N -TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N -TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1N -TU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTU1NTQ2+dVb2GgcsZYAWMDMjj+1xIBVNAfWk -NuVHr+62EwUKtcMxuehIReNtE3U44ZOiDygiM1Im1ZqOyrDNNi6XteiYZMdhuG2DX0+OIzetstsi -MyxvnRJEh5fTQK7aA0blheclCMjbaTDZ1aEyrfDkJ3GLSssQBAU8jiOiEWq29XE8pQ== - - - KcxtVfh6BxSXq2VXDsftuFiO12KobtkMerA5fskyT44pp3NyOvEXwiDYctzcdWyWsRwO/nktHn3F -yDe55ZKb9mh5gt8Sy+bj+HLbu2V3+O0liXrfXQTfLYO57JOioLMUnaRPgnwZ9igJWtFT7PYkyIed -aARfPDuLv4/S01OKNdjdoxiraxO7yl0GdxlvirEZjvHsLaCe5Ka76NlwnQzQAgYFp/9S1Efw5TR2 -s5E1LXSiLWejg1zJDfMQSRGxMpIixLNgNQc9lbPBQxAXwbSzkT+OFbMzIJ5Fv/VxRDucM+PQoPej -KMxpNKiFVDLGx1eMPCl3nTvuzTomM/zC46vIcmgM722jg9vKlmE4bnrhfCRjbuvLkaXHeaxMNkoh -1HrqZNhymohNX7JbOskQGfIjB2JLkWp+TtEHiwlMz2VwW9EsjNUp5IVB4Xhzm9xtLeiB4PZ1155R -bLGoKjVL5+gpQV70+NHTx44Vsy76TYEdMGKIfJhqjkrR7ra520TuGtvvnRRFKvqq5x1WQpB4iYXM -cjyhgxYAAchdF/P5US3bcjpwxlm96Q+TVQRwsEi5q7xltce95rgfRbezYTsbfQRfQp4kWMDsQBEh -4XFbFG8xPPl7FiWQCjXvjZN3nc/o6SRYcteU32fNc0hNp1j17rY3A/FFz+YylgNyh+HKx5OLoR1+ -qvh1yfANfihns3Y4NOiJVLTErjP4mZxNDX4iNXXJLg7VyMVnN6Fdnvzw8Cuxaux53IkT65aF2PJK -n6/wOslt+yXJl6PK769iuf4+d8tgbzv56D1iUl6QvGL7/XqaLHqkVi2tKd1pcLaxPU0Vt6eXjen6 -CJbtcizNseumV3ydZb9H8JoOO3fjlNISxqOb1hMPPR8tf7O8O872Og85ttnG5J4mOl1iT570+BLc -R5AXw34kZY5LOZtyg8KTnqu4HbFlXPxWTstJkNSioNS0R/ENPRwVQ3R6hklE49lP60l7nNxtH3Pc -Qw/mNFwEWzILI+J7SBFR0fGQmnpUFSfHEZvG4lZlfktg9kOG/1nuZZmPoD5+M6f5IwgT0n+oxFqc -Rqt3Nb3qfoqg1UTx75Gb9ohhznFxZ3N322hVSS4LUtM7BFPwe6WiKNX0STAPuZzs4i/7UfKk92vP -40tyxK4q+E2xrMxxJ2djh6Cfnq27LrGrD3q717mdLNa0UYr2JQlv3Ox5OCjmYfgpxZLaLanhHPxI -asqC349Jop1Nq2miNH3R8clNq9zVL0Wf/Ehseord3iRPEBB0A6Jq1xelT4sSnwL1GaGkvGVzt5XY -1eW2EQTF/X2xGHatKUtNPaPol+LHLFNtK0rVd9N+0xSlaMld9xBxjcgvi0VZ7oqTogu/P6u6blnM -ZXvYqVwUFrMn9eRFUe682OtGfL3FqvSS3fzjeNDzjOGJPVmoRiw53svTw7YvHcdxEuPRYkLi33oZ -4iT4WU+V7Maf9znNknuO8XMfIi3Wu3rSMiTDo5suyfBdkrUI3iK4gtuU3Y7Vbygt8xHMxS/1rq06 -rr8u3jIc9ESp2ZNhbKdlmLw+8euzp0nf82Qpd1zddTK3wZsme90Ihl2Pg7/Os676aZbUsct+j9AS -xJ4jG25ZkVSsTjXo4eGHelmVnx+taC6CssfJXvejp8llV7Jrcs8xuU25KslddZPsTdL+Ol70Tmqp -csczTqQT/N7HkNU69ueVVhRGylOEyotG1JvaUzdBDzqSVvOTluvWsT9u/7qQKLbQ08WuP3reZ3mX -5Ehdd/HTRU/msl3sUi7qKcM79NZOhwZDmhcrpN930wShaGldQ3S8hUokI+phNBxS03wsc9HUxXF0 -liN0tL3u1bI8BHmSdLXN1bJXDIvIcwk9YfAbi98cBO0wTL2uSY7LHWeCgNjfh3LXlVt++egwnJ5D -kBvAAFYzHVMiuew6Bjt8BEv0O6YUSvHoPCmyWkZ/IGl971BsOxy4w/HDsMSeMRoeuevePOOuC6nr -WE3344h7nf55IZMsueeSPRfxebskzSzDRbEnxdKaqtgU/zjc6/DPY8XtzAslgtn+HF9zbILbqVYV -oeOJLUf0moTPW3adlyTbaffoidZyJKdb/n5kfk/q6VHRliyXVnUPvZEpxoj4HmJOfIhJkUmFSHo8 -BLt/u4LYtSW/IrKLUs0QSsbsWeWuK1f9T/IGv1TLhsyxyT2D0DInw9HL7ulZh6BOlqmmoVkGm2UV -/UbJa89Jwl5Hh+C/riFYZjtO7XDiLSPB4yVesOxQCZlBhVSzS4/fz6qk1zXBLgg1X/LLil2PWe6k -mIuhBz1Rb9viyVn8G8XHSe6akyLsce7W8YzhCS1dsGtSUQ8Z2p+Xi+D9db3opdgz9aYlPB0j6lVy -OpSSdNipGqcnxdvjco+ztwwWtzGkUEooROL7vmm6nDZ/XF+KJbccAreeEZQ7LeWyJDwOI6ZS0bJ/ -nqr3lQF5fGAh0RE7hczsByU/a/qz7R2W5mbzZlnudSQVDZXhpwxt8Cs3ILPXjdR0DIZvjvOEoKtd -YTJMYtMic2xa01XLzE7HBj8RapbMEQ+53iTxcRxRnCjh9xe/w2Koel0qhlWgSi+j30W/+wjqYhhK -0dDqeidQmBuQ+/NS7MqS31Kr/umZk+Psebw4zp6Xdjjytp1WNtWyMBkWqWXYPadsmU/T+ftWLWu1 -bB/DGvRIZ7lKzxIbDvHkP8yGXvbUsh6z3EcRBz2UXUZiJkUGq/SaYZ0c1467S9GTmqR2PbXrqBRZ -LLrCFFLx+x818dCDxa2OkZWNkZUKFOhlvzEo0YvXTXP8r+o9jiG0DJnfF6nRjFWp9bafMuTHT8Sq -LjkWneUoNU0u+7LlFM++gt2Y2+COk8PQJsvWLLNgNza/sNlFtWpKjqvemBbFVNNWTbtBbybED9Ei -4vLJU3CKglESHxe97UyKvpq+6DkG5DGx6V4EW/SL4vOuuv6oaSg1SappatPQitbhJ4Ody2lxx8Xd -xp+lqWVNZhlklvbXvVon3rLPWargFoW/VXa7ZH5Jauk5xb4M9RB0s46bcWxvm5EKAaESokPEBRMK -ec6z3bKXy26wE6ElKjVLJ/kpRR4wVotTKEa/fUl+0lTkrnkxzEXQQ4amtWRJhXjMrKyAPLbnjShQ -wNz3n+rabajWaTfNFsOQe54B+TAfDwg9Vc6mFbsrvj5Cyz786m7LQU+koiaX/ZwnDoJu1vHN8kfN -PAxREBSulrkd93odPYp1+K1bpmacfPRmUCEW/M6btnY6IwgIb5b+abKZdnI6bsfpJpmaYf37Ym1D -Ox0068DbFncdq2Wfc5ThQs14oWKwTC56jsUwHkWbHEdue49izGkgUny56QwK1GLEFdtz/zxbjiO9 -cWhdUesJg9mfBP0RZL1sX457SbIdV3Y4ugiW1LEKEA/j5yMV1cfwBrtW7KLmlx69m/xUcwuEDIsO -ExHWHPNnWZNk665dQJ7WHHvMUQ89EkqyMH1iSiL+LFmtM3rfkb1nva0IJf0RDJlfmY9PMwqFVrXM -OG63gdCyZb9batkkfkmmCULN/zRvEJS7rga7DzqKVhNmvzKgHIYqlJpdD4t+WNU/zZwUe1IcoWYP -kxQTK1heoEyf06xBbx/D/yRBKvqnJy6CejnO5RiHIF6SnvNMsapfjrTH0R6nj2Ffij0Z7iMIQknW -u8LktqR+W+6Kf5+rdV6tc3vcSS1N9FgmxLv8/UqObdCDuQzmstrbTGpqSs+fBF2u41H2NM8i+a2i -3yUVhTfNY5Il+e2SX9XsgtYT1jiulvlnWXrfvTxNTWvtuUvPTbBbMkm5s1k7ILcIiloVZsus+cVD -j2SeS2i6i+ENgrXX3SAIc93J4cwct2YZq2U/eqbatQW7plX9U1QnRXMDcnJAZtBbtezdsnjr+OKX -cttUDN+i+J0AmT/Qk6qv56FZB9a2PRRDKuqy4xPdzkdxDr+Tj5+aZf4cPWr5eVlUHZvwtwuPqxD9 -o9jNTzJlz6W49ZxkiU1LbMqX5Mp18Aem2iaCgNxiGFLTEFqGyC3IHOfPgz8vN0nPabrbZnY4npOs -sSrVWJFE7Ng3Rzr0evX0V9QeQd4UQSipelUXLBEM10kkn1Hyu3ZcPYIruA2h4ZbMlt70w6K4Sfap -qpenyemwGxdK0xglkIuvt2C2tKK6Oe6n6afqqWlnZ5OHoCuGQ2S4dJq8COakWItgPYazGN5liY+j -By1ZrEYtUqPTev6puZsj6WV/FO3JkZSarJddsapKTUenaYeeDHahNcVDr9SqNCkUDM/78/TNEidD -EJuOVtUvyR818/DjSfE/SZ4M/7S0w04fwdCKltj0J0Xc22guqz1OxKIr2XXN8aum91HsS3EFuyL0 -FKVoX5K36A1BI4YDjvihAT/g4IHiatlhDwnWHUei5zpQSnQR/JwlSUVDbnuFiVSi46bXtcHQBNns -ZYmPY3nihM1xKDsOw2XiYcJCQoUKTekXreeadULlWXuguNl8IJu36+4w9MsSpaYldT133X+eLT9v -WlF9BHER1EtR7jZ4y9aMg3Y6IAoUuRiG0lOEmjw50uD3bluraaxZNsFvy3FyCIZUdYSipPRUvasI -PvfluKJnGyUjqDlWCflCrGjx8WIiYwKtYJaElimXzdGSJMMoJJCuorcInvT6TCmUgl/Y+1BtSzfO -9bwSDNOgOIKcqL2sRbshFj2964rRpyXHrefBYbiS4Vj8qlpVxaIoNl3x6DAjz4qG7fHz0TIkr0n4 -e0SnU64aSsuRq9pkKHLbmxRjj/PRUsW/Y0A8rJY9KAp73/uBIBb+VRbetjr8Su7qYmWK1fIcguv3 -fVnmhiCodUsvXIviTo4o/e4i+lvz25+kx219F9ZTtkdRVNyi3LSFv3WYwGJ7TZLd2zTrcdxRtE9T -fRx38PuUpIt+XUZ/iE11MuRL8QSzo5b1oGaMllEui5PiDXryluEed0LLKHSsWtH840quioLdEbue -Yvf0tr0I8mE3Msct1/WY5I+a+yjiYeiXpAt2X3odtaI/Kf7liI8gCRKQRI+XFREe/6DjDmp1p+1h -CKtpGTEYvGko2F2hKs2URqVVjTmuzTKZ41ZOh/ZA2gNRFChoRiAOBLGjADBkZEJ8jMhPwestfuQG -BP/CNdPMTifUtjAZJp3lCUVh7fqC33fbcnE0uW6addxuA7XpCX+z2LSUlvv4pVl2drJPmuYjqWYZ -zGV6OXpMEsWqL3vGRxHuOlZug9bVzTrxlt1gd4feToaxWm5xIoVWNGS3gUiBMoPkdfL38tfB3fZh -07scVXOs8vs3KXrQskZIa0aMFVLRNctYTsNH8fS2J7teg6Gngw41yL1u+aOanlIUkV/Wy+YhaIPf -R0VxENxDkNWqIzS88uczI0+sjnUS5M8Rhtelt+3LMfW2p5cV0W3RmorcthZBXARD6+kpxdA5jlTz -BLu/qprgGIbnH7ZtN+4myV9NVXP8n2Z+mnzb6q27q2vIjft0rcvyV9cVPYdWdLSaMQ== - - - I19FS4UyEn1aF8SuPGqGVjTF6GexMonwtml2dxS1SbI+z/Tz2K7LRdEvR9f8uoD6PzV5U8RFry/F -z5p6VDQVv6I17U8SF8H762hOC5GjB/R+ERSZo4tnZ2Eaweh55K49eu6jSErPFNxeue0HLVl0bGrZ -Wwzpr8vFDsWeKhZVsegLZvtSVLmtnGXtZpODYaltWTW9imO/JONtE0+c0EtSRctxt406DCAPxZP7 -hszzP5Z159WdB2+bClMoxdd5MrQ/r09VT5qa3heEor04sp3OzHErux0ixZYD4mpZzHVxx8Vep5Om -XqbihsOyaR0msRSing+729tusIs9LyfLFy+R0AqrnY6MR2/JaZRq7mBXg5+7afCmmXx6f13xMCTZ -c1c9g9Iy5aYsWC2tpo+WNFpUmuhhB1W+3+RYctcWUG8Dllr55DAZbrms22U06PXlKINfy2kql13p -c5W8fuHvERqmOw7tbEKtKvL7MfitWYfmtk9J9qDHf95ekvL3gVDUtKb5CKYbBx9BkHqW3JSlx1s8 -uwctZdAj+XxCruxJ09Kamuz5SC2/9LgLEygHPRr0Ri0bousjdjW1LallfxXtzzK0rrcovhy3m2XI -rp/8ntM8/6mql2V/nio5Nr2vDILtppXctOXjj/D4io49qGlq1ZLdXvn3ksuKWPVlzyb+roLfktvu -6OmCX02SvnnGHcdqnXv0THBrelkSm6Le9VfP/DTts5zHEKSeH9TMQ3DNOCYHZPY40ZqaWhbVqil+ -vkUJVOLhd1Vtv8/9PHkEefRc1fKJh0+57/x5rNZht41Oeh5T1MWvJ0MUq4rA7ZxlflmqgMFCftAt -ivj3ecqy5LIjNX23jd22s8PhTbNF1yv33UHwzTR1w4Ez7RbDfRxLFCfGEzqM1jVl4z260h74Zp02 -y1jOxnOWNK0Wutnk4KeCXZP7llSUlJawpqEdbex0Ys+Duy7VspbTRusacuckt25SVd48V03TyfLk -vupmQ4KgaLUNF0tV27petkS35zGMPy+korj4zZ7mlyDKTUeomWrTHmZckshB419VFpCvogRCsWm8 -ZTHYgVCztKL+SX5Ok/Y8Vstac4yi56UUrbkt1jo9KZJUlKSiqJfl1dT9PD1F53FMNW0GPZF6etKz -P8sUn1fN8rppdzmiZjjG4y1afsFqLGZ/kyzF7gsUFB1lazBM2XUVXk+xaMkUYfAaOkmPSYbgeeiF -fTJc0e8UHme97MtlW3J8pKZr8DvJdB2SJ6dTix8rbkdoeYSWYXg8xe/354mTI4hV+/MEsekKZmX6 -m8VnbxHiaaxKn9S8RfBPz8+Kktw1Zs8smD2pKGld6xCMvY4Ov0+r/my6smOXE2hmVZIxgWK47VFT -nRT9k/zXVD/PWQxpUuRRczdLexx3kyTB6ZW/h+05iF1Rc6y6a1H8+mrqUVUeRefPkz3PR9O9LH3U -vMkRDsG8JEcrCoOAmChQlPy/BQpwxAgo5HY6H3JEseunJOEOp+10ZvDr05OGpSq1btvp5GKolyUu -jrL31R94ex/ddboIql6XT9cPBUi52eyiKFpVUYqC0BOUqmknI9nzFpBfj+OHAoWbZffnjdw0KD3n -71s1TeU6FRWLBFQi0bkMiq+2sdoGe989im/3sd3Xr+3JRzRa4Znjam9L6fMQvBaxagg9X05jNY6p -TVs8fMlNp1y1tJ6ec5w/7ldPj4rK35d2OrYYnux3yn6v3tUVu56SdDWNBr86DFtN68XwxJZ7mIi4 -/L2qVX9zbLmN9bhVjofeWT/LltDvQ0sKDMizgvSj7HhvlnDHneD3T897BGWQG62liP2m9HdJPsN0 -HD9TvDRJrgt/HZqBpB0U+uiJ0C8sZkdquCfFkCnCZliUnvnX4d1GOstVy9agV4phVOPGDYfkriR3 -/SHHmdvuz+tJ0XOWqthFuewuhiJ2zNLXM6DdFbOjlDS16F6CJbpNwu+uu04J+Si93oLbETp6SpE/ -S94kQWxakl+8FGFC/BAxJzu0jKh4dNcMh1A0dJok+byi45IM/+36eVkVHbfmuMSyb8fJX4ejJcmW -UbQMy22Uj0+y56ya3k/UJsk5DPHz5FX1w7Ymnv4kx3/L6mYpf54fgqy3RdFvEr+PPS8Ez03uC2ta -eUKHestQclqG9Kf0tUqfy9xWgpwYvS4IltnuWzeO1TRUasZm9yW7p1WNP5DtvB5NRyy7i+PcdTLH -5WIoe54pjmF7vn5fC4Y6WYJOs4SGefGjvU72OtFMb+ABEGBxjcQna26dbqK6iermeYvh/IF2aZqI -SDJKUmDOQzucewxfSKAaK5MJXptW1O02ewRVcPs5S7njeFJsxW9rhj/pqZskHIpr54ng2JOm/Vni -Imh324puu+B2H8P461iuS7NMhJ4nNx2S37kYxlymh94nNU0vuyIC8WjquucYEqiFS6Wa41bcwuo4 -tKI/WppcVv68s7OZQQ5m1Jvkc4x2YTILYtO6LEWvK8Lv55bJYeeb46lNU/TaFbOpFrW/7T/JEbve -n3di0Vgti8yxyW3vpIiXYtt1bNf5Ktqb5cxpefiJ1JSUoqyXPbln2AzP3kZq0ROs8mVoh11IJVfx -+qLbGzBUy+dn1XOJhwepqextd7jBbnhl9KPgl0XHKB+eP8vW/L58+JCc9tWSN0WPWbreViWfT/A5 -pc9dtQxy05Ydn14WhJ42+PUmOYpbElDfwutPu77y+oUEKuF5/jzrUdRVFETLprte5TgLr0Pt2qen -XpJ7Sa78uqpV3ywDT+hggmx0oKCg6HrcbGYPhPH5llxesSf+ba/WGXUYQJt1WMRaLx/UfiFMx22M -pHCkPCV1u4MdCoJCzTo+y7qkUKMXJlGgcLXsP80S/Q65bZGa8ma5blufrviprlzHcjam9YzVcQqT -aGUUaimZRHBMn2eorkczjZupPZK/WbaAehqTiOXzKb3x2emY6HgE5PlZVgc7kCmW2NQ/zd4kVzLM -lyRvmia3dcEw64X1MexR0zZLWAxHsjyP48pxulmiXlZGCcSy2yXV9MtxzbJ221y2fYrfNOvY4Jdq -1RclTwuS39LfLB9fP9EX1QlGdVrtOft1rNklYoZliRYwLUaemC3jJWmTowi/f1wW9rh367TgtQgX -MDJGXiweXSS/WY8Dtawqhk8ue4efb44nVzW1aiqG/xMFmeQPMCcwJNB/lnw54qJ3UkuTe17FcE2O -Lcep3PWG6zSDlVK1rQgtd/HbSZA3RRLQD+Ny7afZitsdIywZKlLKRVn+u0W/f6uKZFgOw9fjWLO7 -gBosiEjhAsttT2qWXNVX0b9NVbbMr6k8gif+fiP2wsFSrehxlzum+ewjOM2rJkhu+TXtzfLl123A -TjugxIiAQXHBOpFiuBS/LnserWrJXVVGvoySl4uRVouQFsxpNIrfkMvuJpmPYCg1323DSxInx5Cq -klDVRAHyoUCBbhsKSIRi4TbTYq7DxfFHT5K9XqH6uPz4qXXzz2u57Cg162/Dw2+kpqnYhbEqsVCR -Tn5+N0s2y3qTJLHqb5Ioh2OCgMgdt4/ijOnEunU02+jvgwH1I5QEmaKJRd9sw48fSY/fcFEx1Tiv -ujyqvuR4BJ9P67mLH6ttfLVkKYFC+NzlON8kSXR75cOveHbW255atTdHGickP7SgCbFszG0itezD -igmPFBIXHeOjCHecTY4pWitXrrNapnI2cselYLaUnvbn3WLIchsLv1tKJpF995ykf4YvXKZxqVaM -vGyYuGZSJdCKhl4XphQ6vSzoHEFmKGJPE/2mYJ1+mJFhPy8OvRKLquDzDJZJBekXsWMUzOZkmJJf -vSQ/a+rS9Ri/p+Y4JL9NbouD4O11sDnGTRLkbFBuE7XrSR23GHlmQn7JZe9RRLkryn6P3DYGvRr8 -/LMkyekYEV/y8y2e11OzNb8lNvWYo8lFS3hZh8prBUxlmmebJD1rGrLbIXq9ryj6cfAIxphCPVBG -SPLaBLN9u95nyTICuWC5SHDe5rJ/1ETotUXkt/Y7peN1Wdrh94MJzIZqtLLTJzk8cscqWl7Z9ehl -adBr+XUkYk4cUIPFAWawWHEakeB0CXZjMVy3rdycyEWuJ0mR/PbN0ga/NtPcjQOdJy+OoPPEQREX -xRF+p1GhULDrm6JfhnbHwVrWj6LtdeGJAfikyPLxpID+EOyO3LXEpj0Z4uGnk6FvlnPHgU7Tdd96 -WYJSVOWyrnn+URTmOL4kdTFMO5w7BFPw25dlaEVJ+NvFRPJd1/PGnvZVtW3dtJwMfbQsteiJPsNg -mVCy+6/oihfL9L5xx81fV2LTEDsmyWkZMdYKlUonSVB6puw4ak1bsLuL4Q1+J3dt0fCMERis79XO -86TsyYVD8juUnjXo1eFnkyJM6rQDjUzM88HJMsb0+WFGRQkbL4RgIVPDhRKZ4X0EYVioltSKR88V -Hd8gafVAeRXBwoWHSsxkp28SfO12CtapVNe7WZ7sdI1XyUZMFWLPLPndy1H0sjCtlCiGRa2K8u8r -oL3Erv44tmTYLkm04z4wrLJxOhR9UjS55xWlX0W3U3bc5eP76amfJQl+Pyvbj+JMSC+CRcwPKmRY -TKCV7Oam6bdrCI+b8DWKZ14J4SlQopdSyIXTLZz+35ZO1XplebdNye+IHaf4NUtoj+22SHZ/t81X -Vj7X1OtiuOxDCuwANVS0aKn+do3F8B5DFKviILeXX4so9yEl5EYITOX3WTM8h93pXVF02hWvr/p1 -xSzLVUusapOkynFmpxNiUz0U6Q8UQUBWTZu/EISqJXWdu67NMhQEBShNb6ycrKBMqJbFHXeD4S6O -8LbZINhm2TcAAeDhpyICsXie3LjW80DpqYJZ1suS1jOEmrCmreD3hd+rprla1pOi5zRRr/uiZRNe -18dxDkEXrpdmm+06+etM77oS+lk6PgL6mGb6zDSQ+/5pio8iLn482KlcFaSeLVumYRL7sOr7daSX -hcEysUCBWjy46l09Zjl7nqumWUC/Hn6uOR65bdbrsvw8ST1HqbmbpQuCrfomray7aTfolVjUhMdb -SJ8Z1EimFCK9bshtaZyQyKhQr9xmzS5KPrfwOAk+wxBZhfh+yGVVtFI4VEZgdxyrWxRedtUt6UV3 -rIQI0ULGdN8fVlVh+sxglVD2e6SevTl6UHJl5FkRW6FouAXU2whZheAxLn4zp4VSE0XHKDoO0fEW -jsfi+ElPmI9Pg3UqqeERWw65aVKrjui1SM/bY1l7XhApMQnwqBEBHzhsiLRcNJyfpqmeXbgtWs1Y -7uZgcS3AR4wcJrFXTqtuOZXbpjwf3fm9qm63ldbyR4vIECtWboysWEiflE3faZqCoxqKv7u+8Lll -5DHh8RK8juAWpKI8Sa4dDj5+Jp7bRUo0MwKJ2HNLdn+ULLkqS355UvzPMYR+YTw8iU3/KDqLIvx9 -ord1sw3laCjX9Wzrr22baZ+yhNk0rJ79UMzB78Oq7OfBYmiS5ZDKwlz3nTghokDRcg== - - - 3A1+d/iVaPlD0/Xahmb6w7I5Ocoel3I2M7fp4Hd63VEMt9z2SdPTC+fkaIthHYJ1+O0mSfL3K2Iv -eTzRTnby70a0aPHAET12oMRcSiBQy56dzkmeVS0zN5u521xve5LfLyLPC1ZJZL/vUlxJlWa0qNxl -SX+c5xRL7sqi5/88+7LszdI0vytcKxLbopvN22msuF3p89cMv2TYJMdFKQpzGwlOuyB9ZEKeE7yy -4jblqvW3mV5WCR86SkakXkVNL0ui2ye6DaNfklw2tanKh79hEiLy9/YIolhTxirUA+Vlw4Slw6TV -8ultMczNkT9LG/xCqAlDCpHo9suv86ASo1HiSsmuCm5XsAt3W4+WIjt+gwT2g8VERvSP3HSPpvZ5 -lmQ55LY+WpbW8zW7JnpdI5ay0SKl/Lv8ef5Z5kgZKfk9rLyG6TRKn4fc9IoRCOW28Ke5kHgfMiYw -SFoquoVJhYCAMeMDi5gWMNWLSWSa41r8YPXbIyVmo+T1IvJVQHzMpk/va6Ln1Z7vK9qGHo6OKP39 -ouRx8fFW/I7W9Q7Fj4qWZFc3SZSrhsjsCg6z8LYJb4vktcc0fbMEpabJZUNr6jlJ1Py28jpVz3Ln -+SZqgt/WbccfyJfliodv+fihE105nHfb6O97uW1FrMVSIr1cp2YaSV1fs/wi+l/z+znHky3z7jtC -ItFwWQHBsCyK+omqaBlG9IvU8qldcVHM0dPV97vKsttmh2DqbVc8OovWSAE+YOxgKdHJkUUEWhGB -Pqm5g5znHEVtWnrXUqt+2PTUtNbrTH5PSo7ljsND8D9LvRx3k5RZqWKUmMAgiILXlsyi6LUKXvUx -tEVQBj0RD78C5vqoKpt1VKRKNmCtF6hSSR2j1jMPv1fLSq8r4vdvt80fd2rTFj9PEfKg2JQnQR0t -aZM0MYlkXi86BOvP+6imDMkjA9JX+nsEn+OPW+E3iQfkq+wthqK1PLnnKC3tz3u/Lux0xk4ntus0 -qpQnPe3R+6QkCV+L7PWrjk9vy24Z6W1NeB1Fx1vz25sjiU1LLyvy+y8tVgiOTa0KREsIjRdqxaO/ -aDiUlr057mSIetkcLSYmoF6GSokRM16s/D2qTUPmaINeaDVXrEIsoj8vR5YP/kOKkwb4kEOJGy5c -uexhTX81PexJowSm4tUy1fLKjlM+vMhNs3j0HSevGyMsWF7vqPmz6/x5HjMMreXrjmlKIBUj0IqT -yKUUoseRNcct2R2hIoo9W3ILw2NRq5LiVzTDeXqW5jeFiH8x6nO8UCu+HsvzEDy/RxLtZOUGxKTX -Y0ohUIrC26aTZEmv1yBxyZhArPmdOU4F2Zzc+MS+tde1WQcHvRYxVQ6XkhSvlMkIZLrrH45nRkpy -xMzY4YiHYIlVRSpqYlMbJ64ZJ7FTPPvnOZLbMZoWoecediL3W7LTpzZl4UK5oEy5WfrmiOLrLKF/ -JLdNbdqjpb6iP+yilESomh7ZbZgRKATPTXDsSVE7BG8xlL+uJbs32MHZ5qW/gWgx8aEFZWTHP6l5 -h+HJ4fwqOsSMFyQYrkEv5aYq/L16XT0EQWmaoycceicgvgVL9ZOjD3ontSTp75LQH+LZU0oh1G3T -IciaYxHcdtmySl5ZtXua3T0tbbiwrDBh4dmY9Lowox6Ft0do6WrZ+3Es6LXhF+LpRXzf06oeV/VV -0/SqJb4tktMf9JTBr3XbqXruzZGF6wRDCpnwuQhOw3ChZpTETHLcn+OPF5MTP1fJrYhFSXY7JLdL -rRo6yZXMgtYSJjVSAXN51NODjqT1hM3vyW6T3LJLhnERVAHtLnwOtajJj7usQiqkfkXEv5Q8NEhc -rNwuya6L1+nFJELFL2+OpDcN4WVRe4raVDXHbrfF9HmHSsgOLCM8Rloq/C2CyyYe3VfPUgzjJImT -YYonvxFL+TiBnfi5iT7HYJlIdjxl9Jvc9dSmLdl1ze/fxrZYrhoHdx9PjjJSI5P9nrsOxLYjotGL -10P2W8Sid/jtJGl/nyhdRyqbi2FfkiZWDYKGZQcZFJTP/mHRuyR/911BYpIDRsZP05YR6EZJzEX0 -ic3vio+P5HTKbUXuOiOFZMT31J73KcMXqxEQMikyYCkYEQ/bbR41ZVQpGSQjJtj1T1K0mjCl/8ZJ -7MUrNcLnv8vSUBlJ4oaMlRHKHsn9LPeTzMkwptM0po8ILUHmOGN1uhHiWqFCreb4R83QqvrpmZpf -Gykk+2na4ycz4l9+neWuvAi+3PZ6246OK6P/5POhuQ1EhjAemwkYMjy4oMCMflGrvh13i2DJjqfi -Vz9JmNXIhwzKjpgVmJapxee7+/briuLhTW6qi1+8deBNE/l7FSQiI6A/VcdzCPrq6cptP0V7tFQh -eVpQopFeT8UwDLdHLvunZREwYmhUKFMM62a44rlJ9LoUuy3d/iFGi9IMq+Y2ha9dPjvslvcy7EeQ -tKI5CbJw+vV7evZs2fEKblFtyopd0Zr6plmHX8rIg7LlUIviSIElYAeMIWJMcpCsVqxCK6D+Z9HV -LbNomUoyDGJT0Iqe5DbFaqSiXdgtp+DW9baTjx7EjAoNavSq35Obnl71ZcexnU4R+aX4/dUzpvRZ -QQK9QI1iNcyCUxI8VsVuSJ/z6OlRz9Pspvy66I1L9j0FiTQzErnclWSGbNYpN5sicuDwgAQgYOL5 -T+lJcs8vVKYeJyExWpa3jeVwUPC7A8wLDM9hbrtBLwW3O15YdoBRWQF5Xrd9imMPm/6gaaF5qVK0 -jINfP4Kn1USx50lub7ykmIRCJBVtvWsJPq949hA7TsFpqD1Vs9uEDxxCwIgR2/WTn1+xIt0IUbUw -gVL2WidFz4pewABFACEGKZCR0hJaUxkTqAaJKgasVCPExCL1Oa1lDhWUEVCAAilgr5fV6UWIi0fL -CQFepJjxUqlgFoSSuzmmeLGAYEHzSVGWzLaA9pRfj6EC8VCSclHyiNLys549rJDZ4aKy8vFdMpvi -sUV0WsXXZX7exdf/k0w5lX6YIUMmFmNRpUg+vI6W7deJ4PbEw7/e1nbar54rIN/HS4oRMFS8lEA4 -+bWd9kFLEv1GwTBKjmWYwGCgxGKQuF5z/EHL/iRRM2uDpUSl6zNJ1iToA4zJEDQsNU5gMKrQSa/n -MgzJZxPd9k0yJbetGnYJ9TJgKRTPDttx0Dzvr1oi+kMxbI9fysgTw0K1mEgx3IbltahVRyzaomVK -gRKdYlUEoy89RvlzGZVohokLhoiLT1FWHcOEPCe8/sKFatnx645P76qboYpodzl98lOE5e+Pk1aP -ERdMyCNjAtGwSKt7xktxhdcgV/2kJMpFT/g6ZscmV0XJ7l6Oprh96fQIb5fUVAXpU4LXvhja3taP -4R2KvnmqSJ1kVqmYTfOAtWCgTCQ11T9P3rJY69RdN1LTltJIZ1sZ/GK63jIKyaBGNF6n1uziI/h2 -mWuneYAR08IkFmpXley+UIVssEQvvr2S3VoE344rtasMarSbZW+SJHrNIgWSASvReJFiQPgJdlNG -oRSrFCp+Uy87Ywr5kKIlR4rJqn5RPvpIn4vweY1YC2bPuinq5BdKy1hOv24Z5fd1vLiwnEZB1Hhx -hA0YL6QRrJ5N7mp6VVKbnuI2JeSnhDw9asoIOTEgx0wPKrEVHGa5XxUc7ktQBYzVAhBoIAgbNmD2 -jASNiQV6kIHEihUaUR+T3VBK/mbIAQYkIAQUuICKmMjKSOQy8qQw/TRiphcr0clV0WyTAqZKggcO -kxDJFj8X3c6A8h8kKBkr0Y+RVQ8Tl+ldeVARwyNFitV9h/h5itYpxQk0c/I00QPGA4D4sdLzXT1P -TB8YU4imBEpB8pj8eN+afnvCcHk1xy/IjXx6FpTJhNutO1YJ8S4pUYtLBRuFYv/vaVkWPs+sTjAo -k8iOw3AZ5uc/m5bgVgdLyc+iIT3Nw4uIAWKkUCLGDBA0K0OwYMmxIkKSY5eO1ygZMcUyTn6meD3x -3D1MYDlMYCMevFdPVOug/PeK1KhVz6A2jek2DavEQvq87tpE0zp6su4Y5dPHlEAmPX6C1z8t7RH0 -UfMEv7xJilSU5Kp06PUmSUP6aT59SS2T0LIvhrDWAaVmrKb3klQ7nb8sYXN8ktcqlvXJsV/V2jRX -s5xjJSWG43i3qeByjFdJRsiphkhpiRktDuAhRo8XEz89Xbdtd9tPfid5zPLhV0agFjFVDJIWC7dt -slxRqZbwwUMEp0/4+aSfaVL/ETFifMCojOz5Xo5CvGBRgB03ZFyqFdHHxL9LQLuKSbTDCpkdZmBK -Mqyj5QnIp0GJbJC4VKxIKrgFoeUrpwvg40YTQfCwqmcVj55DREVEywiPkVQOkVSL1qiFy39a0qhE -L2CnUpue1pMGBaJB0ppZjVyEoF5SpM/LmuIWCJoVk88eak9QOproMwkux+aWRwoWHzBcyBCBuWCp -UvIbw2MY3bpkdsSiHnTcIWbFAUUAcbrtEZ32cfKqwSLRiHiUHE4BwmlUn5Ye+7CCZQkcNF5CoCNe -xEDABxs9UlwsTL6MiF+hKoFYVOUEigABgGgxmVyyKwPSZbBIL1qmkv522a8HJT3rWYAeOo7o8cPE -6zZMWkjAgFFiBg0DftxogocdMaqTyp5xvKjkcIFp4fgK6RfiRYwSPnLgcElZwTrZKHl93HSl5CfR -4sXFKtWq35TP/eIlkvEqqYD4EV+faaVg+T2jEsmAnW6IpIBQGZnhQo14cE+L1iLYw4VEhspJCq9R -Rj4OlJgSNFggAUMFjJYKpuf9mq6wTjRcUpjmmYX0u3ihYEYeVw2XWhXlsj9auoR40Irq5ehSGhmg -BgwPOfIjyIJblau+ZPdVy56zFDcgdRiW6PsIbofQMAk9Xa2zchq6ZS75nTmJQKcZZx0ZKpILFqlF -5Ivs8suIlyl5XEae/ixT8Vt3G4kdIxFj0kNKjIgUKkiwaNmxAhvBridNd8TELCAIIEbq6YMltoMl -5EfLyI8WEpbRJ8SifRl6gAkkiLBhYxTHKJ9+h4lLCBYrTewgIwMFCGIHFTEm2E3R8RE2YLyQRCvZ -HenvmE6zgHqWj+6jheTFyMsmQ5VQPyOmcvn3GVD+YiWCMXlQQDsM6Zch/SRX/VdUxer0woWiYZVo -XKQdLjGV0l+yZZify7BSuor2KxpjCtGU/hQh/YWfR3iZtdci+01y2ZbTSO9q4t8sVqMXLZMJLr9q -1+XB4zN0MaIS8ej+Sf5nOGK7PExSBsihQggYMSxUoBZQL2K/SsCA6aFlBIWfV3wbJsSzfPiPWsL4 -+gYMimvPY7csE+pDaDg1v6JXVdFsi35XPjsQMi8vTEhUWKQD/KAhBAuZGCGsGK1SDxYRFavSSK/T -SCmRgXKSEvr8gEGZwBA9FMBDjyFYxLxolVhAvKc9WVIhAtBwUfKDXLmsA0UVRMxIECkvHK6TCD6T -3hU1uzJiKZcQX6LPIjbcilfYPrdy2fSuNUpaM66V6qZpXKMcKyI2UEJejLhYRH9Irw== - - - q3DaBcrIDzJsvHb9ADdYVMBHDSBOYitGntS7hlATlJomttub4l6KKaE/AkP8gIdgjNgKAjzUCMKF -hCbkj1pV1bZtADq8eH4BQghhEhrJW9Zy1ZfMqvg3Cl+vAO2x2W21zvx5Pl5SWkglmfvsz6NBwmrR -KsWcPimffQ9BWeukIH10nMBgdExa0RXcxupXBbTDjH4Z0U9iU9YtT0AJIIKQ0YI1zyqXHdnrEb5G -4e0YLBLJnofSc4eYFRsvlcjsnugzy4+X7HZfjr45unChUu8aktc/XlJ2cDE5gIuYGikQif366PiC -3MsKVYMFpRS/OkhcCaDBYoiXkhyuUownL6Xm3Gknnx4FFJjAyK6LVJPlgy9xYyYED1jiAwxYQogV -Ly867stxhWsFAgQsgYrhENqdYfIN8ALmB5SS2CzX4edy2RE2YBQxw8UMaqSy465XLa2lCYhHSYlI -Sp+2DE8uYyH9M6UPym7PlDw7TForvW16U9gd7ziJwW56RJ9xkLSYgJEiiBgUEX3+rOOJZj3taYJZ -U9zCH/e3aosQFRAxKD6siNyIpUTs17OOLlRiJriABGi8vJCAPDIkHgkXKjpSYia+bpLbkJuWfPYk -cMDgkSIGxt8uI37Fc8dq2IS3UX5dBeR7VnRGSkiPFRIWjx4ity07baLPrNk1yezJr4NcFC+/Vcy+ -gPodI6sdISuZkP+y4Rc+s4z+Gyiv1167djvEz2FSIxglLxchLBUu04noR92wESxWepC8VPqb5JZT -cTtiV9KatjiBTK0qWlO+HGnQs0WQRUr08tlFKOkZQ1F6fk7TQ46+Oe7oiWpaCXJCRwiKJrSX5HEu -djPXeTtO7Ti7JFc1nY8k7n00Io8NFypGvyK1JLUom3Vsr1P5+xSq0k6GLqD9B5cQAsBY4eHlZbLT -/PjNXDbTUtkgBSQ4QA88wGi5ATlUwGiRQnJ5FbN0p71apzfHJHbgYCmRROfYwtcwUJ8ZEH9i0085 -llTTBjkV0KcFa7WL4CtmV/iZpbdrvEwn/u5BT3wMR6/7I8bFxOP7JekpQRa+hhH1Kp+9ZK9ZOO2n -JQl/6yiBsfx7C1YpiBQpPlJgLZ57RtSvQIFcu62z6IpVaUXpI/PvL3u+clsb/GKuE+NplW5/2LS0 -qjJWoSFUYARIwXIEjUvpXfv1PNGw655LsEtyA4tgqATy1AXXDYCAAJIi6AfjEQAAOBAUi4TCQeHI -LnPcPhSAA4uAQOCAk4IMwwAGAgAAAAAAQAAEQAAEAAjJACAA3wI5WuzTxN594q8+DbIbsMXR4KDp -kz2Clz5NTH4DaQv+pzE901inTyZO1Rq9yavsspdyAoByD3yfhInattKkBcSupK98jE3Ev1LM/0nJ -9Obath0goKPt43NdgCnXZWPvp7YwaJNVkGkp3Vabsm2tXFxliXZRiLwyEU2wJnB4d2KEBkyssNuJ -lKI+wV2ck+e0fGKOpk9qVewEcBGeYOlHE5d1ZeK7PSeSC/kEfEGd3KbtiSE6POlSGScoi/oEV39N -nNeSifmWOhFb2BPARXDylR5PXND1Sa/KnSAv5BNwPW1iuzYmhtvgRFYxnqAsqpPf9D1xRssn5Sr0 -BHZhTwD1oYnXejBx2VYncot7gryQTs7T9Ikt2p4UqoQTrMV4gqKvTXzXx8R5K50IL+gT2IU5OUyH -J17o8aRFpZ7gLu4Jsl42MV9TJrZbcyKwCE+wFsPJS7o+8UXfk2YVeQK+oE9g9dbEcB2YeG2HEylF -fYK7OCfPafnEHE2f1KrYCeAiPMHSjyYu68rEd3tOJBfyCfiCOrlN2xNDdHjSpTJOUBb1Ca7+mjiv -JRPzLXUitrAngIvg5Cs9nrig65NelTtBXsgn4HraxHZtTAy3wYmsYjxBWVQnv+l74oyWT8pV6Ans -wp4A6kMTr7WDE65+4udCEKVj4PogVo7OhqrJOVxkcfIpce2Xz9EGxNiRgL4PRheYRAiNylNqdRsD -Z6HoIwQi4FMMdMoYxAt5tlUp9H2cAMYDenthGnPfpLn3NtDeyGkmf44MJt6a4lImg4SS/atOX5Ng -OVJbkviXD10weuB8O/h9UfF+wDlahqJLDELuKUuAYaot+miAPP0SsTPH0TixFCwIeTapOACwyDPW -QpzzZzONEdIVWqCxC2ovQEmAq2VmZASapwR9n3sNa6pzlLbeAahpTUPI4mBmyvyGxUdzzidII5it -VO0rc8boAG1AVEhArgmBAC2fIEkZ8UF+GMlrlcokOyJWGZmlE8tAiSGy2Ox6jFGTiaDrdEGHYBIk -4WEeXSyTQvUmKMOP7kpcPOvQJWdNpECHomlLks9CdeXUY096XqQDzA8ghEKskdsAOGI4kmnXJNJA -ZV8VuWWzeH4focTSXVa5lePayQ7EjH3NQiek6p5D3iyAak2+00j7JfRK5Fh6jwAsXjJwAu70/Dap -YrVwyGQAK0mNuRNTuyY01Q2eMSYxEYE/YNXYDCPGGwpOFQhDyBh4CHuHw0IB0IK5EifCURogCOQS -DavOa7MU1WiyZSU6xZOVYErWdQ2GDCeE7Akk+onOHGT4syURysRwAIvActyweDMPco8ObNafAFCa -8yQNAezebFv82JyI6KH9RR0XHlLpsQZUGpKQ93b4oQFVBxTWOUCaVV2d123QG4oZ/208wePf5hA6 -g+sh3aj60V0SkqVTiJR0h8RcUKsExtBnky9YfmE43fqLNNT7V6aAyL8zUp4wdnxtw01egZcZMvTE -bLmveHm9U3uc1vVaUTf43cPtAQesD4AnIAEBdfCZ5B4Az/8CB6jA6lsxI3BwClvyD5vvTy5BPhph -0S6VjpljX6bzuhZP2aFkamclCgpjSG3E7pNurqgjFWsuZohDfTX1lsb4Fl3tHSY5NLHJ0WgMPvRX -WOheM5dQY3mTpxKPrQ0aEhFMaOdoUkxXLdEMQhya6RuS/GrfLksn3Upk0Wn0+AkWE5BzW7UX2T5W -8ei9t3ax6t3C0plSmBr1fEqqV5SrdQg0D04yQESuOOWBRzJDUz0TWB08clFI3H+TQk2wLYpXFnuR -aeFm5ECqFY+nAvPZXQRKVvzxpD/YoQJ2dMM9prydSIT+1mG7aCHvGrK5b1GjFab34gx/LUOB6rQV -xZN6ZV0kRB8klaZcbsZNON55jnQJUTni9mMTTWWkkP8sBWQHGEkyPoLMSrxK9gio/H/nInnmpDOW -gJMMdYhUvZljLngWAnfN9fKUx2XYIlACb2IKBCL/yz1ViDMn2mWxPe3c9xV7177vi4SKj66tRnFx -cHjq8y8PekeL+OBRGH3ZNFTwV4srCoDOqTwRNCF33hZLm/o1rSZYBVjCLrrh1NlRzOITisGyih3a -jjWLU9V91lKy66ykMlAjRfrMrIfQepmTP8gJ3DRUBDmSRbMExcIR+Ud30RpIo9QqytMTnoOn2xwu -En5X349NBqCnruNmwResfjddAI2MYfn5IFYcJJ74qDUHtgTijAxLW7I7letQDIoaJW1cXaYLXqtL -Rgg1bkNsGIrY6tkN+pZNK130HvUlHjVuSOi1AAQg4iO2HibfjopGKMTeYgCrMJb63LSU1aHKTvp6 -sWQHMbsTMMATNh1bCS7EyfCUTWxFRr3cBWzo0h4FzUrVN9jvApwhkdDBhxSr5diNRrJqE1HfxrKL -Rm+JIS3EowC6WE8Yg0JlA3x1loneFLM6YT6CcAqDtmcx0I0TemWQREML0KfMLaGS5EgaHrs0Uz5Z -otKp8ffR3eBt12Qd8kdE5UUUFkabm+UKlG4EnneYQXIwV5gikIQjdABolCwGEkCOpwBF4iIDGr8O -eoAHp8H/VKT5zd/BTBJ/50zaCBJGeNQoUsO0czDEZkOSc+652jJAOFEeIGmtDJ8GLHW+MeNfbLSC -tWoHY0WUJpw1QtTNjbQQRPIfdkcFjlNS54OectPa9EpL/KnWOKJKgh7pfVlNrvBZ/AhP9mMNPaOR -JXhuTiTj95zgXSGJ04Je3BR8bxJtWOC/mJFKtVoG3ctH6BT1NdBtRT10DtSa1lrzsF8ZT22JEaav -5uFvUFgp/Wus21AzzuUJssybmz6TY4UCoTLs5U+W0IHDjiBsJHfExRxZej70c+InC5ATXxIjzmDt -BtT/QguxwEE/+L6Oom8v6dA5zwAsL3/w2gR2gam6Bcbd5XRTVDG7T3fEmD/Jr0jakZM6a0xxz9iS -dNMEiidjbm06XqVxK2d3yXbyrhMZNbCXxPYJ6ouH/DNCRv/7IZ+i9qSc0H5F3uMyhs+IRfG9KhsN -SCCzv8NfwvSpNLLSkgL0jqAyj/zeEN3zLugRrarqcTz8h6TVwMIChv4+u7mGKKqDwSWUQdaqdJaQ -NaYZ8wLOmfQmrqW8i1sqgAhtpbxRu453L5FVJ5T+bdTfWqQXoy6vDWKcr/QFGLETabBXdfv8zDjC -7RdzM4Tf/A1ItPsQmGWBDL6WCZUgaPat1vY1M1NjjK0QPsiKkkIoeYlmKSXH3Eu/bVYSakQ9PBkQ -FHuZloOzvogqQyZ2hxKYIAReQabE0E5yEBcW3/uQZFuzYKvbv1EMOKdMQkVO3PEhSI5aA7/IDnzQ -dGxxwuHAzOI+0WEhwwoMjaILyJU+IZzsINhEuAIvLFoHi1movyJI0J8GtQG6FoR3bgrW4AnhpCyP -yLuW6AYleh0JYgnIGFj+iFAm4H4IFDzujINhRD0BXEfyM8FXEL3rXNToSf3CP6ckg94m9i7IZH2z -+Brc7+SEuIHZ2N7HlT7AC6rKhCmJug8hIIyHadx61j9RckFGL09bzYthGhhh5wPBW26aGR51Nvl/ -Orul5qV0aOeB5ZUBU5Ct/gc1P/cBUzzu6f1zMP85zZajAjHxtfSY26oCGCRr0ngHQEf9aJQMiwoG -Y4/GEdHCxgzlyXawJPJXHjna+gzu9Lf/bMEV22VUsSs3WpL//HcN27AsAzKSiEyLMlKLCSym702i -iRmfPLsSQrMo6il18Ud75u6CSTTUrapHUgnPCxChmolLLEUzPrEpnW4fI5OYAvXQE5MEyaxVSwVl -JQCv+d/kslNmqdPo3Jw+O7KIDf3sgXzbhvuqdLOfWYQSjLTpStKly1/RtHuSYkTTPfbDcVBBYemX -97bcYCknI7+LqBIOQoI6fL/Vo39FoEMMPtPc3ecJ8WITGZTA/6RTNB5WCpW+JnyAdBIwrH39Sv5s -5LNH6QNWFf1cqpyd4vN7NpheQyWCNLqjqgLZhgGxi3QLNVO/Hg2oX2ybDFGalq86/+8cTXITc8FE -9CuG7SGUz/rODtOG2ggUCDGKGFuRoajgrbPCrYqw4+YkO9CLDjvKnddwkmnBBJUI9NxDodFjc/Yq -Zmk6+uCr8O05BNV26ofcyDBS0jjq5bgZKM86W+J0UCAbH67zktCPRuTsoePXNEzOYPxl7uAIGBKM -BREWsL8p25gC/NeQZFWmvBe6YdFAxYAcgYLdHUK3EoRUxOl2mj+BvMGpCUiXXsAjbg== - - - /A9+Zy62FPyM6QwpIk0sNxtXERAOwcSb0aVS5RWDU38uhBmqwnNiNiwxSmhuLWDJkezO9Yv2BuKa -QM6G+w5Bd8ZWWRgYCleD7t89G9gTGG4AhcH6vD+WrjEmECb4L8KfAHf2B0WD3DikqKSLCE1WNrkF -Y+DZBtTuYYAIom9qvQsrTaduwc/JOUH5y6nBGUkwHJiQg+NA0jq9Gdcjwe3DCHsd417bHTj8kZJm -jPrLnSNclVWE4XBQA2N0VNKSVvuMuTJq5ttPnAhS6jaXy9/U9BUgzCa7v6oHt5VjYTDk9BfITSI5 -bjYFRWq5pVEg8/mQjph2XkyyStAb9UoiJo017ZZ3mlaarm3YhcJu5AIRpxr8iSFSWI3cx+0S0+wP -Lk4WlCpWcNu+ZJVt/K4DAktKVgEtIF0TjVpjXA1CfZhBsXuQgXA8zr+MGdYA85jVCdTlED+bUXBn -qkaMctgXWWmtyHEvnnoKSyVkih+5RVYFXIFB8qz3mciG2Bobw6OeOqJdcbnklRxRuKLZ3lBb/aSd -FtOf6D+NF0EZ3n/X1UN4KaUusgfVCzjcVOvsJMLBkRgWKTFTgTd5XTvyNI30fUGTRHOZInnjwaWa -Pfn9a7ERI6PeWegJE6P6pkbeKuyfamxUnYEqOk3B5LCxD6HcIM6hK8hKwt9FlmsjSg1efs4/gvx4 -wBEniLub8N3gKtC8fjV1+WrmmQ6Oz2M4TDUPXjhohX4FQAETxWoODV6o4m9DptvcUnQABDVRTPQA -10LM50gSmCkWZZYhgDDD53t/7Uz3dMAZgPA+QlNHNpCY9IJnYZoKv2hxu6QXtvUbKxDhcmUPX5Ea -2CQZEmYHgCzSeU+Lci1/TP6sSYu03sQQmgL1knbrD5Tt7Y24pcmDK2Ok1jmcANOXfvZGfQGJCe+x -Bab4RKQY3G7lges5gW1IonqMgUIvZv6kXUxVUkeurB6a6K37NsE9BnsHZkKj8XQLOYFj1u5KHIEs -VuSZu/MM4nAZRm4Z0X3DLyHRG5cSYzFbWMXFsCP8WKAQswGSW0izHSvL/KuFHRXOvsxF51jZqdB7 -CcjBMtVSgIA/xrhtV1jItqucX6+WANBVE66tJE1IaEeOqJfaVwezTEkzTEodeiXZDdQ8BJ9uun5M -9i2V7zF9R/DSUcO0AtrYE+xQF5ZlOQTPT+gt4RHAYH5cvIdc5tzbgaskXeD3gGR2LtU+xBnlqUSb -DawdwKE3ielKirSdbcCYp7KoNFUe4ow60XkBVuTsrnkNFKCANGvHEab/bHCHIDUgukoFj0VKVNAE -3eZ93fEQ0TklSTlfpWu+RKrmokC9n77PXCluyW2nmNLv14J0oD/Wfv5MnsY+PX1ygSYVP4GLl1qC -CnAtsAFd4iAna1ievkhDoqaQofcejQiiH1a+AdCpA5r4uhrLtFK3ievQUfPWSbepJ+9LVVC5onAz -8Jz6nLi4BFnPM5vYxbngLjWmr135CrgMR/mdErSILUfocSSGXqYpnAyH4fwc/Hvvfk+5b+OaLNyz -byV4m12AnNFwGdcv4Qz3Vj5oRVNI/sw7oNQ/WaB78kBvvr0rw4vPgyAKnH1AorHLkPPMjlTVpvf+ -WkaF+eZ0QVkT3KC6R3YbhXI+bahxxfzwdFlgcLSc09GBtdXWE28Ch5PBFr5QzmBLviNMK7/pbcYH -WUCDf2DB9FKqCFPyk5lhHupSFEVx4bfugos60VVGf/OQ9pxZkToRmz2JgoAOq4/3Iblxaa921uHG -wq1S6GvkmRlBIgubxSLL7xL2WBn5QESP5ju9VXRgnZ4FeT928rr0bKKdLv0/OFSOkiLORLdv5lRV -MFw+zTUEBO7PHi/8d8hl3ssBnRR9NQj01SnHMm+BaDwMpJZ6uoXsYIcBqstHb/AdF1RUenKirC5w -hLKxJMTElu4kIjohovgjnW6EEtjo8Bhy6Fk2LyL6j3CyLmPlnJqEjDRsR+8JovijR3C/mretUK7I -savD9yMBNao6hrIz3x4ymh1tp8vBolvF7XFNnkcjPT+S/BAXjr6bJJ9h8gBLYTfj7I3zk7WYO8GD -zU/CZ6UUeLqDyFHeBqNqmXcPL7DiCKSppXoyYKEPxju1lwi9wQUDQFF7mDCv6Biw1CIw2JEIHe+r -3JKqkL0svgUJXX2s8Z6TwuKKp3W9ghTtCOAY7UTMe88bpY8xBByjKnRtL/n4A2X07nag2dsvRvqt -NVSoX9imsmHEyeF9YX1AzEbpkf2alNTSI2MNO6L/WYlg0NuFMEnA5gFx2dEGs+8yucoZ8fc8FiIH -dQdnUvaP8gvsEUlrsm1cWlFWHITzZeLBS5rzh/eLPMI7E5mAWvjPsty6ngd68+UKDLP2ErLoosfN -PNFUcwwAx4aOATypsbfhK/V1gnpqw/dDpvP1UYym0cV/ub17SYc6ietAE3kb8y87SNTlCIUVqTIC -AilmejpvAxoRbtDksO1KehgUdWMvBj2n5VY6l686pM+/leraOHGEhLWaSOKcoBLrSqQG4XjDoB/p -9WNAOyJSX1JsD/hnAisVRyup6u6XKwRm+990j5YeAEvVPFNo05A2dslI7CHBvC334NYikuVsGrte -zeKSztvDLgMPw5XKTADJ8+SAtWjOQBVxJM8UuV8k1HaTYexOjSUM07D6Zahat8A0PSaq9mA1C4B0 -zOdnnc9FlQv9ySJII2sSfh4pW3pjPZfSXNLfzxUG+gL3NENaH/ROqg18YVKdAtVP6QdUDUVifI71 -uy8ERBXwx6Pqb4lVkHN0wJcQTP44MS1Sf9ytmBwg2hXvsT1ufaEXguNjAbSB6OkGiHrhwWn+KTpa -7k8DGVboHNSAorSBZlZ8xJCecSY1igFQNIyVseE2oNnK2ysiftBEliiwSxOpIm7Q91AItxnDKBCi -yF9ZeJoBMMnpVjG6Blqcn1Guii4D7iaORPsUP/60D8VfLICLGzDvr8RSw+uftX78Uwv/XlG3qiSn -rVG4wHMrZUALJvqYeJ/ZBZ32M2gGkjBJqEEUAiC346IIrcHa2R371uqly5oAuIo664yeY71ycFyc -Uxi5FeoRmKWOoK232RlH1s60v+ZJMuaDuo+u2B3AzJzxrj6J99dfMaQqqZuRqn/kYF7Rhqi4WMdM -rf+Ly8gazEDgVmgS2lLL/vOpeGfeElO/xQZv2r+JJdpvELwyvx9Ts79ucBIuo9su8vEnEn9XwDnV -fDOiqUyGyTgT5jLOGJdDJcENmMjqQauler8KTZgliy8U2Emnb1GrLQb1DPyBp7Uu/AaoDl1FRTj+ -sT9pNpAqOX39g+YR7bmjh9063ru9zkHAOhlXvjhbgzuZWxHZ1fq0vXJyR+KLO26v8jeoXenMmcrE -OxQa1X1HeoCYIjjuHIr4G7dh8xqusy1q0VqFWo68oMX/ktzNZfHkwumMA1krJH27geTpiItInoOZ -alz/hqMUAsEPUzq0JDF3jRvYQX8IRIaKjnD9yz+0kOCc9c1Y/knXKNXzA4UBdL1bvTIjC7D9B6g1 -5TdwLWrIhtBSpUxSbM9zCPZhPNHjtUB/3AQcf3V9rGvr7Ix+Pg1i32DgDguJzDa6RxwN7X7UfLH6 -CnhAQvK/7yTMCoxBfRURkdkrcpwRwByYx4ItLGjfd9xs+TGQm1/XZrT45VkyAvbnrsOWyOkEwaDy -Wmfgny/XzngscdcvkJMHrIvRT8JJLkQE9+t0tOUUfTayx0pPncb+iwu2tJJsWQGN8qzH7e2XrjuE -iO8OCjL6VIMTXwOmrsnlzKCxOk30KYN2WcdioEA/vzMJRofpnvMYtNQODjGU7mLa5fceRgvbqO5z -H9QRKgGW4HzZ1Pc47AybzAAkjWI9PlrvXIgDhYch4UaoWh+k1FP1X33tXMFQTdFsWzaCgn9plBuh -c0fAWfrhmeWTZNHPBXdk1InvcXl2BtBYB9rqvqod803Xq1BZh5QDlN8yh3Dliqc3VBiKdLsnw9UT -bKMBoi8KhaGb1YLdl5d2sM70XGnCV9/mxxiZ9ccmUFhHwxXNZltsrlH10qj3VbN4+P6D8cNPB5O5 -GqIRXHzCjhrbxsGn5C0PHrpkYOsqWJKPDOzKk17Aim8c5bsXwRaOiPc6ypA6RhwJp6w+EHXRBGMo -AKtymxlkRHOWckKKvskzwKucdgGom6VCQlxJiqBEEkfI7TPgB9LhuLl4gaF4QLlGU1H9dOipdncX -gRyODClMD0/NhwhCENsmah432jqm+xO5enaGnQZyT9xz1zwEaD/aOeK1OPCv9i9DCdRbF+/BiwwH -QDHijaeTKQkVQ+J/7WPkTaBFg1KePtxI0fzxW7xmXk2YHtGnb5xZ2GP6JN/Pi4yJvU9u4lFQGU7A -eUTCKZOW055cutkj6Z6l+xqmQnjJOklthxEWWGVUJErMkRgYg8D+xl2jMDeycFKFitIo8vyRqJmF -X7Jkv6is6NeGK8lqyaViYFctlQfaLP0RH/b+iEMYV7icd8Iqeem9ptRLIGqX56/XwRdja5E7Ah/h -iXZPGzIImmqnSy6kzsBRdCFg1AACX+vUiFaea6byTbof4WsRn/H+uBpXbxwBAQNKzHZqgV7gI6ki -Y7j40UGBqrEEEcSA2CYGaGIJ1WKeFnXETgz0iSO3X2BEhxdptUMsEEV2FP7m6uXQb5+7BJbPku2A -gzrGxcgXulY1NC7j1cc0lnoMMXpchVUE0ENJJN19BgE/hK2zhjgNTEw45m3krSxQcuCKYvAgk1Zc -yLG69l/XQASvCPnsuEjGgCPD0aPxbFb0H9zsNBHFGELHAaX/5mIzkhH+WTAD55DCa0zHkRX/qjrX -1pjdTqn2MM6aXyznIxy3dZZD7Qun94ylFi+N8TAKrkxcbu8ITwcJ3a/uxSCe/rbxViUvvuU4K9R6 -c7z6rCtKMgQoLquW7Kxq4lWJuLD9YwtU4EEH57nGTObM5U3VJ+VO+OaWhLbt3KMKJ6kmToveIw9N -FxpHNL/1TqFF9jqbhIxqRfFYtgfndQxA8D5rF9pIkMMegRVLGRp7C/b5OpwntJpqPuTAG3aL7o3A -/5F1m4D30nQWJUylru3BznHKriOIhrf1AHzICoq1I35ESVvl9mmuTbi8xnaCM/aSs6DY5Uoxl6U7 -Nj5GNf/+ZWdspkL+AMwb0T8bHVALYRLo0VnKB3Y0EkTzk9VPvDOI8Sb37AK85LSSibcntATNDU1F -JIzKnMaI3n3oMURPLIp0PPtRHYDcc8P+vJTnXPwKK8SGl3hswH9jg8rsNFGF+1Xt4HyfJj41lsyS -/QttpNAZIoiSlj1X6TMW14AgYCkosSyTxcYY+8pX+N0/NYqjjTdr7CIgYMebQSV53iPJ/WAi+pLQ -yT8fScj1isvU2m2RTJHqBxhKVUyIrXGsjUcY/wJTCGng598unt8wh9o25K+galCclbknh3sE6nDK -zwhMBgDDxhc8LjKAGQNAGUCL/bZpvadt+b5j8Hi+8/q+53y97/EtI1OnqFOoqFOouA== - - - Yxre7mPdrvFYx/M6pllBw9cqVqSYqfNcRkVNs4Imp4n7niZFnGKFjccpZviZeIbX+xU0N60FHQCO -Cq5POgdVkQD7pCfMQKk+7CvR8inSFXOCrijZJ42AfKqoGZgBPCCHCUgJ8MsCO3C5k94xSgrqAutF -ysc9SLYBNGpIANBTcRUEX2zsCFQU2X2FvctAOraTiyp6gATn48B8o7kOrtQKAGOLJThvx/ve2/yN -63pu0zl95zff7z2N87d83ypwFSvsFbcMT4PbMW3zKWIZXQaP95rOY56+9V3FjI3P7PaKFDpNinjF -DE2KGK9xPKbzm49vvNdpVtT63ee5zOf6ve95niK/Z3Kau+5n6DzW6xUyscwtg8czPE0T7/3N9zVf -0zO6DH7j8QzNihTxrQLHY35Poce3zJ6rwPmZmjggwYRBI7wSwwdYKnagjYD16TnL8XVwBj8N1N/v -Xe1737AdUKAACTUEnuEJTgA5OoBYcU32CQIGKjPS4O1BpgO73T+g4OzKQAuHnrGnFQ/8oakb0oUF -YRQJ47WTAdK+pFFCRTTYBAlluVHwEAk1xWJRC6WEegf3+xawjToHgaIUDfDlwPUpCKDMwIQrgGwH -00/P4Pp0g2ynC/h5+gyoCQKfKkBjKzjVGV1tJD49g+sTPxC5PvU4QBIuYF7z44VduALkYgBkMXA0 -N2RkYTgyMi1jNzBlLTRiOTEtOTQ0Ni03MTQxYTgoYTJlLTMyNDMtNDU0ZC1hZDc3LWEwMTdkZjg0 -Y2IyMjI4OG0xMFNWR0ZpbHRlcg0vIDoNL1hNTE5vZGUgOg0oZnhtbG5vZGUtbm9kZW5hbXZhbHUx -dC9BcnJheWVUdXJidWxlbjtjaGlsZHJlbi8odDJhdHRyaWJ1dGU7IChiYXNlRnJlcXVlbmN5MC4w -NXJlc3VsdHN0aXRjaFRpbGVzbm9TbnVtT2N0YXYyLGZlQ29tcG9zaXRpbm9wZWluU291cmNlR3Jh -cGhpaW54MCV4eXdpZHRoMTBob2JqZWN0aWRBSV9faWQvRGVmIDtmcmFjdGFsTm9pczQ0R2F1c3Np -YW5CbHVyKGJzdGREZXZpZmVPZmZzZW9kZGRTcGVjdWxhckxpZ2h0UG9pbnRMLTUwMDAtMTB5ejJ6 -c3R5bChsLWNvbG9yOndoc3BlY091c3VyZmFjZXNDb25zdGFudChFeHBvbmVsaXRrazFhcml0aG1l -dGtrNDRrM2ZlTWVyZ05vZDJ5NDRCZXZlbFNoYWRvd01vcnBob2xvZ3lhZGlsYWFyYWRpdTEuYmJu -Yi1uMmI1MkRpc3BsYWNlbWVudE1hcChiczN4Q2hhbm5lbFNlbGVjUnlBTWF0cmltKGIwIDAgMTQz -YW5pbWFjY3VtdShub25yZXN0YXJhbHdheU5mcm9tZDVjYWxjTShsaW5lYXRvdG9hZGRpdGl2cmVm -aWxsZnJlZXpiZWcwNTU0YzhjYzFjYzhjY2MxY2NjY2NubigtNTQxQ29vbEJEXzZlckVyb2Q2NjRf -KDc3KDEgMTsyMCAxNTsyMDAgMjAwOyAxNSAyMDsxIDEgUnBlYXREKGluZGVmaW4xc3BsaXJlbW92 -Y25uNTAgNVBpeGVsUGxheTsyMCAyMDtEaWZmdXNleWVsbG93O2dyZWVuO2JsdWU7aW5kaWdvO3Zp -b2xldDtyZWQ7b3JhbjVEaWF6aW11OGVsZXY2ZDFubHJlMTUxMDAwMTEyMm5yZWSDU6iilSUzAwAA -AQ0B4ggCAgphkzBM05IyYQMSQFAYDAeDKIpBEYZhAABACAACAGAACAIQwGAQI4YAAyBrggRUGulF -wuLl/KrKKPRR5eGpWKsDqMCjodlK0n0BIXJJEVwkHv2GPLOz60JJgh4UVA5+aFCMDXTCJ/cQdFh0 -9jThhAJlQe5iwt6jbuUOGr0l8hxQFI4jwkaLWpoWfMe62IZJPfq9SG14gdFxBpGJXMyCI4JGi8oc -lIW0byXO6j8HZp3tYCtdgoDcOz9ooq5dKoVIzc3hKKqBdQt8KeFXR/qFyudCDb8PBtxMIwRcwZJh -SRAtZREacjoqesoiIF+Yn14gVHTrVjOfScMO2QgCmqDZR5Kx+25k0JCDeV+mzI5MO1M15noNv+UU -6LvBrHozrFzPGYYkGFDqVG7T/vAhZ8ADKTpfCgpHf4GCn3yhQgqlAvWxxQ6DxfE4BicgW9LrIJFe -kHz06J54VDHwD70WWI7oxU8FZsy5jl1dSU8SN24vy7BiBY403wP/H6e5ljVF2EvWRGK0thQyisiN -XYlQEZpVCWjCsLBBnFspxVN0quU4vGeYEHWRtZI/NmOZRi2DdRc2Cj6RJOt2TH3C9/dbmYj2d1VT -iCOOsR5YqQIY+FQN1wd+61iSN5AAKKPiqN8dtNpHtRq/6oQCW4dzfefU2eN7yOn0UAcdBEASr8Jp -y2GFHGrRny74JlB+hdEtOp21eM4qh8cqxgb0BPkl8+YGAgpSjQ2YO8HwLI436XtNSPRdQgbDlGU5 -VQWF4YZTRB0RXBzwcQOuhQE1uBscYRfsMc5ziA0/d4KCh8yN3Qx6hMUT8qbDbSuNM5uGjaaJrVGy -xL3Ha0KnaKLS+EszAw7heaN1s3gqswF/RNwiiXjdX6Z8B+wE2R1UFC9EHe8IkmmSmYjYBABn1BEm -BU4U0wMIbJH7MGCMRLk7O6M+wxlhfJ3BjLtKSbsxnKjnbztIwmyXNokr8sZ2k9oOluDknwJhm3kH -TQS1dGwGhpH1mPIl7/dCt8/3PfcF/EfQH+lELMIMSpq30KqSD0WUsAhHTy9wC84ujEfQWYuQTtw9 -eccUgVyBBAcZ0ao4yh0qP/tlf0F/ohcHloSz+EUNB0c0iOC4VYBwpg/yFg8ShLrN9imftOgtAxle -eDe+WjTjbLdQP5IOim/j+o8Jael4PFI5sJncuD7/4pp22xL+fihUWfTJQlxHIbYIq6HgzRLk6WGR -frawBM9o0H7gA2XWiVIi9E4Ri12MO7/SjaUGo2aKsYFOXt1Dp+MscLPauQCFUR3yBJnGoeszk58T -qcHLCEK8YvmxrlJ8Gtf6O4p+4PCgGV+cVtiaaKplzhi7wpJ9kWGFkkYBkPDKXkuByjMYVdRgO1QB -MxodjiT14oqtLF6FeyF2htPeDeuFLBjWrtjQw4miWL4ULXUGt10Mo8ciPSP2IdoLbOcFK9HwaZC9 -EUq6Bn1S2okvnEUIlAzhFVYtBa0w12yKg4xTrZ5F9XobhwKLuegKfHTTlc9sZNIYVocTlbEbUZzN -9uiIY6zWYmvM8z2PulDU5+mUqYQjdAmPuoDbhbxlxaLtLqEDO+ezPbQoxune8ikcEcdkE5nY5sQt -8zJleiPzKG5RbdsV20w2QTq1RWHkg/pciVeGAgpDV/0GB4HTiLi6wzFedJzQh3QWZc0HmOC4L/sv -GP5DGnyJH+goWMpR6T+hXrQEakRZV6a7VKno1JhnlRrMMxm42pLlpDRumO8i/D7RptaUPKUifxqF -poQspSDVL4kvgX3JRpqZcNQ2ZrARPqE68uzz8swuFp8ML054QkTH4C22RygtZQo/Omw5NyDmOyUZ -j2EwaVpZNKlwaMfl4WMk+2ghkCtG06B++oYxjKt3xBkJu2C4Gsi+dr3gClEX4BAAokni5AL54rXI -cIwfNGgZzcnY1I9o2upWEkwBA5Bp0XCrDcuGfaFNyiW5YrxmS0jnm3N1KzD65C+mj1GWaDiM+Rr8 -A74wGhSQk1k5wDgWWiNv/SbaDDgFZiM7qnBZmmKfMWEEo/u73eJjVtlvahp9GJopi/a8R6y+lwoR -StpBZQ6Twl8ClBzSk6WLMp+etGyC56zR3OJU1z2jOX5VnSbZPQmgDzoUqClV8bF8SqgyFjH7qiBG -rFQp7DgKhpvHsb+ORhMRagbEH+sD2/BVsQYGoOro9J4WR5dGhlGpqg0OTyk27P6E//uYlco5Egxp -A+lpXQ8kLJ803BhE7CSlBck6WYy3KYPaQmtcZfkJBmaigJm48RQDVmASRo0oaHN7QfSdFwi1piCR -QK8aelAWOTwIk4aLNqg6RTQEDSZQLI2+TigDa8hVoaqY5F2aWbwYt0gHXQX5xyJgQ5zHfDOWZ9Gz -Gg2OE30LrKMH1tfpv1p7bYWoZllTczcaM1jGwiltGotiKK5slwZASkJmz1+r8sSTCAl8C34Nji0s -aC+SjgdHP0sE9ms8SX0HI3POWB9MFU3Rx7nS5RGjsM1nyOlB5BIFFFFNeDIFRHrmhza7/zteM5gA -61YG0wm/5Ml4HrUYmoQ9j0iaRrHMU2eQa9T7OXo8BJFS551pOGJ2y8H6Ex7D5OEQ8JuIXfhb6lof -ID7euvWBJUhlAw5oPjdIFFFDsGW+84hIFI6MDXkq4AxoUBIOdkPNBTjwuxjoxEPwka1wQHTO215m -YKY6php2TYHCMI7DP2njFM23JgAqmo6macTta2rOpB63bwdohYcGcEUkwB3aFELw+g3yF6uWQWiU -bnhV72QZ2FaMzEgrtx63apwXyy2uYwpxHsyBB8ouQIZF9CUx/blh3grxvAyT5/z+pqZUoyykoBZj -Q09hPawVQ5wn2MAOze/UfZNDar88mDTcmw1FhqzvxxJlKcCA0FZ5eUrAXCd0sG4ysNAMckA5ifJk -4EyVVwMunxurEEtfv2AO8zbDqdab5+IlZzxle8gB4+KDuR4O4ib5U7sSk7GDfGv7EaSW30J+08Cm -rCQ5fwyjimFTF69IHADYG5GF0lYGsy2GVNjv/2GU9FrbAmCwah2fRQg1gzLvwLN1jeSgDpPoUP65 -jK65+x92vsY0VnyND88cUH4m61PYlkcCKRLRT2GfPOCa9Slc73mKhCLA4VMo2EX2tY/a4ar93moO -KB+Z/Nfad+cnOgGgn44sSXv/nfpkLJ9eA9QvA/p/MTUq0HAIAAbqjgVY+172o8haclJpnt3X7r5q -OU+BlFBCZPavbBGBgYEGRsQucANhAzADSj3SlzXjkMQzKvTM2VxCGAXdFRVsxiFxuGxUeAXEwWrk -dK7TdooE4jAqnJ0ybcchU9KUsE+OuGZyvSZrdqM4yxqksrXmwUBUe0esayRGWK7HH6aUzraxIGvP -+QdiHOhwJA6iuIQ4EKhjQZSffMyGHxUQiGrCg4wU7SjarM434Z1RATEOokP6HAfFlCvKgWC6kbuR -EFUzHQ0kkNwrJWw1RKpfof76Y76oRoWmzyhGMYpR3I5K+Hh1pmKsA6GDwY+YKFEtqx4V+GNBzIRP -CM3GQToz+eOQe9kWhNmLziRL0op2FJIpeipcsr/0SiLSjuIfEMYhlRP3gguSJtjno7fwdWWtjnh2 -1m4cDHKXPhJyk5ZEQRsHUZazlr6xkF++dN6MWNaIUYjtxnDI/XdBs0eNzKQv18TkEs8XMmXilbPR -5RL7mkouxVRWd8i+xDMW5PsDHafSjKJXjmckWFgZiKJc/WYs5PXXtotUt+vnEqmoOw== - - - p5e0EbtkjkLlK8unhyQWvSDXArWs8mXbFdVJteVLZS3vkZZz/Zacl5ejfuccbWRGMfK2o/ww2Wcg -RsK6rNhGdHRGQsc+/RmHj9hIY8Fz/0jvpz+DgY3sDn9G4kd8DCd55GOB+ntbqg9mqT41deR9bwbZ -k4q6O+MweLyRPVIZU84oRvErY5rTPzRynYFo2pHjcN/u0g3nXLcHhIHQGuY51GZMzcUb/Ugn8IaB -JBfVyNN2PmSiaVey2fSBGAfREeySvLB9i1ms6bpHPmL16bO7TIsRDCQ/YyF1c8k+RvfZ6/4Ivk9T -94GQS7sRZL2c3vZt+0Rv7GNBrkey9OMgryabkZC2kXfJV05TaJVPvHJbggORTSVbJF+lkh4Jq9FA -AjzDwrwV3HdmXyfVbsrVNJX84yBHVa+jmhvhjwXpkVy6VTpS2UiIynGPaM4/I8YjOcIjy5vDQLJv -NcI9wraT76s7qsafXV2u+nU6G0QLWoMJDyaY8CACBwZ+xkGDASZQP8ADAGgwgQIHEiRAIFMD88CD -CREgmPAAggRfULIUQdFwAQhswSZoQOFFwwUggFBBQ4MJDqDQ8KDhDphwAYYFFkhIODRkYBRQGmgw -IYKGNzTkNRwqcDAADVCIUDSwgAQhQAWKBgwTOJAggQGCAwkSGCCQ4MABJlZpgBtQKJKKyg7PrBIC -CcwCyCEYiEGYLRVy2l5iYytvc6Eu2O3GQe5XJdpYJY6e8Wrwl32MpB8ULJCk6lNgwbX98L/u11u7 -TfdoX/heTiw8NuVSrMTjxjqmM3lVFa9YX2I31RGpjVDrsnEYxKHytA+7G49U18vu+zEDBQ0NKBQP -GCAUJkiwQAYmAAAHES4QwQOGCRo0GOBeDRIaHnBAPhomAIAJAGA8YFSQALlgQIxvXVm4tUslZplI -JW11WXkGKCEOB8NL4CEYh5LcE7a0HKW8gADwluyFfHza+3yqGzY2rjPjG+0VzZmRWiyrPr0dP3l7 -i3LBgmKBYN3QrtqW7aRtrZfE8gVaWbYjsYDx8mKB6NfEEhII8iKPnIIFLSUfEywYRY3WiStRFwcP -KDRoiJC4AAPDAfI3EHaIk+0HgpNqsKwQqogjEHIsdlc3US4+hB2bINT6SYkg5IQ8j0zpb6xE3Tv5 -5YzEKY8wupFAMdTOgaAjWttG8ZkbRrpcLeraZqkVmhTnM+v/KG4+vISzYtbYOhpIcMz3KipuW9bd -X1Yble4hDARiIFYHYverNhA4pxsy4aC+EJil9OYl5S6yw2va7biyYpVyzG0IwbQPxA6E/G4gdgei -6dRK35Qj8cS1Zyde411dcbbV+/Y3xSv2mmoUKFkUoxjFKGwUg2EUhRQn93tR3EruFbWTzyuK4pXP -IkcxisFUslGMYhSjuJ0mHMUoRsFc0lx42FEhl/KeOQqjPEobiWwlGxUYUW4Uo0DSxBMdCcQBxVQp -+fqcTaMYBY9Cs8JhFLc0Cr6kRZWj3KYgN+k48N8jsQPCOIwKSzgO39NHUXTLncehlcXO9JEQ7LEg -ybdVc2ZcpCRVy0rrJa1GAqmPivmK1tfiV1XEoi8W3HqxcC63dG4qqd6MpVheTKy2TJW1SbnuHlVJ -sWXJD+uokOhUrgXpNiVjo/+w9s4CKetQ3IlkjqCozutKD6SCm2I2cna0c0oniIy/rVQu3eIJ7xxh -U0rdltbkTFObbgE1hXXGQXbR5JZxFImquVTNRe0xXYzsaKdz0LZz9WumI1qCV4wKh1GMYlTQ5qxi -FDkyOX0g07lu3TFxN+2MxJlHBRwrRpFDd1zjUKcbHgYyTJmZxDmkHwv0o7Ey5d7wjCIzb3prHGYT -TXOYutM5o5yxEGi7qX2IDGw3TXte3nZuTde2exn6stb2itV2c2/PrPNnaMhwlnV7u0O3DLfHyt5V -OcZz6WIVLZahrmaVVnIyEqK+8lxnZ8jLeTo85tnWLXIX5mkhIXMa8h3f1Ah5CEcQ2Sx50D7N/MS9 -PdxOTm7sQrbW5Osjd57qmelPLXkGBqTGBuwqiEBdL4O8Z6TuyKtUt31Y+FazLrvWyl3Totpjcz3P -jZj4reNzPjF3dw8tufvQsG25bn89ztLOo+JDvt1D3uz7755Ylay1i7jGR3xt28u2di9vycf773be -d+8uNY9vTcLLO6fVcpulbWUeJ5Va3ViZz07vls1+0kxdy7Rb2c9WleqNalvHIPyZsQEJGgZiIBDT -Td1SFYAASOBBEYGhAdNCAQoRMOCABKSCCkxokABJRJjggE94QAHCAw8wmwrblmzKVeZxXo+VKpcs -i2MV3kS25THT1DFUvhwFV23W8ces2gnsZqMW1lzCziNOm+qifp/7W+E7U5qYIpcOFa91NTeTXqxJ -L7xJfHKXt7tKa7yRQKSVG+ul2tywKZ2P9JubqmVeNdrbyZyQ2JT3y3zeOspyq93+uPqKpCMh2Jxb -R1ZKXKV4RWvTn30RIvEtU94tx26TXjTJTmzK888E79yLaKee/Ff/kaiLLd3UfvrIzn3LvJ2Zt1Cv -bLPEw6PYtSraq0i+l/Rmv8om4W1/eupsc2QvymEeQ7Xc69TC0yIb3q/KyD5d1LmJzJhGt6Ututxv -SWzao7jbVjGp4Memb7P0psZMha/pL6ix7a5nJU/4rJXOUvsnhrxFv1G0yZ9ttj+pIg/9cs9r0zfi -YlVubkOITEhlfPLdVLqpJ93eVEqjaL2eSe+PuEiV+FhnJ4c7pWLMdx4JeQWjkLtRo8yk2+jIS7MV -aalyWfnGZp01e6M9fe8EU7Pp6E4szb9TPWpTVis630z1zgS1Trb4Ekdf4AAFKDRYAAIcmCABwoMF -EhxAgYJCgwRYoAEFGoBAPOAAOlDBKPg3omOlx/K701RjWrNJFdP59X5tFHIXk1RRtqJuFN1ognxK -+g3nNtNvkOoNEiaYIAIDci81CCqA1AMYYcbGiMKHZyycojrjcJmsm9OYWDlYVI0zDsmDgzMOTVY4 -wiiGMw7U3aYj8ZQbzt5xaCIr3pFoMt0ah9dhJSPqXPF4b7GXOHHFeBzkKjmiKoZYKblpOZs9Djly -6Y+wPEeOE/GmPKY5wjcOcoY7mMWpucrZnMTZeiq9HgdTWaPW3tMch1W9lpFqQv7NRR5MHEYWO7oi -zg3vXM8IMyMfHx+Qj40uzSNnm5qH74h+t/YIFYUVSXV0tnfEJnXkOKQ60pRaT53fB4RxYL46NScr -LymfAhFAIsKECGQBAQ4iTIiAgoYIDA2KBvSuvCT3mFkBCsUDCBMe5PPuRpGId21XnW/dVM3Pk9ew -j1nJulaolVJXdYx5x9qLaP+N4kZxfK1mYlRBkGmIWIOGa7cKxuF3ZfMRAayt7q6q+jTgEHpcWtdV -s1STVGq6dse7Kqqsqbu7u7t7IoPxz/B/ssDWLarnMYNVzSv39SqGU8wcnL/wjM3I6O7Wdnd6d796 -LZuZFZiZmfvMLIoyT6mIekMGtp8VHh5/xLv/9np3/fHwmXmKqKeqWmmntMxsyzemPbOWstPUrmqn -p3fVe97vrpSXeW/L3takTMr//xmitl7uvq/4+PVb2+RW69empaWhpaWZmRmanRmamZmZmZmhmZmZ -mVmapaVZmqVlWlpaWpqlmaWlpd1/d//dlaCqXWnfZmZ3raHW3TEnM7Kx8R623d3Z906P4fYYCJFz -bY/udvN6EUXeJuZmJgNDYmpnZiZSZmZq6iVlZhbKm3q4x7pshHrJ0Iqnp6c3evpT1csdwjMuEu60 -3uEvz7realXIy/a8s/6uLidbpZW2Ve39nlhHvNWvJ0REPNMxHgMXenzHaHMM9tMZ4xnMzNJMj8Gs -0dDMbn3fbWw83OzMfC4OMs6xGZMRCRkJlxEZ2QyHeYQzG+2tjUqI1orYiI3diJWNhY1IiI0jfHiq -ysJ7Y5Vt3eS8vZeo77atpOu7pLvj2+TWOzsDZqbhr/cUta55vcvRJTQqRUVFQlO2Kq61ETw+Zq72 -5V1tMVpxlR4CE4sJNxm2dAkREfGHSEgYonSoNNXrjOpmEgBacxEAAGggDgmGAwK5WKqGAAD+FIAF -vpJAZDqTR4MkSaIYMoYAAAAAAgAAAAAARACgbgCo0PGqM1Yqkee40VHV+xaOsFlpRuDXBcMumU7K -3Ily4StIpXdQZKUkooAAuMPj4YXWkDwLQV+1AOivLnDv4ZrgzzP9k9/FJAMK4/dG50V8G32jvnT0 -pBdlMv5NqZwRvI1Ms/YSiUPv2tFZ2xDB8TMBsuSwI3sx8BshG0k5+xJ3Dp7wC35s82VPPRUK20Ui -1MGqdM2wW+sv6Jwaiv4AtvYem/gNTlxnwuQcYJ1RA+5ZH6kRlPfiSvmeXfhMTjzWAKY0mc4Y4Glw -2pvJOgINKUVUity5QshHhjnZuNk38W8RhgBbBCaeR5rs/IIJN60bHJGGzS9yuxH4gGhwt3WgSSQc -XOoZRRz5m+1245CeK8trDZad9KB8CKlAOz+cbiyMns13slCI0WBtRh2bUU961LDbxokNAR/cWdAJ -p9riVBsNhGmcZrqApgb9huvy35b9+yJY/Sg1HdGRSjsmSlPfIiQejA9GM3EGMwNtFsq/RLh9aeXy -VS7MsNzRwUFqGPfQNuAyhR2A/sCTTbLIQTqqIVreXEpFYwncLKq2YRTaWVFQxvPB2W2jQRSBPJZs -VBg02F76HIZMxKHuaNaErAmnSEBW3OXSGqjP/9/JsQEeX/RINQAZ4yJ4sf0AgEec6Cqy+1JTOLMD -bNxtnIVs84jqqZwj67o8jD1iWt4qAWGrwaEF8McXBh1+LP9BWgGs8UWJu0o+jF4+ohDzYNOws6+b -gQmfWeHLIAS41doLUHqBBGgicNNVwM489nkaUTyyM/VjbD81EIq5/PQYYCMvML1EmWD3CP5uVcgQ -dsoDmwcG1LoFXkf4g40+br2H7wIGuAf6XdDCUPxP7ekRiWpK4S0deDdtgy0aw2E/1nY6EEUiRdwz -LwJLBFzsbe9cILiA75y4NzFI2z34ZEdVqCR8cM/SNh8YrZ6aIr+AZUCmdPY2GyDHhlE0D2ezoB7n -pQnDXeUn3o662gEjfHDeedIsGiw5o5LaZGelaEmUeidfWoeVgGAUOyhADBAeLgKxCfgCed4TChIV -1+qvZPWd045+xf1TOnKSKkUFrtABw1TntFgc7EdsXMxzuJcwaxDH+PJc3b2kqqc60BTrVbWI0jtv -shxGp7dRGpKy42YxTJKH60kdQCLFEHnwLAaZ+GyoAEOenEVcp9g3p/04i26LYLeUipiVzFxEVgyE -P8/oJ3iVTh0aS3DECxCDoygUAsUBUphNuk7miAz0kcnETuIu3F3f5TWARdrS2rZEdZEYSpKgjyIo -RSk+w45cylfUXBPWzQl97Jt61Pnj2u1c2mrTYdVjGS57tYSvE97OvX6eOz8AWJ/EUTeXIm520kn6 -wSb3STEdBCAmNT/WL2uKDsP5eYDRVWCT1b2hUSMdHpyVlpYxCOALunHFHBMB6GJZdQ== - - - owKaCODjyP+9DGyWOe1xO5vggQMFtOCqVpdZr6Speyt2y15wjj6qdJ3EJcFgDvJ6rf+tKgprAGfl -iUKy1Vf1grEeTB4qfTlJa+6zmkJG9bRj92sECgw2/uM8j2LFaJZ79qB3nWcJaE9HSt9jo1Is1+tE -SmU1a/sVXX98qctp5Lk+SVDCIqyCy+X/MMkSTTG4y6Dz5DyPioegTGykhmPmm++ld2qh19wjkoYc -43KvE2mcZK9SO9SYfHv+JR7Bcvjagu3Pb8v5Oubm+UC90ogsbPgdBeLpS6gRQqhfoo/8kXiGxroH -nYj9H/WMyipS/7+NpLUXMRHLxBtL1dVwPkPTfSq8ajKNFajjvzP64XRX2hmONhR5bqRPoS7cgzJq -o3Fq8QvGi0X3QqBX+E7fIZltNfLPa5RY+AzJW57EZLc+6YnqsGfm9Ba9lelyfAy/p9QrEJ3MAgX3 -Fauuczc2wqRIeykL9rDK8rH/XhEUa5u4oIyymUnI+bRXqtikDjlVlIwKWDQoMk21J9CMNIhqQd2K -HpTtdPUO6CfN6Jj171O7ke3wUC8r0vlJiejf1DgkjMMsRQbKmFbkztxTuLJPCeBg5z6QNse0FjBJ -X0DuIs19Fzn348N3lSdVdjnspIQ9ALh4rLdIw/Dx11+dXAVht7gP8BwPDBH6QaYLoGkr8EoxqUXW -jynesUiNH6C91z6JBuLW684FyDN2tKTj9+1qx+U2cDdiVFGr05vJf1BqjFZC8OwAuQBUgA1qYlsA -RCiHUSCSKTTX6sE/khZ07xrPjAHBTSs2gqS3pwMvE2tmMCjUZzNZ0TDR5jMtfnJBA9Tq+htEAIzQ -VTJ08xNYfxaxxtEKOZVnBK+9sJbw/kebbsA48wGxCm4IN8kr5jGScdyUy7EHhEAI5tROVQLOkbxx -oN+TXYnhbT6sP/FPh1CGUi5JHHN/uUWY0U0iMgycfUth5X44/iTjeL6ivHBMJ0AyqD6UsrvMhxMR -lCdnNwtqnybyJee4y6Eg67qYoDHfKn9GEHapYofJB8aAHvs+SjtUG0Gt0b4C+qkb5jjHrsEvQBvx -Uir1HynjDnqLLtRxbaPyuBaeCK/kJVkFEmbwd5SnYD6MBRiysb0P2T7hY2j0YZ5l0b791Dc48AAq -oj9L/r9kKCYbZ1L40SHNPG4my5n418bU/WBV7pCsmlH4U1Bryeh1EYEgeiPiacNU82AoNDZ/lTmS -MK4r+OkYFf7+wO3sCepFecCzxBzwKNWKAufMdTb2adVxFNWyBbkcWLYb+eGl8+IH8VTbrVdfBHXX -dBAtgbC0ZEn6lZl4RHmxBYA5c+2pDr9fQHvNaOK9DIXyuAKIFhE7CfkBjy1n9NN2YRDbrtHUwAID -KlUkP6tOqAFkWd3Dil1Cl796ExbTzEhs8lGwIr6mpeVQwlTWCWB0TX4afNwXzYOaoXI444CB1kIZ -GQDQEpTaGF20YKdrnaFT0ly0vmJi8JdJYytKj3FcxE58FnYrFbN4AThKPfvgMwjNpBF35LJvLyQf -qNchQE7E0HCx+E+Zj1aVlAakWsmDoepRm+xaBY2v5itGbDA2WDuYeH5HbmvnV56kD7AY3sYmYqZG -kZI2oEVBrWACnTM5dxWzuWnaSmQ9pWqjZy78v8L8ikr5VZsPg9xiC4WJ6UgCsRsBoLtWcWmufkC+ -zUFCX6iJpOhHw1lJUbXQdd5nkAflGkrlyhWx/r5aKCQncQqLXW9N5rR+0sT8srmmE8A0QpBrdfWW -P4YVnQGryYCrrFPZ9zKxHIA4fvh9rOv4GcrONK+5+/vT3Wiqe+UeAc8/8MH8fDVCj+C8nzOZRr3T -wpyThn/AI16Gf6FZsTysdcnhKTnMqE7Q/OlGkWbV0MfE0w/GVc/q2HnpZPFyAjUG/hQTHpAjieOB -AHXuQEEUosq0wHdWI2+jKUBWlmYhDE9Ydpm80BHbPGMg1i9DeV1xENDBbItAQRJPFvTCbGNo5K5/ -epfFTf+EHoRKmJbZHlLjqiNnL4FHDx3eVSG6RR8/Ot6ftfySU4rDvUBPzbuwfCoI5jkBRNF8Qx5b -0DkgiQDCeBRBFQahVGocyP1QlT7vafOhmulWozG3cAkGN2MgAl+mI31o7lC7C1FKe28lKQZQw+7h -3OW2aNfpXrL2tXMLQlW6kjfxv/bP9aQFinOxd8Lbpkm9z2SblweWlWjbFOM1FvgRSmAVXvDyCwUe -ttkWySf5PFe1lOCYlPlyUyGPk/47NM/Bv+YFMnUTj/QGh6OML9cOfAVstYhxU8lyo09o7VNk+J09 -vCipt1/sScVbNo3PI9HJcKm8ecwGmXhBi0RpGIkKLWsZ2bMo+azTPkt644LGv6mCK208LNIoc4Gg -h3Jan4NEbOnNU0TCKEVUABss2ArXKWrkdtdn/aAgMCHUtKZNKDzuXLlSolCFgGexUjhSXn+19IDp -XfhMRgFsJk9scZ20UCGBWbNZyjhbweqNV7C5mo5D4wZQE3Armb5KVx6ihQr7iPE4yfcIDEJDREW8 -GySPQaQV+cxIsiUJkYTI6OIp/T0G0gI5FQD5vW8Ib1GRalLm7+aGCyHm/27oiIAj8NRo4/iF2flH -2zJIrrVAWuHoHr1JOHaGsk8bD1aikHq2SPbt3q4pUo5VujcCa6gx3QPgK6ABs4vh6rZoubh2bvDp -bCLjkrNZ3L6G6/ISP3Bpj8zIdLmT727SSayUMJzMdu7ABNrdUcGHt7Ss/Z2wFrNUKPzCLe8FkRP/ -gUIxRcSpKz1MdSOBcp/Ddqncro3zIYYABCyTB1UWSpfUR0UwDGOPEsWgci/Sz/bZTQHr3cgbNUSs -jQvbqjjK26gDyffHGRsCsj3rUGjuNqIWjIgdjdxU0c+3iRnme/q+lz8KaW2lQ/pzINAvSPEIR6mo -IKV+8woRp1wSw/1qU+PofiHU1+Ycn8FovHEp4PxkfFJKs40R8tvRB6ZmAVrl+ZjWD42bQaYQOr61 -+2EWxiVZEGdSP8aOAW8f3co4T/qaC2B9+q+yPXwSVNY8DwkRmK6bPkz4ejOd6Pq6uwiZoCpXfyK9 -g6TJAKsZ03ZsyztPTHr0Zln24xwgvo/YqVVpn0fvS9q7AaVvLz7bO2pNEdedkznAEv6A8uFxu0zH -h7k72w3eZ6PXGwQWc2HHkVIGve5y8GSWw5vYGoA5jTXLvBN0SHJMu0RdvgFLlz32Wer9VquEAfp0 -G6KWBExdu5xhzuyF6Kkn0UQgxJMF5iMBZ4+pgYhjVaImVSMvyZEiBUYR3hfnabk7o8IW5ckq2O4S -gEVge+waG2tKRAq5kQ29JxlMaJM8ShXnwfgHATx7iMB4JEDINLJknSEToplcSItuE5ZRc+JokCkT -7ff3rhvVMR8ClA+bXM3DKQIvH1kjqPpeb/qjZVEgU8NpBR6C5rGdAKUBfKuXwPjjxzxclD9taOJN -3yetzpFJax5SK0hSzSMnZV1kSiLS1JDY1qCXWR8ZZR8J0Dz6nrFFOPMg4U2YAc5MD0K4zPAKF1Sm -mWrIPH/fKHS0hihez/ZOl4IA6sGf1HhY82bSB0OTz4h9//J4sQJqR2wfTPknzOPbeYMbAkz+QzbA -/Rt00TR/GzJI0hkLXPOBKwdjCq5Oz7a7bndUSdbHnbRYeTDPKPw1hHngF6gaInIf34T+4zNu2OIv -z1eWP21SAmlRohlNdExCDShpJYQG8E+zCCJe1ESzPL8ZyNt8S4g+JSs166d6gs8/31hd5nwI83C3 -WBCIfbAM/vl9YnmAgPBC3ue2+S+zgPnU8CBIObM8mtdgiGP6p7DsGZS5ogeRAiA5XVjo+o2JslKg -RVetcrQUGKYmHfTLrxSA6SFzVdpisZUzZucVzc/BXlQga3mYX9GZXlHkLHh62vH8QJ46oT9wKocD -9BgpwEYqrmiiRq9cmXCjHWBL/RUdyT9R1l5LBCWLHA7qyO+zl7fMbtwY0W05NUb5l5FOx5uptbyd -o3oHEtUQp5EjBfIWK/5YNEwn3zgWzQBRN7zbWLTXeSWrbKpTMBMWt6hziHDq/NPJ3aIlXb2YPK79 -DPp3JDhacC10BReXk6LXxoxkNNcCBUbWBns7Ea/0MN1crhZyxphfZS4JaCUc5C4qtfWcf50YLFBA -mt1clHaPrtMf4M1FMej8Ui7vyHx7Z3y56JpcmyjZQj6J1Zens3UFHIwTfG9aVuAOP1BZlyuiGFvZ -CRk6JN4KHG6tkIW4mxChf4Fx7AA82X+GNaH45bJYgR5b/bmCyArTjNG4WCu4Y7SwgsgA+kpWftt5 -I40V4N49GS6KL/GuErb0p7TstsVkBfwPvECmaZx8vSlSxRmIwIo6xCorUpUhqalKMI8anovySPQd -0HCEi5KYgPIAV3AwRPYraE3iNTYJsMCB3fauxqxK+dFjG22UM5+HTUjK0bO5WJBZiF66dBcNNBWR -XWsOkKCqh45/1nC7Q7pAN/2SnKimRVMOC77Y+Se6aCQ4dY/4BAs6SvsD9PKHXTQLZ9eBEXUXtdlC -lnnxwumH4/iZEPxtg9/DCgnz60swfJiW8OwX7cjlmmKZR1UW6+DaaVc1Z35a/grimPlfA1iQ2+b4 -ttT5gRQ/y5qy32OzQFYjGtU5b7rooHctrkTmymgX1d8QjS8Oql5LzWebIu93D81S13mP3VLYe+Rx -AdAj8Yd7YaJ+sEOBfJsI1TMk37vxk8BwMWmLNRI69ZYSpJXEcXTVD595a4cu1d9h/X7t9ITqUc3q -DXBRJzSZ+kCLqVZCOaVzObWZuZN5AP3kx10ZFSmEEJw0MVoNGkt36R5Ssv5tRMgb7ds/KC+5wLxs -fPEugM0SPQ0tAI0uprKcAwKbY5SS5qyOELcSaWrj5KgT2kx9gctCj6F3AJxEQwmSjI3FdZ3zV9pQ -fJOTUMhUC9nw2c4xM4zaAp9L6JqA3goAU5bONTUs/kQa0xd5eyzhOwooLMvo+OaKf7E7Mi+M+qkY -uTulp64JsKK8JdjdcCCNgTelbe2zRu+L5o0D5T7xGAEGMBHp+WpusK2f2/IqzblY4Zkld+sSy7DC -Dlmaw0YJUFePYx8L8aAQsARZWKhOwOmnE5PemH0hrRdcarh+D2vlyItcAkvRcwkEAn8JXL35EjhM -0iXQSWwiakg+J+S75xqXwJF9XKTPWkeMG4zAGgAsgVAMvQNLYBF7lkDMTIzN3HNgCegHbPX/Xm4J -xNmq4gZrZUoT7dktgcfmLYF6fiOlijfuUrKVbuYGfGZuCVS5+BJYNBgqLs5cC3FGy+NF7mbpEshr -ckzA1U6XQEWem6pmyx6FA+4MjgmUZzKKxjRMYAmwmUAcAjOBE6/pCN+kmUDPyAGDTODWL3YHwBwY -ru0Umn5QJkdMZAm0kNLebQk8B4NAyGfHiYJJjv7A24cbPBmTvwik+l84gXua0qKgGhpcQ+8SuPy1 -lBsIhMuqwatA424zY6wEcmooUDu0wvAI3PInkwOUAkKQ6Nmoa5NJoIpm5GeM4wYfFw== - - - PGneQwxAIByDkFsuRoGRpPVfiV04L/8JxXqojIDTOOA5JdThOBys/WSeFdk4AkY2NNQMPo58cpNC -IfgzUaC3DpOGu6rBJEZlES71obmDwYQBNBYMIEzKlmtLH1uhz/5A/vcZ031/t7+1DUBi80ApOkxO -lCn0g5dtR+qKijGVeW22pDJHmJeownV5zU+Igdjr+NOiWk4gPx6TXWKPbISH77XxUjDFPKwhA6oE -V5FoF22pbZSY21RGYhes0GFSaUpLxQkeuZYqvpLQehRt2spiHYiBdNHNzwuKv8GnUV/RgVFawc6Y -Z8EWifpRTd32+Nvy8gXA56A4a0vuIHLd7YhQ6TJoBrLPs5IgI0SMcVnTdVZsmXvG8QRgm+PTEcOA -2B/SVj07x8hsIxADw33ymHKn5sBwq3Lce/qVsivDR/6XfAHYgowJrEZnAnxDEN5YamTiLdyECrsD -fp0l0wzOquYXxG6MLOANlQiCGuoAM55k+bHX6CyhFZDtDalmou/T7MUzysRoWo91uufkBmgqEwyR -ccxNLb9AWYPdBpaV6iciwuV81W8S1TeZ0NAAFMu9rjnhkxCiQAvLUTZIegUlDvmUqnsWvv0Y5jJD -cwbx5Ir5in8i9mUbk8IySGm6MlWGtGc6mgmU88oSEKdVMa68QLsDegFK1FOrIWakVAx0yKMcFvWG -nzmsxi30Q7QxnStDx9Il6VGQAQRSxF0TdI8gIchcSKWfwfzPpYDpZEb2YXLzTZBYyBULDOP5FGTV -jBEQaqqSe0NjsZxkwQCCHBacYlYxpalflTAWbd8cMVjo7Ck0O4zGad9zBppiebMxJYOYtTj6kEo/ -k4/PP7xoVz7tmKavMYLq+lN2MTubpRbYx3OYyAbM07aGk1MXIKZ1u7MOsoEuaN4MXA3aFMkrr7L2 -36emRDODssWt53aMGAT8JEBqjnRlPdVQjpbdCbFeympSGWqaymoFXxJGw6MqMS0lAotDReR0Ml9T -fEvo6plnacr6+Ld2bccZfqPeGB5Mtfy90m4Dq/5sJ4JWPjoshoW1SCSEXdZCGccDuqh/ViPCalqX -xf+Po4o6LhXCUHclb3iqE5JB+r5Xw0hvOeeuwGdlYjjMYgmR3Nr0iIzUJzjLg5PAMSYdM/GVuLON -kwCaabK49FXGTFXRcNJ5etJZ4QXIzIurswabDMDJ4azdDAhYhkVnWYM5E9lZ9RC7HjQJZCqJpmYl -suvkdRCpN2QFWPgEDk+qq5Yn/RVjcKvZjZWGjjkDVVqgF7U5C4c3DtQzzMswXsGmbXvBaAu24UW8 -AjSMdBThM0k2bB2juD40/0ss/yKfDaZkbh1ZSJhl90jvKxc/D1PO+S7IQwsxQktKy2Ucs8ylLGVv -QeDk/S2NmF1jwHkQLd0BCNL8o1ku0GIp8Qt6Bixgoo83WCq0Dbk4XfaM34gth7Wl+ywgGFhdTGAe -Wt8zhb9EgNr0DvN8ujd7Fo4n1mnI44LP8+QsFnCIoTDXss0cnuUmD0n3r9s2bTe3sGP9wryS/OUb -Yn5J2PBMfOQamOo1MTGRtWrkODIG3cI5FhDw6m2Q78NiIbJfzGoTPXnDK2xbrXMCV5zm67AAsT/S -hlpeYMJvyvUyvmEWRb3Cahpayts8jKX1vUgWfvvSAQUvckOIqB06yCqQGEUdJBfKS7qQLdlWLf61 -EJqnhDdoOFdCG1hAD1mamqJM8LZGEhJl9DXQvHICZiYeMlITnUnBc1pFvvvRt2h4WwAQuQwsb58v -n5//9MkD15a0q7aZ0xfbW6BC4AqU2W9Q2+IV2cUHVx8akSkhqx9cZwODRe3ACtlT4N00uHb5R0QN -Uy/2hJewOJA6SBa20kPpZlWvnbNtzEEG5eCKFgEgT9sKr7Vuknq87U24Yy0qXMz5uBjWKGPBEz/K -8bx8lb3qJriuqj2/VIry0MJdkK0DU0VF+gGuRtzlGQHV1VZ4iaMmvnWd1bOgYEas+A8bVPExMvlH -yKNE9Z6j6DpA33rcd6b18q26Ywm5xC+XpIdgYF5/q4I2/vf0nLP4O8YygliNekhCVJjy1UjEYRcD -W4Mha9YtXfTIzDPK2UE986dR7VvHDf9inUTRBYS0ar6MbSdvb9gW6A5DKDE6IwpH7M4YyeaeKHCR -2q25GdETrj/MaZe6GQnYrVgYlBCzrB9APk00TW4dBwjzJuJOLIT+VTcBOllXMloWl+46e+c40ejq -YqJub+QZj2ejqTrKx9gOTPNzq8qBq5Ael3ArYhnjML+GOOHY1toYwYPX0GNR7tencR3Uhi6ZMCPw -/kDaigtBMPlilsPhgVLX9V1b5/Hc0NPIuFVfwkbZqgFxt19QenOZMU9/HckiUy7oJ8XA6D0Fl+85 -U49Wfw8oGj7g/K0Cl7FavNdENKAY9zPZsAryZPgtTTXmkZSTQ3iRUNFWk7y5huhbIkQu2DGuTxGo -rtUos80v3KCROU5TaC4qiaxBmtDbNlt6JBcOqW1rnHg8rWRNScgxCNi0KJ5ha/oZlFKx7IK3gaOb -imDrkTeBwDbuChfDs3grVwyZef4ywRDPxPGltzwKtrYoCnwebG09Jim24lLI0fG09wZhtL3h50uh -ukazUlKkZ07lBK7JnhbwSY6tA+eUBDX/kIyikQIsHOKS9SQjHwKvJG+GhP7KpyQrMbfG6l4oDHzj -+SRxScbmVzfQjL+SbB8K1mo7SR6UNePV/3WS3KP3bsmSe8N892MZ0xYRyrne6Bml8S0AmuwYhY14 -vTS2wv6BSJ7ctnLUAUckO2355hWfiGR5b2YsRrLOQp1o84zkqRMUCTKSS6Zj1L+RHAIPHJkSp/Me -xXd+zZP9SaR/IECQSO5QiWFeVyPIhEhuTZ0E8B6xSzbsQ9YXoBYH6ofZEuvhP4DHCozifqbxnEr3 -f/XUSJ7wgSmSDPA1cJpbk2QrJrdjHpcyp7EOrUJj5zNlbuEcNrHZtZJY3fWcjJpok2ycfLErv6qe -fbjWH1K5j8s0ftYaFdz4b5J1BoXwTgAmVnXjKeotTjLs5Dr3gt8hsOj8J54nJW81BCV3Hi26usGN -kh1kNAwzQoaSFyk3RxmLYS0zglYbwcK0eyxpkpuKwlnDZr4uGB7OoQqiJLfHHMnaUYjL5iKSJSNf -6UxbiGRVU8q4/u2RrJNXGIfEZDe+EAmRjF34mFiMAV0ETiuI5KaUThaidppdSYazsIIkN8+hUyOB -iCSvqYSl6ZsmyaJ7GTWGxTxGGmAj4k2sRpIzzKmlM28iCv1EklGRRRHnpSEkecKvSgrFkM2qZ7xo -j5BG7o+ptSLfZw71JzgfbVB4k0UUqRXshXyVlRgfq6aB0Hpt0w4U7I7KGZF3yAH1i7ltPn+T0M2E -Qw1ZMUc7GICGbJt0HVobQ1YO+c/36+GQfXgyMtFDduH9a2ys2hsPphk4an84QxUysjV1kf2QcSA7 -m5/nPw1F8c0JS5Ba7Sok0RMwo2EnzqvBFUq+tzDR6OAKL+6zwBNocFtPi/94lLVGnt3nBODiDo+Y -f5OCz5OpaYg3IY4Ptw+WxhA/MoB/K0eRKkRZFBfiJ739pYRs3SVlzqVHYuGE+MXodeI4xU97XABZ -xDoBBHtkDHNo4KC9v2AIpiaLiqrFf+DmBuW52xGs1wfym40GIxcvvTQSM4zYhg3XKfUsMSi6On9l -VnaMAT9FEE9ZmCM3OJhD8EIlRDDnE5Pr5Ch2EywBIC2QyDAPYgexdVi1GBc83FuVO/p+xBHMqmqm -hQgI4TgihiZbVqbpJhJ/QgfTWH0mT0w3xr+u5L1TJIYW/C4Vd+iKINRtLN+CCo/YHl62WJ2pAcSp -J/lFm1zXjgJvHuJuISR7WVfvxCzptBeyG9Uw+Uv6bZgbGbcOm297zEMi2+w0lU9O6QzQragO+oBm -Q3mwY0yLah2kR8+cvAC47AeU6ELRyh+01S8HULyu2vqhb3IllLInh5rYwJlwJs+QHt4S7RjI/Yo+ -jYK83pmFgQYAavq3TB/D1NfgE14LT7FhFVLX5kXNhScjwcKW6KlErNIAy2EBXd8zQ0Rp5AM+GvWc -BFpaw9YSH7rLZ68QqxKJhEJ3CGqd4Xw20T/RBm84we4fOwsE1DYTP5yTQqlVbCe8wx3+8TCjQh/U -hsQDF1aoC6XFWFtL1rnvkIpDRgVrpx1S0k1BtUyoSgoRAuuzqSW5anNiC/jJuD+RSWVSMLwk0LZU -GnbvG+agkmkSfJA8fXePu+T3kf53A1yzltqYg5IL1Ah+HZZ0Uu+qX2kpwnz77tGtuWb4422SEg1j -NXqGVq7N0rQxsN5gQaaCZjrltG0HoElYCsEDZuqYeNm160w0j7VulWnBRRGBIU0AuGJrzTkL9fFT -f4YtQJGVn7zWBuYZwKAiiVgGib9A/q6tL0m83PbccrxxQKGqYm2sG3VeEF++CQAoOonf96KhsCko -UZmhUrTxq7ncMaJ4v3jdSnW0Yt2fGiBAhVYrGtNUcj6luHwF3zGMmF75AGpBP9RYjfQwsv5Kwavp -EWei1T1tpQJaAhCOUx7YbNyj05h66zIM7656cZyVAxpSg0wF3MYxKsz1ZqYhFpEGG7+GNcFuvdgM -suvBMxSZcuOXgrIkgWqj59azd2Xjg3mEry4TVzqCLM2yRoA5aMv3ggub1tLl2sXSBG2U/iY5jCP7 -ShM1j9fuWN5iRRNM+6+GZ1EAgmxgDgBE30WaqY/YrynGCVjF27BrHvoy+QSQ05B/5XlXS+r/c0Nl -/guL/6lykv62LW2UILOs6DJgLSRvfL/pNVCYkRgFW4T5yPbg6awfGItv2J1BNiq79iIx1If7U7fI -XSl3EdW6PMTqMwayd5byYTHV0QoiXt5XxrCTqeQAV0Krzmhpf+cHdcy+QvfTp7NX5MdXPktfmn4l -RSTh6LatgGuDQmJaPd6wgH/+ZasO3uuYmpMCHn/qw1cGfBBadugSLNF8O1doS/nOZ7WIGV7nucZo -0vEZniRaVINVS4h8O3hyYYZgYyKP3uFqjz7lqwfQUk08PkkDtzmg271HFmLlRw55ocPk3FZLODzR -C/xqRJU0VyyzVjSg+k1h5yQED4DBvvoRa4PeBfT0B6aIsZRCG4LllZjhu2FJVBEc5R8hzdhb01ei -/dtXDigAkmTfsR2xrUTUMewh3AKKvWszGLXBA9ruRQwziQ9AhsbLSXst+tTF2EBiI11+qKp2Jdwg -86mMzzAudBpi0Q+bJwnsRgXHGkmnV6H5HynfXBXtIeDfgSisiemUfC6jFYsuoiVZfgyQe/LgGg7J -56/x2XxkXrpkXeNZ4BnZycGZ4hh/MoPMJGWwcFbp1dgOFWDdIuksXdVOGmMV2RbuVZmTY6Jqc0dZ -cEJNthjErO+hNoZ5fZ9oGWVk+YkodV+Hm+Wz4vBtK5FUkTnOPlw4RA8qy/xTHnaFGQ0Xo5leCsla -YiGv6XtTX7MC63aoa/rqmlR9RFn3KspReGfFa7jX1d4JXCe7pbf4EhoNlvGHrnfH0g== - - - jwuwgt1DM4qsqZP6r7Sim4oH99Z3s2xxErATVOPLZlK8lGiKu1Epa502JqMBDWX4swviD+5kdXtT -hJPPuIT5to+GvpgDcwJB2bOhHdDppIvLhqTlDEKTWPm3Iyrf5dn+Ozz//S1EQTrPJL41q5NrXsBF -Lj/gRLMTOnnCxx1bFfQCag6/zcKmq1i0tjV5HsWUou+qq20TZoGGa5hZUg7Sw+OyOUJVifc+UMAL -kk+9oqmCE3bUKz7KJG8dApQ3gdnX6FmMyHDW68mWXPwWCg6DadzY2K4ZJiP/QmU+F+fFfHoGeQ1x -uU4BnnMRUeDNjKaELDCcxaK/VELVI9l82ViooC/EAgl6OxZvPYV58xa9jmzQdkIDKzHGOceI3RhF -T8YSigZwmoiTUnew7AcjhGrdCKmJWCyBDUlKazFkAIs1Jkqpwp47pZmCbaU2B0HvR5HVasEKvhdo -dsyJzD1bX3QHCfp3hbpcxDSZaVCj7TD7mpx/j3HUzZ0P83zU2ASO7KuU6I9iPJo+BmJl7+AUT5a7 -GxwME4sh8+XeSPUx1+sM/iIX0FqJSbzFzMovsq98Y5GMjsPsFGJlBGNI+zfGEk4lrHiTHejTL2Fk -0fI2lUlE5LfAPqiqzYiSuc1vfCo1Cr+VMMgcohBoe+wVo2IQS8zqck7kZLvYVVaMcY9eAzt1uVuw -OZBxLTQyUtVo7D7YJGI5krn5a8Se2T+I8G8M64XzcOUqufaE9hPApZ1FLDjyW0nzCe6lcE9JaOot -xp0rc2skhnmfg5aY3CNocFX/LSLHYdGAUvo0T4vVEmXPHjulT/uf4v90A+FkiR9cGsEHbutlBv/e -FZjKlcFFKXazssPM0PYWSz95ninzS2sUlcbTELxxV8RlmaHy5e05PguTkmd75k1dZ7ZXKWUhsueZ -GLE3xiKZc5r6BwOZC+cBg/hrEJnDu223182oFQKArp811WvwHjwcpxwxds6v4RvO5KcZ1Mk6UZzs -XpXrYzTjq1d0qjPWnfS8pVHCLQ3MS0uJiRk9/yPewXa4/9+Vkmv2ZlbezH8BYTQ16JWD26kBmfTV -KhKSTHa1qvXkpaYEe54stExQBiAnNWunUSSsFpzfNcxxWlZyZZxJQ2NFU3rMaBeuCS7YbnD0/2ee -FZIMhqBHQH72r09Z2sgqJZSOk7L7rYkETnZHsTuIm1BXhjD7E16fVRqOthEgMAF1fdFWmTPifmUy -BYbAhiQm2Ep4+f/ZZ44RkP6aqL6B64FwH9hf9a55gqU4ZMbOJthi26xP+T7b6JSW6hg+3ZvNBfOa -id4nqbfOiZ6P8IGEWjpW6KvJ4geQtDcgg39AXAykJDK1njTODjHfBiYdff+R849Fih8MM7DY6NNz -HIyJz3NiCJ/5JeXzh2VxIbpVQ1LWPjD5ATBNaftayEodzf0eJqIIVTXVxMALAdogqS+Z/7+X7GRi -oy0bfvvfB1dtc5+daKNPhPuxjIxJivUr0XQRVwSF/eYrQYsPkTOc7+a+NQGJDQrbvt89abkEqH1w -mOV77iUeU7HXH0W6yudcSwQCabLcSzufXvsIg4bs6AaEmttJzyUS1feKSApPmnjkyVsXTNhNAFik -HkTJbZjJOKmLHucxSXPYuW0WH0md7AhTm5OTKQOvgxnp/JDlDq9ghA1VN9lchyoVHe0EuouCV5pX -Wxj8hMjO7VENdnEnc+G8jnI3TIiOK/iLIBNoi9+bw4pJvobJg2y+KHcl9Y4NJDhDyeWtgMxU12Dr -4Y13mTjC3rrkHtUqiRvasrM4gvJsWRATOCBgEq75Qx+zn5/HxCkx8wzlLc/Mls4vmELO96FvNAOL -+I859UpiYzDRWeBVbeH6arLSWwYnbKAIy/OG9wxSpJ7x5a/OJIVhrg0weWvoEqNaex2eibIFe6Zk -Er9m5iR8ytxW8jHQp2lS8bwdhw6qvFzH/EJEFcwwCLa0I3iAB/v/kfAvmAwMIDYXW0q4PSa1iJnG -ChbQiCxLVaBWhzmGR21+Ev4brRTB4DCFSEcxeGaEhcqq15T1ZiqM7dQ5DNGCAKfgfNUjDTQy5yEZ -S1DMC3V+0rfycnxwGJZMyRjwE5XflphD9Uomo9h1l3+sTfOSplG4mecajkJp4HRC9rJmlZaFkDzI -0195hkUBzMQFPW/Plwk2x+c9LXMnLtluqw5xpc5Z2P15eOU17XJOy725NugHWX2Fm/DczMlPLDHZ -CuH0CO90jYoRQc/f42mYBTK2+9mPBpsI4yIxU5cyOgQSITsVpiEilCmZJDuZMu+OQnBovYrf3reL -yCMGqaM3837r7KrpJI9gsI/4+GSfXxoXFTW0Xma8pYtfpcX1BJ1A/LgnOg/ukf3VgDkIBkc6s8Cu -edYKfiqlI6jIxjvC+98Xb1GArpq/+lBgsCK5uSxMLcKTBMITZgbb4R7TUbp0ndxdkqvNiEzmbBL6 -bCLcADdP+S+ZDthbiWYVQ4AB13DpT7BWRKUkhrmI4m/2fvgQCYbX3kC9vFpU7AeC27BSxpcHgJmz -up/5OyyKkXihhg0hCZurH+QLPkg1j89DaDdCxcNP+TA2ssipqeakzvLKpEGgsqYsyhRqtgzbmME0 -/sLshsQXqK5ig0g2Q9SSWrJ3jj5tCcuiooE0klJhRLYL0OTvUmHvD/hUhKGUMtMQhNWYEhxpZUPd -NKwBykt1XpwwpUCh5xaTgsiYYrNYlcvHLCOOGMehka7s/I4l34QMGq/DxZhaZMIcJtUXgPP4vst0 -XL2ZdqeZ5DKBAAolLgoQhhp4+aCKRe47RjIISdi2ruN5jwtEjsAqEAmJusRp1zOvnlmWXGukJ/Ix -UshVhXrzfCART9q2ZREhG/L7LP4SxXzJqgrl3vU1K/QrWnE7oCIrOufZtEkLLqBf8wfUEt8lKQw0 -d7WTXBwRfNe8/f/xX0zE10KZB/YRmUgd/E1DBW1MSz17IWxyZ7JSl479gAcIneWM0mFFNcMEW6Pn -oSLXs58sub2hEktAW9/iUa9l38Ozg90GZ3bJKow1HeXiz1pLRO7IUkZZ0o/DbgYODXGVswjngDMB -d/tryznp2MhMR3SRSHKUDJYnpELGOqjKDv1crxgrvMtgUt+4h/4nBWtTeR5H5lSq2X646xUnjuhC -QEXVy2giUQMEGTJgaXDrT9YotOJcvzRq9qRN7PkD72c8kMOISSiCJTaRtWw7zCrlArYsOIgIleKZ -ylJKL4rg7zESILuKxadLHogcvFKkzbMjCT3fb+uRkFwyLTAZW4c6a8mlINADY721OFJVQZUQKixu -FjBkSNU+eIwZCqzi1i7l6jaik6SM2WKh/GLvfsSp+uFcWKQ9AhePR8hOcIaf+iPUbnUYTqJVa4EW -wIh8dwIkVmfU0iDQlMl4LG3Zuu6ntr32wBXlaRIKPCiPZ5UlYdsyqTx5CPcjPtDEdyBhwycuYwq0 -qR1GU3VJHONJDeACS+ToHu0YSL/jhHgA8eV0Fc4wCVRgJBe5FCv8BE/uHRLKxxulfZQC/oK4Ld+T -t6atq04LLARTpgvmd4v0PwDY3vG/SZl4rf1OjaPOIoeUQdZQlBtzTuLp2fc31bS1LmBp/JGjBZmQ -Oubzuhn5YtXT4oAUi2MmlNU5P4ARIWapWRTjzADZs+dy1uJlG7Kqw8XW/taYU4woIuIZBUtBpJex -ZFLBe/CJ5reSJCecNPGtE1lz3WWLZh5fenTU5mQdySU+ZHhxQ46kYyvp41EqVWJ2zmPE4c/JJ8lp -3Y+tk65JisffBVx6svQA51ylPePQxNHFc4i24LuhjBiUvJ6yuRqWTefOjiwOns4G+OJ9V/1NJVkI -4nZVgqESFuo5zibE7a64TcqPE+fEDliNCAnUklgWEhxjbUvzUTcOSaVc0YDrkVbR9Fo/F9Q5ag0i -1c4YEkA2zTSBdXjkoCgMbtfsbdk3BUYQSyx/nWcIafh5goyaEWAOmCu5Tu6HS/SBoEwpo5DnryOg -O6sG16CaIeF9V1ytq5ih/TQGCRmYajOmsPqrHFheNJPUWmurjOgJtnKgS4GM0FjYBD6cfETCJJ3S -5EKLJY2dvxcEtxYTgMIVplOiPvqRPG50egHQ+Z/AR9bOE9Qcwz6yq8B3FziMUW3W/6qqNoU+eZEZ -6e4CPORx3QfdpRwWpydbMSIMmB92dhySys8y+lgJnGSDdb8ovvRl5PbfGjy3sUvzTiQ3PYezClvx -EoAuMVE+stE6AJb8IjcxCwoVEcCZwrCdhNW0sFnMdblHcoN3XEoPbKgae8bdGFcA7QSDhNtVwegO -Kwoy6h5YyhgYj1WFlWGbwQhYTdWFrdOfkq6ZkaYzUIWLRAihdsXFqRylcZwdeppyjSbAd75b0eRO -0iAQMHcKexRy1n5mcKOjoq/ergPjS3yFnnYWGsRb6HqoOZ3zKmJT4LmHsJyDPSVQ4ZFWmAFR9/U/ -fuks0kcEZm0nzwlar1t4iwcJvuBv2FJBJwTCkljhiHWmlDB88mCTOn+UwBy2oEhVChhvnAjh/cqy -iWQquYvaEfuBinKMsqf8+r/dQnHPFjqkIsqmGHd60KqFbW9gbzQpRsCjAQCT5Bjar82oVAsfLjSN -eXIsQGpSaf8QOp9ekHp706INmiCnkhbukWfGneBQW0JPN6eZiHuKvoPOJ4FsppV4u6j8ViK6LOAS -eDCOBWbWNJQj1fG961N7EX0IC/m/MKHpB9XpYetO4HgUHyUSKg7r+ABswxETBK6SByV1CH0lCh3S -M0zRO7VTVjTIty5k24llTSn3Sx+Lwosq/MlQUGIvPAj7pV0nJ91Ysv2R6XZZMtknZs9+51NOu5gf -i6McokaSbeQJyQLXJn5ECrqLkj1JrWjOtdb90n+veUISri7G+w3oscxuxxhBRSlXDl18zubnvV3B -fBXTSp8eCUY8CkKKANTNYakQ2XUWZvFIi8oH6G7BHPZfhWY/nsFRvoJvXK580eDw/gGnitJo3MbU -gs3tRJ3eii6dmg2NyD2C2DgCHOHmSIjTuyqQJDyn/UprlQcClMsbYm1ZdOdNKJSXTC60g0J26txl -HVOPUTzDYWJ2CA94uEvqoZdJPkZ9V5Jk6EWmbhRtihlz/p+WTZqsUDvPxnfc6SITOLUwvI3NlYHD -294lMKgfEsQ3zJBBaAIPPkOsC1jJk8FIQCAUY7j+5TE10/lObMOYCxXnBU+tCkkYc+clnQN/Yuj1 -k+WBlOCKkC8nnswBOgFV5bkIcXnQNES/hFEyRHRoGMdocNBDRiqqfkTK118Zv1virxzmt2HxYVqc -pCNp3tljQHUkB+Lxv4mBPxLeYUEN9Hap4QvcBcOTwS5CCB6tCG8Pw5Jftb0Z9QnFwb/EwvnSNWoF -As2zbGSsshfyJ40aUajmL3JP557Bx6AChSjwxBVlqu490n+5BSJQ6st4A/5n1WPSzPGJEoocw0k6 -lixWejoULG92Oy3qlQ9B0OWrTLMCqGqIkwSq1uSuvHecX2Ov491cKSr0zrbZewpf5Q== - - - q9ikWDnKWA4Gd/QEg4mb1A7WleCpzSDYYn44E7qHVXuvzLjM4CtXUYIoKroUWwG67pYtXKx5OVWp -+7tBNxG9c+v9QBR44drsaDmlAUFQbyMDIftpFZj6NC1OT81f9NFZtrvYFh79swLSe2fem4TZ3J6I -g7+4tCZS261CDMtWkHSchQyB6M4WhCsuvh9HUtlxnNWFZXozdx5lqopZw0as893frjVNlsOtTHMx -fIMR89RgFFN/weqRwaQTcEnayF3DfS62ATZuK9jE8p3869ybLgx5ghwmdEH/BWUsoWTy6LjkR0Yf -gLqRDdncPOJa3ipW+J2RC2k6TRg92c1DWlzOomtmsMnPFbHlo5YHYQ9M+COU2pNQCQ8cq47ZCA3M -cD89nngsLpaThGruFpwWgtsvEz/X2oThVgqGINNeL42ytbqITNesWOu94cNSJizge8EiUNhTD6Wo -GDE5q+d8vARYlqgNy0aqe/eVzcavMvMOsdL6rPp6oZ+JfaiSyQP05iQlhIHzL2zpC6du1C14veZq -D8ykh9tF/6v1OEmji0+kuU0upx6UKaM8e9jasJhzG6SqLUxgyjWLtffoDup3MbdphVk9LuLcSLxV -56iTn66443INoaPF+riGWqpypLeWRbqdpkXojbLwW0i47OZeJ1SVHrwHYCtaMk7J/lbS0oxIoUKj -3bytOCZTvpBmABlP5hF7hM1mvfIk1f0CbiTEMt2KROHdKWg52VPVpOlyWUg0CcmCg18r7a7CeDVS -ExItxl5zhOIhDizNhU8D8INFiG4aNUJdTOk76G16ZiF10UXHco8OFcNyZE6xGQ6gyslkFYPafpnr -aARZmLBTJmxYrRVQf3NhI0rzPxCEkTnb06mbvJlXU81a2TNo8DJ0HAxq+hD6pP75Zx0cwca4FVkj -LIhITccm97i0iy6efP8sfKCNhwo4bQDjHRoC9yUpIruwo/z7oAVoLUTNULGtN+PPHZH7OS/zhya7 -/Cze7A06nrwaEGjkJDLu0O5/nhrTxZd2RIHISOr9MLCUz7QRwEXslk53BabVHcZ1GI3nbP99kiF4 -BFi57XRGv9Fr0ULWnCb4kPSG+g+SVp9QTPJER8/uBSIL9xP5lyRqhdOBKxlEC+qVkISXhOLQe5h4 -rlkQxkyCASZjlzfKlNPbN9sCmLYWtX092kePAHREsnuhs9qOXPNQmMYxflRMUEIgYRH6lLgUYUqg -mMp+iI2JPoStuFyy2GLcRODBm+XTZysgcERtZZvZsmKYHM9PbqPaB+dK3p2K6DRJSnAYKowcF4cO -j2hKkZt09+jLoY9IzBqS4x5pggI2+nezm1luSqXfwTFa3QUg/0aypBT8qT90vwnikInJ+QshytcM -OX+AlcxXTQFa+9nXoMiTEyGhKHrZ3ik8z+cSeYy5WhybFiIdIUcKOXmuohjt75pS2sQS/OV0Ryq2 -PZ0khcxTFXu+kE39X11vvjxaQfP18jom/vmA1lSBqBFcMJmUTgAkUSSvtz+DJUOoTK5OxQx9ogOE -JaYj/RGoZMpTDzgZgikqFnxCgnnAcuW3Y+bpYAIRqqPH7ZqShW0t0I6pxEtW/phrmriD3yfukNyT -ZvoqSmoIP7mHYKPcZzdRPT0mecOstA/rDPH9Yh3mgMGUoFJEAHAmTzH53th95EbtBiDFkJM5cl4H -P8bSSPxIrsoBnfA5n6RfbJfNBNmb5GTKUn+uatefiHXuLCjNgJbJfh63tqEOeKSRAzdV1BIqao7V -DnpKWveLyzZhNnVsDxbVl9Ke+VQ2KAmptPtfqBSm3aZ9k+unTI6i39p4OwfpdZ0UvUetRcvOTACm -ku0M5ciUlF9tN1W5HlIATSPUbtfGo0MW3zMyJM/tP/J3UBpiDmwiCaU5mD0bRcNnt6gaQZpngkVQ -2U1GBBjaCyRwOLF7KIN2VkB9EywivmqpKuUqP+daXq/0X1R0Zx8WmFU6Gt9WczfrptKeME7lVEoS -HhgdJ37Jw89iM4K4cwCI3KjW9DKvDc1k08JCxuyQbsTKKr1MY5wxdAzUMvME7kZ/GzEgT1YWjaK+ -ywgY47H2AscpY8095eaS+ZcTimYg6Bq4ip4+Tc5I6PCCrwF8Vi0D0Lr6PGVi0nvCToFt/cJ9JN1L -vcTwu/VssvUn1z/iNFvY7KoMQ3ve6o+kUWILm7QdYo6rVTBXfn4hADKz9F8kLO3OAF880x5D2GTY -nOJySiIIhnCmmUcSg4767vRpfRqWqNTzYuL+V6CWltK8jgc4o6yCbb+hcLBbQ+dw1uxgDHBFeu2p -u888JnP/nCXpHFuq303HjxTWk/RAd4mduYiAYb73ep5nTS/qCpMGaExVYxOe+BcrixUtZNRioVIe -s+QWDRYOQRphZ3sq0yHeYElq206HO0PebrBUpO4wG5BrzwO/oLEYZnBouJauqdaLqCDHYkFa36Xk -sSYYSpfgeYIGNCZv5qbIGNTaPPC1rJFZqWXgCM8/ZvzcXnNREGnai0S6Y0vBuoyUePKVVUVuUK6+ -VdBCn3oyl24zW5LhRHxLcbVCCUUNRHITMdDBmN01qXxYFPvLqzwb4Yufh46hGVwGad/bGCnFmcdz -GMkyGCuiOSAzqnSq2Vz50EBuvAM0hXhaWNxQgrtY1zQIhyREBxXijZQT5Dfp8aOPVEFp/t/ymsBZ -atggOhrcoCXpHCi/xyO4LL4KP0NkZ2KYiQchxH+y9lWbWCwmEGDc5cZqjZc8Ry9zOlfveHgRBThW -LrKacRuW1LCq9/GJRxPNZIjr/GaFQICVMPcZ98mVNmkpWaiTwKymFyVdjyJmav1rmlFnrScyUh6P -WEtjuTgmP1iMd8RbWPjSDVtJkDjqASM7LFpyj+Fm76Qrbk4KLnsVO57EkaNAbuWPSCBLXJF7rqky -0EUCUQ2ntNExWd9x21Zh2tFYdjXr22y+U4gHEAoLRlADmIgMPLQIXcNkY0fDjsBsbOQYrb5qkcYo -rE+A1NqR9uHFog4OyokIViCWkwdC5/NctnsMJAofYVSRUBLgeZHSO7utsGQwiyp4CAgNEuhR937k -XRb87ErnU3Wq4hz76BN9DQ61Wl+L5khlbDROS8Ikmi8O4aybm/DGEWBZJf0qEPz7W/2ySWEMcaoK -zXYAM2C5Gq70F7PWOPZ4/wpJa9HB5Ov0ayAvRr94BMfw12HJUHCzwm8OeUh59cU4MBt9FRM12DIh -eDAo5sLyyYDyeFLf2G/azPt4YL7EC4Du0PH6fr4NrCfD43rlFmoNElBi3jxoER6DbD3+JZcSytpR -8+MAeW2IsN5K0cBadGNNMVWnzmwioM06R9DNL0cuD5TWvwmWI+Elf62E118fKQnDQz8A4Tg8lxv8 -BZvtqdN84M7kSR91vzXCA1i0cxE9KGookSPUAAERay/gW4IYxQbf/TmoGILa8SjOr2rZ1sAmXu+Y -IKWWBNZR1FgMhX76tKYmfe1H48ncFyB6LryZvsw7TZam8FgvKobel938RXUvo0GXbAzty4FoUT46 -apFmJh+sESl4B05O0EgwKNEhQ1gC9BPiDecGt+mBygY9G9BTmbLopYqD4wrdoAqAWIr8JIUb6OSN -JsOIaz0Jfcn17+wAVsC631ALe4mHqMHuZ/Y5VNJlLIeOyaRkCRgDEQIO+aXXk5Kz0deAIerLteUL -2jg/p/C1h7kasfNpr+lorYEzE9EUpD3G5yHgV0cMfrxGe9Mkp/imsYpw9dEyCt+GtBSeXVvkueSC -rB5wKW7n5JFB0268hpKf3z+BB4UiCq7blW8csTPHr2bIODENeywRqZBGrAY3wQvVjMHCPI1g7f5Z -gMhaZDcNBXrMcHi7EBqYPK1vQnrOMjV7Od45cUDBwU4zNaPFIp9VPgT+NTPuComghzcQaKp8BElC -WHTLETL5uC1jYCBT9d9iEaet1WEDx9GaOIwaicq+/kIGqnnE4Rjui/ltZ6SRFaQlOi2RwbLpLoPh -6hZM6C0jCahMQcS4sllwGaJNAiIk+tun/fIyi2qymPBYixaLwcGGGW8Dx+E29lRyViZA0W6+4vqG -oKFW/5AWiEDrqXCGFjP6tcdjh8uNaMCY0BEwNBMxfbAFBeCLU0IhArkKbxWoZCLDiZCFh+VPApxI -sT8jK4Qd+pTVftLFmTjjCjgQb18xHTis8tGD5BjsTQJw6ssuiH778/FgoBZvJEIRg2kleFKfVMHc -olalgJtam2+OXay4XybriIvE6I1mMNqKydUjLmG4AAGOaFN39Y8CoX4PLXLKEJCuAAZRA6JOMTRB -eONyCfAX/A6sshTmRiYZOnepa2a6Ub07oxkfvgJDFb41HS8jowA260N1VHu7QxxCf07/DhMFKFtT -xfrDoAgqSYEpaj0KlYk3Z9LaBaNKHL9CW4P0mpP+4Yx9qw20qQHQczwCc+gBw++J2N3daC+ZkW+p -LZUIGVVo5kMLr98LeGcJdGOhL+5jnRI6m5pGJiTkrXJLpD9yfckVcQUX9R+Qleu4ySC+FwB2J3q3 -lr14p+x0F1CVwj+S+aOqh4MGwxdI7GGahChl9EGwgDoHgkKFlUzWEBOGXBbrLCV+uYwn5B7vFTF1 -xS+FfHwLGuCsa4miEdOVUgdETSFd7K4xpJVIYvrtcakYHDF3QVfYziNktRTx6d4rJbqSXdxuxp9D -S8J4DLeXNCGGxFEdoSltZ4z4R+K7kKbuxAbIUaQuWw3cWHAegRydt7TiZvNnlT6AuFVkDhIbGe2U -14cfs26zTMf+mN8NJYqCMIGSUTxR7w9KfNOyYJZVEG3K3KV42TbyO6zNkyVbhAKD41lwER0ZWHi3 -1hZu5PlTF8TvAusILwDpowS8QqkyOLk0GUaPsshwyXlhKVMP8OPM4MnpMrSaYqdNMVsQDhldS/Ix -F1k6f6TwU/oCx6WBTeyGOBkE3yzzLyw8mB8ITl4kN/0LGzzl70y5dT73QlhyHrwkq86t6xWZjQO1 -pT+lCIKF+YAkpIHTSZsweJwO1liRYJ8PrEE5FpIGoZVIu/lJyN/6QtClMyjovllzkWdqZl1GeDq3 -fSp8e2JceUp5XCqDfFZG2a2ixj6OK6LnD8sUBzLS8xDeR2u9LAwlWzWmQkDQPb1UxGM1xYMhGyUP -zEAtglhTDy/DfIYH5KiOgPGqBxnIO57kCG3pR/nXNVVK+jebQAEyRJR4l+2S6WDtwNipK3wrbhsj -TINhDAW7QQ1NIBzJn1W+DT4fy7YmLWxYCWJOH9yc5XGG2sFsww0iNlwO5mLVQAjn+6N5u8uRlbjw -vIHio6HvV37bIXKlnbqLS/SLdoOlyoPkh9y1UvVGRRveaTjKmHnn08FHckXcafUp9ApyYRHPfnlj -WJM+QgDVrvSFagYVU+S6YazhuHOCOm8XTYjU2igwUOseTgRHj7aeHk/R8MKRM8O6i0/fI7fwLaJv -AidUZG+VwUdmQVghLWavPOdYQQGb6M23wokTTaXRNS6LlwYoNkFr7IqFLgVcdfAf3w== - - - 5Te1i3He92AuxBORgrdM67JQ0BXM1bITt/2YsWjTiRxOOQXVoLQHimWnpegK8o3bvRRN2whjslhZ -4vJ8/K8iGL0s0q4j2EPMArBIW6I0mKYgaIZYccWMlqlg1UbiQcWMGGY/fdPNJdAkMvQ83QlrYiJ4 -AEZsoABUuYxGFuDpZCcqRoCtdrXQm88x+wubPSGCSEavlrEiMREIqahgCFUAsioD7j/H1u2QGgOJ -uyGdVPbYcdSIMUv4JNmiJnymuEUQ6DrbRRM5VgllhwRz4mHkecRBkyEb3+wZyaeNaUMYpMIYqHoB -IhsXGUQnSoUxBWUOW5VeRdNfBRDEUmwPCSVqsrBFIwTTrUEhGkHW3hEUGkRLPLBBvzfK6avYJJIx -vT4pgVxa8yejrd5P3C0sLguYqq4IsafC+PGKS4DQ0/jD7I2s6+JfJrmbgEJwe9JbTkGJA7uRG1kb -ryT6SislCpMsKP8guYxv0TKFixm7JnvSfOzmQx89SUyNkN1+Me40qbb09rwwefQ9tL5yT+hGd7zR -qAxBVjqQBdHHp8TRUzolNC5eC4Iumv6Wa2TlIxainfLgBDItEkSPZEOKvSEuOzIqjhKu/oDv3UlD -ADARQG26SIm9aMN4TIu2E4yktVdc4eT1RNwMOXVpUr0vA5ADngGz1pP/izltIdD2j+brFN6cwgU/ -FEImCKKq0RTiZll/MFZO8HBmWsdDwMpM/y7ODDKrhfj34E7fgIfWZdTvdcjDHBmWH4tU0Jse/jWt -MQfGva+HAJfQXMU/dqiIPiGDMkYqK7545ZnO5XAYmYFoQu6PColPMdgAxWjrIneiSAU/mWxCyPTA -t0Z4n83DZ5BFWtUhdH0UK049H4lTYr0/Iudn32m6IBhoikYtxQztoVOQ3jWEERHzATER7dcYt/oK -Sl8AuVFAhZSfoQf+Ke+PFXPJqEoTh4saueU2nc6QGXVZw6KjNoGRF7+m7fH9+q+Fca0XoFGmjbgh -gVZFkqB/FjDEfLXMhAvoBONMGXyL+oLl58LdurPDUnL3rihzoYEmhgCYBmT5AXhyC7hTCosGnkYS -MkxbfdQ533BBijtJ3lGLtVGHzlsZvo+OJRJEVznmNFAIhpwOsxQTJB3SMW8BhjKUw1ceSDz3wQ7b -h5NohiVPsm0MQLH1InOBwJ1CWVUC1CIhCP4a5YgXYn4KmpiwQvX1WRa+Lgty57Ezzhey5rutLUwn -hwgy/AFG6KyFUFIU6u8H8NdBYGMDQx5L4PgWkhaejVklAX/LkPcIMBj9F+tGZTxCwzRN/9vMjqAV -8sjijLLT+Cr5as05FmYiOURFXDn+3SwHYrfLktfCIXcbaNn5OoDJ+Y/CY7/Gon2Od2UQ2sqEd2uZ -Cg8UQdrHLjDjFRJVp9Mf0N4xLXOjeLeXtPCsOdiWe4it6cp3gHGIWTr8MfY3C/HWulD/yv4fEYin -KKgzyM34TQ6Zth8EaRWaNy7ninbSiXffCOQDiUUK4rKPneTn5uxYhFcMwKbJ1eUXGqjjYzTkS8sK -nj/tLLDbE94a+F3btZilG0tq98qR0ObIK24eNhwwoc2fSMHCBOAfPPATAmgrExiA+qDtl4vpSJMW -2TmQhpCBguXLcnfo6z2zEsMwaCGteUuHdKxGeHG86ERAPTZlmJK327j+cX4cFBkBt3R4g2ldN4SK -5q5oM7RUVvG14ESOXs6tZEd8yhgaDENcw7M1uygliieq6RRfSbthqoveWvRtXp7VODN0CZXFmQ3o -HCObHq6D/FODhdgmSl2qyW7x9YhgnF8Qq0S3bq2mAWEU0RVEOU7EiS1nYYgHFQ4CS1g6QBYA1S6A -qSMZE2+wKHSTxMwL1/cOOAnwdDw+JBUrKhkGlgNLvNHR1MTUKJ7kW9rKOp2loyycli2kmMDwn68y -jsnKISgVouVBZKFfd3kCtB27YpaCiMI3/+qgx7VXmFE5cmzCmMtKOudBS/vXbaKKTXAS9UBQhYdd -DYoH568K4pOBBuUxOoce6bOuib3xVc11jGrempIepkVnRakf6ahdUoHiZRgeBHDLQVmRwToG2Mlx -Sf2Dk159BxoI3izUDuoug5r1XRlb3nKv8KZ1r15fThHZLWKE1UhVhBuj+YHHG6UOetVDDuNaT5OR -DrI4F+KysPCTkYGjNtT4qADEYS7drKcDokwmVpB3NcnD8blf4rIyBsmgl4iR2WRWcsFF3WvHfM/i -tbGmRpUogOHNBek+7dSn6GKCtISpJK1QK4W5RI1e4jJC14j0uxvsJAm0vMiXWVEM6onL4h3IwK2H -H/1iwNUrxEQ0gjQQyIjGno3oM035BfPRd5uqgPryL7Hbn2FQziK3zID9ocHwo5KIo23P7Mr2mA4w -vbggVDUM9I1d6z1gRjJ6hSmGIERTGYMhg6RtjFyTysQTVdePGNHf4ldk3BAWeUGKOGK0odyzFyOm -h4Ud3fCBpZ19Zte4jlKNzCENsknTKJiREFE7w/IQDeXA5UYU64mCIk5byHCHoKUlRSrjpIX3L9Jr -eS3gExNO5+kphZQU0GNUCdw6N9vK/Eg0wssSAagh2xuUCk9MZNwU24yYwgfyEXBrbhGUN8lUBGig -oKEJUXkp53KRQRwBKkxrTPeHqHMXzTlhoiQvEuVZc1v697iVJLfbjCvuRLwiiRx/r3gEMQYJELkC -zJDgIWnAqhgDThaMFwxxuofrCU9udMdZFuKthsED5aWF0xPoN7LOnrhlANwMBMcrmiT9sFnTu6KK -U1i/AaHzP1hFoigShDrlPmAhILX6Wugh75w8Nq9vxB5gP5Ymt/n85/K97HEZtkZzi+cM0gsjct2B -YdobNEIqRPA/JFPH1DCiR0bYGBdaO80yRV1kliit63XINAQ6tT8YxMtN4zYwW0e1HX13wwKu0/IQ -5BavzNkJ+I2DVNgkjCxdRRZhzJR9y4DYWdldU44BmaBuXMrdscIg3yxznf2PHy32qtACQ0WEsCQg -aUU0MfwRpbt0cKUPD1BKy/DuRKiL863TV78FAQvWgwFgsHZ7cvic2HxXjEC/0yCrlEHQ18ihmkiC -fMVYAkl2BZLZA+RzAKWb/ftsKTHE0LAmLBvvgYQe6Qohb9DeCRNIX2bE6ySSYGP8ZG0wdRezhWg3 -eXAJYRN/j5AFZGoK/NolFVmS/HCEk7XwU+CPJFaso/lI/B1nUozaLCisEP3KACiAdzYKP9LCDsgZ -ZIyiI2iMGNV0Xaikizo62L55LOqFFQpeFxEROy9nDRkx1m2hlLKAVe/z7vUL8AIWWLfNGvnX7SWU -oRU33ribwPGWPx6bQXZcI3q2kXNkUwuTH6UBJk2ZqSXGjNgxuQlHkw0JbmhsMVsUfg0o0gZmAVBC -SVojV4T8pw6cn0U76rXCoPhXZwA4Ok1FFnw7tZEEdHh4ifJKBCk9+oKLhHlRCkyizKCvePVBPrfT -bEHQxHQAWNhruN3mZHJAhwiqhO3NcuAd9cFiXHJOiC5/qfIgJP9axNIGclOsadMzS0P7MruihmYW -t23kc0Q7WSHj209OOGRHVFszqGa7u00HkSuGHy8xcWxJwhlYM6hjtXseE5kNlpBZVBpvH9AD5RQp -G0C+ZkUd30lYAkzjNEAoRR3S4xgK3Z7Y3eKM4HTl5UU3sT+SQgUx5WpvO7Ts4MOdc4XCqKj6ldN3 -YYBM63JB+3Ypd+RBgN7OjlwpZYdYoiIlycGSDLURmmIxOlXuJ4EZMFdbvCQ9RBcDURxHK1uCuQfZ -7lyHMA4ST63xZQDYNWYeBkYVQ9oASVHDwJH5RLZHcvKB+lLmqaPE0UNHYrAi+43G6A30TiIWHFpd -KZ0WQtNbWx8H/gjKkZWUhbCEg3HK3kUyO560yiUWW1YF+p22x0kMO7oKvN4Soo+LClkHN1tD4Xao -6zZMLPAGwscwnTqVTNM9iyG6DJ1iC8ZP2DoISJ3xFQIaEUH6IkZ/mMyyjODEluFOZRgIfb0kKEkn -eCK7+0vMs8pgI1nRv479aLLuKI0MQlKeYw4LHsgT8+n2ORRrm9UuNP3gHH+ikiBxUJoqE3J9pQG7 -C/vE6T8SSaZVRFdGK5zbxzH3ypAlhEBzNkoIanEodi4xYsGRkM0FSM9nHH3I3CTTiFvBhuLqpcQo -BU9QwZ8jgpSipoThO81FDell3bzJBPFwTPqTgNF0srW6+koXW8Xwm5dZNMzBAOxXBUB/piPV1NII -aBmNvIz1zRmYntHf0pNYQpuFuuw5xMHHZekWtCgzTZStOykIqIhwCmZJI+CmQRl+UD9ggV8HbhcW -qypEeRNhuOFEVIyFMZkqZt5GCUNBCR2WcHAQTuSgyEP7EDzphNABiPD3KI2wzeaWGSJsnWlL9zXq -WAX+3orBUBb7FQXzopHGl+Bt5IB9nf2wgQ5ShNFE+BOf/a9QxEUsXNzQ3ds4Zzgaaod49t9XC/MS -j5tDyUu6ZxQ0mG/OBaTeSnvVEFU8kAgjWsVpQtilxy2mEVSX8nQcX1gVbiL9CDpP4rAFYwhoYK2f -JziwpO7JgqjCVqVNBgYk4YNrdxwofo9iQd1o9sKKkUG6b0RGaqy3f90IiMQ6GJgIm9cgvlTYyn/Z -nRrM7jd9SKf0tFI2cEIQOCLdodA5tSwBIcIwWjLguePOVRDRUByB8u+tRWrA/pStgwVyDGA5NFvh -wsEdopUoY39rzGcY9G2VQ1frgBlwP0KFDIPCZrDGiJ80dl0RA8DwvsLNKGmWEO9CqyMkuKvA5+7W -wViCWTsG+hzGLnEG8R74Bw7J5akettjbrcwUsUV9q2WkYR0Gm/trpbkjGIx+8Ng7+6MGFBKKSDwT -o7eWNbvLZT/YadCmOFVe5gSKMZEILTO4mTpr3jLy3FT5FWcPWIQQCOUuA5gkzoKn2otm+vCOemGE -CIvgOtmGaPQUw4CG2EsbWvtZMUzZNnhybAMkoA2NxmzgYSswVAKdleGmrrTqW9IP9voTtYQUT4SX -UTcbIZRwgLgMdiJhRxYxV8CQAJoOfOzzuUc88SMuVjKHcBF0x5PrkrQ1oB0R0ClSRhV5AIaDnShX -eHP5BY0LiLQ2fLMhx4CVDHpo1FaK+pZi44CRoAeMt9SWQhqz1E0AvKox48OmPDXAZPcac6IZNaYj -KEw5wr7eLK81DnVvokPBzCT8WGV504SzagVNbjMUUZODV/M9mBYGR+mLMqCKO+2uWpNumJ8aYd3Y -KiOdJqk0y/SRUevvAgIRFX5Z7AgF2KHFHSAPLfoFpik2FoJPav7WQs2VrSZ5EFVOxkcoW6dZAmcr -G08Dy1WRmF+62JxTO3Ay5bC1Byvfgi2fPsMBuRUQjmUFpG67NfAfq4ouZhiNtqKq0OQ1EQ2GOcSp -SldCTMwv5zLDyKcNdRmocju2U8V+QRW7X/Z6P/WG0LjCzr9Hk3PD86LLb6qk3Rjn8RuZcZM/UfAc -4KigSAJAbwL6Z/zellpQDJeGTlkVeHsZgg7jCXQ7EldZr563rRZ9ZqVBJ6avieDAnw== - - - kMz+FvBNdcjlJpK0J4AmbpTRJ3JISto1QXGDh5VIEFPlXhfaf10Iz+tHxnDgAH05v9fkpN7iwg4C -3fTBIb36Z+avgS14kaPNkPRy6VWu12LKSmqti0bW1ffPnoPNSQ4pmd/HnmjwB1I0A0eykqgz8TyK -MYAeCnPxmS+47npviIRZvaUI83o3OJBwI2u0hxkZ/7ghOJ4Hi4yCdm83Bh+OwiuigYvYLOGsiVN/ -hV/y+qbLQOCkQ+id5TGuY+QS626nA+qVfv0WS3BeuZULpxt9ZX4j+iri7cKtcam11dKK6LvR8aaH -VGVGhFWjn+9KdHdmTM9GLBWJuVGO4leWh7coz3pl59PHTY8l07aABr+/BOq5Q4Q2hgi1K3EGA2Ur -E+c7AoGa2C72qCV90vsl6HztU6wodhcni90A8ie3MdwgFJLtBZ4+YZgDNx0dcteyUHdzJUjcS/S3 -G/EIWFH5bqYjWCod20qJDX+lXcc5lByAio0vyep5U3Aljh6Nrxcc4FduqPROHBmfVWjC3gS4gSnL -z7WPxukJPDppMGMblAclRbsWv8Dzg54wsxi8LTScyhsYu2DowfakxaD+E7EQZLYzu9EDBA3BQn2t -0YgfUFyVeV1W7f/ojaLF/AIBKNkDPku7oUL61vCjvX2wn27ckF+phzhGC4bbDVwLkzESvUfyHvqW -CuLmaRxnGkw8F7fCr15oNAR6obxSepRlzlsRdHSrKtvOY6cK0Us8s5aA/9X7J9KI7OC5kiDs1B0d -FXNpBWEAnU0Gxdqz4QQMKjtJuSeDpm3fq75WVEzA8LmbwRaIPrnSSGV8RXLH4c/HsW3ckyB/fnfC -5Yhhpehu40VgnmbjRFOzwGGM8TBNVUfopjZOAiC+RtDuQX032Mn4SywmmAbFLa8qv0koqpcj+bt1 -g8XUeoYQLY20rKFqJMDfpX32k4y8hz9i76PtUSJInU1U9QOYNi19ezXHvyQlMuz6FN1dcmMZgGWw -Sv9GQigM8DHpl16kvJO7XbUU3muS9SqKgmvt4GfdvCONYTXQa0V8DDapMiv0L5wZu6j0bkIwnK3X -XOAnjojgPnXoF8o0PQyPW2RzSeLGOo7Yfwb8c2iXwe4iW/0Z3DDfwuGCH2PJuYv7Fr4y5Gj5NwvM -AaRhjQo+5IAJ3U6XhV5G8nqN26WEsq9p8bhekJFpb+Oowt24aDrPwaWirsvUpgwNnfFoufgQhtez -GsaLNxP03gePh54F6WYWVObZpx09qX+Dwd+FHlrFgH9t2roxTwlwU/FWJX0tyggQC95WJT0ueHnd -wFq14HGkzb7p7Mbw/JRS4dZznqB3q0gtN2mMmsnTSrJnm7grL2OJteaLKYlVIAQJWdb/xI3b70bz -uzCWiG4lElHFl2dYW2w3Jorsq8gNvVFX49IrFPN5K6Z+GvrayMzzOv1Llwle4XW4hgMOXTrnj+j2 -qKDZGzuh796cp9QX4bJeSeeJ+J3AJk5uGUQDbHUDqtSGjSyQAKDUDgDwe7ct7DA3E7zN954lwnML -57shwO4mu8nIx2R534xIBAAhEgEABMoHtQhbCZ/jvf3V29/P8d/3470loUtksX3YlUjD13uu9c8Z -9NdffL3PfOd/PebcXw3i/TfvHgT35R93jX/HHW8N9pzx9ptj8HPdtc8Z1P/vDXLtr97Ycw6C2WPO -wQ7qq/u++3bv3Yy3z/he3b/WXd/fdb5b8rG8S0KW667x1nnnuz3PYO+7a92/B0HuXZDr7vPtG9xb -d5/zzZ3jfzG/fGePMZi7xpzzLQnZu/nueGN8M7jvxZnjvTGot+RkeZaELM8X9wtq7/J7uwbz1Tln -nr2sd7/9Zn555hzr/fnGOO/MM9+XfxDEGPPOdQcvBq/HtZaEjgvijDPo3c995nqDHl9+u+b8697x -3/h61+p//90a58uz5v96+HvONwjuuznf3uNZ8rE835xv3p7kZPnF3Pd+u/5g7j9rvLHW/+urwcsz -/xsEufdb9829533/vyUny/3H/HZ/P/jB7TXH2uMP5rslJ3v/7fl+DoJ74+/5xXpffnv3IO7+e897 -735Q46sv91pLQvaCktDBc75/699BfHv+YM/3c7w5xnhrzT/ov/f97p319b7OffucPe7fZ+9dD/Lu -QXBfnEHsecbZbw3u77HuPX8Obu/m37XPWH/w+nv9vTf/7fPPvusPXknIctDbF/S41j1znXfGPv+c -9/cu73t3zTl4L+bfb5+59/yDd2vN9wY3v9f/e68HfvBe2zcIesnH8i852QtKQvZ692q9+/6ZY+1B -fC/+F0s+9oKSk70XS0KWY0noADO4+f7bezzOyos4IDTHMd2cWOPIfk6h0AFbieXFoYkLjpVI0wCg -Eo3rOpaiiGVmUGDHsuGHtZyJrRHTYBnlFbXZqulopmdoce+9Z6+DGG+/M+b9844x1thk19VYtsbR -td523jEIet5/vt5F7UPnPXfdbbD3QdqgRpdIlqfmZr251tnr7T+IPez9x3x712L/wex/9i7H+Gvt -3Qfe3rtZXTmcMcAZM40mCTJJFABk7GSZorqKUKUxwBnjkOgZxmamKZIscXRP62osW2OanutK1KBK -Y+oaMahxFdczvaToxdIT3BdvmDpT07FkLcsUUQEZ22GpyCJFFEQSjepsTccAulyp+FuJKMssVatU -XWEApOcrW/RMMTffbsfIMqZB7ANdzQi1db5WUWRHMFUM2QEAAMBMw30GP+9gvvmB+do6SbYcA4wX -MQCUYQApYQDGawQPbgxyfMHtLQJkowBECaMI7eR8bwBS1CUAOBvtfBl7D/L++715Z429BnWJxkiS -5COETtlBSCYDQOevy11nBw5+LeZJrrPVKCDzaSzWgTkGyIyqggaxj8vFZk11ufigLElNWZIazDLH -8vIYQKpmx/G9zz7W1dhqZewYgARZiC1JzWcfKCp62FqH1azGyjbypQdlHmFnupLWVBR9ViNYyRnL -PFekKl5gK3EllSpSJUufNcmI1bDM2TcGINeV5dMgdoyJBp8WsWYAp/n5NBW82uqcec44Z4f24Nny -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 -aCY4vHzEiJdOxkhuZDYrHlYyJJlNZTIkmQxJJkOSyZAs4GgQOIwEZuJxDAwMDAyMATAwvPzBAB8V -EwNcYJ4LzEPSICpwcVEyAOa5GODCYoALJh4ChBQJCBNUifAxUhYYDBAfNBBYWFhUCLjwYMMDd924 -iMcyM61tZUuJqOn72yOv4l7tt/aJLvm3jbXJvu9cNybWrO7UvNrJLNH66b8nwjqutEu+/pU9ETPr -8RJvT5+o0DZZJXI9WeUT8dP9nqib29Yaq8ru6aAt29uqBU+xcFOzpcurfhU2qrJ1+p4WxWuuZM1Y -6XVPuNX5p6O34sSN25iG2hZ1Iv8SNmblDXWfTldZpT+crnRdqeta8bRO/03cUqqWuW+1xI2FCRv7 -ybWato7fmPi6T1uKjc9JG3vviTQzq5nvZ73Vp/Mfa176eTE3NZllX7HTnuhKL61bbVsaWTm9Evra -w9k8P9Hr3OmHY1oJ+1Ld9X+i1+Kls8R2y2QpFTtxddDW9DrdmpPZO63TNnJ15/MS9VoJG6Hn/Sy7 -tJ/oi38iNn7ZGSbn75r4WPyUeWhb15ayca+Sj7udp8iWdZjXdZqn90TXid8Ik8/qubuYh935+4/x -ulRLFdf2ttJVQpfn5PQ79zdlMju0eyLcOlW9Pj6cxUzGv98Ttd2WHXO6nabq3NPSuHc7PtHaPTX/ -qfKq8OkkbNniVB+QRd8/0Wm62vXdfzpsfz4cPu2zY06GmK7uifrb+XQg21KupKypjzct//x98T4R -Z986/7XNVzLs5D0cbL2k172dmOuuZblT/zb56VRPb1Wma6m3WlNe5Z/IkJ+W/aez9tZU/Idzt/83 -4f6Jjp+nqtdzo6YrmtqmezhrV4lcL06Fl4y5Ku3+idCSrepVSr3ClsL/eemAmo9/Iv1lZedesmQs -zNpL7Ms/HTxM1U929X5m/0/0Tfvlcuo/0X6f+u7+RHlr1K10mLhW9RefJbN6Onk+9lbnE18ms6FV -ZqZjPp+oVMu0LislWp7d8cwq+fDdq1ia+sZqdkTcfSLblG/jRvsTXev9J0q9493Ub+/9XalboK3f -vbnXujnpE83+RPrr+9PuxqX2/nYZ/onOytaw9Yn66v273Fo01dXsK1S9ZTrmpX23dzdPzba+AbLO -z9xW3/0lVKssrGTFqpWbtq2F2Vg6W1id212JS5mxqiod//b07nt6zjJOymrZuam388TMPnO6xnS6 -y3WWVBlvW9uMD5uv6j/XpdzUQLdnlrXmbfpd89/fbfrurdVmtib2FeNZTi2Phnzp2lF+rpb1lfu0 -tzLpfRF/3NhJ89WY+Pxmll4na1o8S4erkmszafVT6XVNu6+XnXRV07FZPRVby1oaS+dX0zwtZ3+f -dVP5rbrGm8lK+fJMzS4bX8lrqKpa++T+VRc31zCTseUTr1WyXTb+WjGupualTb3UvY6Mz4ua2J7a -X00NdJfS6uqdblHx8KipNBlfVmdBrOykXTJrijMxs25Ltfb8szorTExV2G0sHTxqJm7TwlVj43RV -fdOU78y6pNFeWen5iZeb+Fx4p9v8lNv6XS4sNmXZsw5n8xlLt5GzexMfahS7aotXU8d3F6PyaZlp -Wis9J+Uz3407qbEoctel65St7u0X8We8Jj7VQGrIy5bsj/SujO+sq/u+dYUJUdneLVbF0tHFY+Yt -PGpl/W6Xi5NClYkRlmH27Zbun7x3e+orTcXsxGbBfeq2prSOZR4zbzJaL+ohWtLs32HlLadaG2Jh -3dYaS2qlxaesTNt0ffuMWjubNy1zH6tqPVVTH2IVZuFd4iOa2qqlOxZe65ydVh6fXTWQPRXmM/3U -yuyMWGt7ecdbtmbMSe2rqnfdez2eJTtbrZrsKOuaf9nasM2YreXG0vnzrsu2ZZ2wvpkZLaLmNZrN -nJayVv8sU7TS6sVbTpZVf6euMju+Mh9fpkqWs+5NV53GI2uf84m2OTU/xWvOdHXNE/WmJSvOP/OS -pdOpbtM8LU/0Pe7TKszdp0ZT3bTZbYhlXZvuroaViLfJjqX12UEr02uqu2aNl29s/EtG7mfagjJ1 -re7v1zwRtiYjJ3aj4W1dA3FWK+pqS5alvc7SWcOk1Sm76b+/aVrf/Ydb1sz90t1OaZmOTYPImcbW -smfpq8RZzaku85V2VVvX9Cqu5oksL9+Wl3nFe/hkycxO5Q/V2lhVA11m6pNrr2FJPmfHym5XpbWd -1zwQSh5OoW3ut8teiVXzRPmu1eq7n3Gd8vU33XGxy1IvbWdrK6ctVV6808TE1jzRctbWDzOtvQuT -IbdWljKm6xw/eTVc3Jpq0bY4y46l07Gn5mlhtNSlXbj25b7ZXcJSxCdC/TJnUtZA1lfENKxkZlle -tiz9Mb1UC7VTs5rWv8kaDfUuWVOXmA33kLsTb8sM+8ze2HjH1urSYHXqVeX35qv2SSNGLoZQs3Ix -aWnneZV3E3bYnveHc8vW+c57Le+b0yvzlXqtV1lW35cy73ZeMtbc/ohoqec7p6ZkbmQNZHUvTNXL -mocFG5O1pmq1j9ub3smMGki7LLmVV1Nb22qeqNh0NQtTFbf6WGNPx2K315qGWYybh4hvrrSdGihN -k7HmrrN/l441T9RdtZs0zbI1UGMqZu5v35J5ldzchn82o1midXPQrldXn8W417+++tZKVpZnlZ0J -r//bTtyJ1XArb5wq1O7S3eXDXaw9fNolSy5mrdK7/jtVFS3TNu7eam1xOv67M3E/L2Wp1WursEqf -lbjSTLtulbdUZGO51EzTIHPxKWojG+4pYmu/Wq2f6Oqdfa2567FSlWknLNMc7nlTl+3tMH+z/vGd -mtquY+l08OpWmqdFTbM0oaEZvzTxmSrzPU239KkJzfZy9/KoqVlWuHu8ZoeLmXc85tZz38tONa9M -+8xKVMP3v/jUiK/K97k12652nbumgdS2dpF/WTfePm6yftOUT/sqN+00E79Fz37Xt1ereVoYT5FV -8yEBQy3xSo/1yVotD0s10KbpaVqWac6Uz2y6Cfv0xU/TIFpZIaJhaiD++X62drcJW2o1z0fIQ+EZ -eTimx05Xam27vaZ5osU9mqYaka9UU6+3mhPz2eIVbzHf3TVyddo91Rlepv77rtScGjZOlcV3zTvl -yk3MnXsNlNibdccsgaGhw4KnVxWGCPWlTUUsLEvjcyc+ZW7u5kKX/x2e8ess15q567CTb2WmmY55 -k5mTL7HpHqJyXye2Jzo359+FiL2VeE+1LMytbk77i/npQGjpjld8MywOxJxViNdrt5XeDN213Vo3 -9Z+M9kRmmciXeFXEvtvtWdJlCHl7K/2qyJjWaAbxGxuteFHfdj0ztLuHeYnFuIVsyomWa7u/K6pl -d2rmJ0pO67POzifm4fJWrhX2duo6q37vh3mJW1eLeM/UWydErjK81ePi6uh5b5lZCZFTNynyE3Xb -f1SGjOuVaJbdh5eburT3VKvQEMJMZca0hYplV7Yrn0WneMWp2trav02sXy+Pqchru5mNSc2Ox2oR -d23C5OPb7OQqbtziQ34+oELbJ+Kygn5YzfhEupvJbfiExp2nff1tw072lkzDY9Xnn+hshvx6bVX+ -jsxs59/elCF+/l5psRRV+bz3TD6/7FqW1hg6w7YzvHayWr50QP1woLTGzrSmv7Vd7e91r90tps19 -oi7MVNVS7G1VbVsotc1+zdmV7shPtvt0oNtDzNLa1nT1cCD7y85QTbVO6+qKy5u3e1yl+bR9Ir5f -F+o920IuRcNb01/iv6eWMk9b7ced7m422y0+TXyE0q7fnCz34UCLXdj2TLi8V2dtL0y8/ESbbcfc -zBBe7fIVV7FYuVETq/mJKrN+iM86tLJMvdz4pJtbZXzsnB4TLi9y2rxDh4xly6ymyPX6e3mbn0j1 -0EyXr+fNYsZE071qw1taNObO5tRo1omYxrWXu423RcYtTUxnfXmt3VS3871TIiI/Ed4tGeJa1krE -Lb138o+5DfXpLG9aM7VUvmKddjquIZ81j7sKr4ibfNb8RGuqemV5nZZJi1kxJfLTgfCplf09vnR6 -tcyBdJMpMvTn1mkiMm+mRn6iylvtn4xnS4b6bLrbZ/wsttSd782skyk/HFtOaJtRU9PakaHWYi5r -Q+aE2QJhF2dWOjKkh2lZu8q8xk+kugodaiIjo54T71jPSZVLUxmXd5evEHERer6/l1eZ7phxze52 -t1MNLQuzdHOhzq06TYr7Jzs+faJKTN7j3tnUIDttPF4m8xPi+emc13QvYRcjauai5hVrn5alenx3 -mOz4iTLhuY+hN58ypmsL9MSqMzw8q/6eGGv3iazWKvGFV4l61WII7/Z9q3xb1X84kGrhXhUeOV3x -OReX8bqXdZP3ibL42NKUFxG6MT8hbu4n+p3lMTmfLKtTm/OWkLU0Me8T9SXsXc1M25/1MkKWbYqV -XozF23dse6l6yFZaDF0asmLyHbpLWNxnrMupe5/o0BT1mLAXamtew8SKkJ0V39LyQpyGppfbLVDy -4qXqLu8TAKiqk1qoP7zG9xbzoW1qehVzILEBxEpHQ2MFRKnpIzyd43fXpT7E/45Ry26fVQGA8hGB -DJ/dZz0XnqU9VHvinyiL17LquN/8lZWmsvKetiIqxMun22pb2qm8Mqw961oratUtb2tqPDfrtSKu -aZ/ZCrG4ebGbv7upEFdxb6bnj32Gem2p8oiaXHvXAl1a7/e41KxfXF31TFu7rDL7DatO27RfZ3v3 -/fIVq2stqR1CLbvauznvh78jY+biHq5lmdptr9TO2Ll4L6xUU+W75Gp+qrRNZrOuG1bn77pX2/zc -1WvTY8z8vTRR7/OYz35vY8wsrdPjm+LRztWpUKGrRcN0WXf6pG2qiaqsdjNc48u8Ng== - - - Ts/s6/7uZ1jam6mQHnIuNl/3bW4e79maZipWXd64Vbm47GV87rLj7Va7r7lZ2oaZR1vLRMb0+y/x -KuunfF6rpJumq2xquW2KnOnyzHjflaapDW+JplWpa/OeOq/1uGzGpsWl/NrGKjt93d15bXHPWIhs -/Scbl92uca9u4vkWN+vptaeV2ZryuA1Xk56m7kJH7jTIsLn19l/v5erZ4tNSt2EWa+MVH2NbYetl -1ynupW3tfXHim3mf3grtqWLXSzlQYiq0jYq6V79d4qW7Q7e1rBBq/X7ddU/EdnrHZyWjqTFmazWv -1na68nGXIqvWJtct86bXh9OXibXseM9VPC9WKVpx8buwNVOqQnpqm515VoXwXPZnA2T2lMDgKDOn -ZbpS5XolzMNV/XVZYtvMRT3lqlb8aSlyqo7dJeZm0h82b2mmo9nZ8pI2M5Zaqh9z3xOVrSVn6r7R -7lDfT/SsX24vfrWqOSlfJi09vVsyJ8wr11ajdeqKh9jSuryNif2ywraEike2PRd3Ytx3tKXwqVrx -dkvH7y6+p3E2pv3IqlBWIm5x8qMrqybuO+6eLfsUssrW5IfTyG/kxHWFz6ixL3XL7XXW6SZGNLvn -7lVSRe1v8i223Gatph/tGLsXr1uqCdFY0x5jQl21fTiIerwq9L7ju90vXy91y94tZ2o+HDPFxPfV -YW/iRN57p7LfdmqWKncap23+xYl791e+Lx0+nMxU/ct8ouXW95m3sJVvlq1PO7N0a0u3P53VTJ0d -zX411k9LIVw1PHK9AVS3NN7iZHbabdV2vNN9prbVVNpnXLay27zEs6sOMu9fld1VnLruZZyUdVPV -Wf+JUBffuufbPZ1utFT5pBxpYt76rDSxE9ZeLbVSO2p8a+V0/HBSdTVhXeVVer+48lJjYi9eqt5m -rNRVxbudmBfzktVWHtk0lab3n6jKdF/5ei6W7mJWbSftaO5d/3DQmK3eh53VqMmpszjWWZ2LrZy4 -b5vTajb+FutZKfuUk7cvc6tTiefErFBjVz+cTn6u3TG16U370u31ndZmYn3vaWJm49q1lGiGnFD5 -Ho5la/1oaqn4Fn/MbouObXn/tLrHvKk17XzVZon5iezGa9yLaL/jolZSVqg78d3+h9O6eVZNiz+O -6p7/ZddhSlZW3M0y/K/X/kR9VbtQGyJfuzd1+TCtpR334RzVtp+4dXfze2t5aJ3sltj0hYapjJbq -bpiwDK+p+RYhD4Vn5OGUtVq6jTZPT7u6d3W7M7F57Vy/XSfsQOfbnvWVMLevbVft9Co5Vy299Img -S908ZUXEVU7WCXVtp/Ht1V3CvrK3dWPVFm51su7e1FfcvapMy4VXnFpX2LernZYKS/HpmXdZlm9c -vdRKjcjycKC+Tj3VzTqrhH3KxoWpaTufSFfTcperOTk1j8/bXNWWtx8rS0f1imq2nJy7yiey/Y8X -K9G0s3s7d5H32JrXpbiq+US5dWV8Wlc+F5Ezb2+r1DYfFkgtm+20kzuXq5LxYnZm8m7frqlXN1fX -etvyiSwvi/WXmqtnFlbUbH5rPhwoD2tvy9edihPiTKu2e+niE60q4nVaTi0249zvNZ/oe8uJ9xfU -zSzI3crSuVS0Tcf5tCjXPY+YT6T4rTRE7bSzh2Xbeo/94+5q1UVEftLNhLBxEzrr03yid+NlcqZE -+94mw0S7XKy89qXEfCK7b96YD/nv/R1f9R8Wvk5rvbScaTM5rTkxJxt0zGpot7/KvLJV5hM98e4q -NRFNn/u+ZOl0tp6XTwt3JiddVOsytER7or1vQrqa3NjFSVe3M2/ZtBNS3j03W7f0nm+J15eydcpt -yyfqXxZjX6Puw4FsmxPqhJe2y/lEhvqE74SOT8s2TXtZfMOzfCCULEsH+eq2cy9s1UROrk2oz3JZ -OpBxFd7+9YTduWlhM549AYBKhMklVtv1kqWlIZu1QG1XuKWMhfoEADLrcyUjnmkxIj6XMeUtryLe -drvLzm1qvU/LaRYj25/YqGn21LfUm2Za72Yloh6fnBpvK6E9LWXaop7dFc+Wp8YprUu3b/Wcx+Pr -c3ZaXt+4i3hlxraZ0L4lb9Q8Q40i3902YaMdU7P1lVSz2aa2t7aqeTQ9zOO/rvBMzrYll4aWbYys -m/7WdLmJe3rD83m7+V53xv8lHirmc3Pv+BSzzKSuyjR3E7WM08rWku6dtkD6NeY1qf2W9OVxa393 -dYYmu3krTv+3j6iLadt2T2x6V+NjcqXhEwDIXrjM/fSn4661+UPWzlde4uPe2911N282Vp1t2x6a -2q97dovpydpctXanfWR72892tT7lSqvf/Nv4usuOVnrWiMx1yZK/XYh6l/jMNF+9l3arNzKUhd96 -0vtd135H3lTXdT186dPhmfFV9fV/2/PWu/3cqqq+zUS87lPomVe2jc0/NrzsU75L9cP8nqVu9tpl -UrRMtUMuOzP+ZZmqntGOD69mm8lQocO/2VjV3oqVnNoqzRRSTdZaLmtd02beMktrdqlsfHe7W73e -VevHxLdXHZ63ci0dKiOmpWby/s74bXZZh8q6jfm8xn0iqJ8ozZavoz6rNYY41fjMMJVxy3nXTtON -tyxN64mFh/mr5p610mWmNeelxC2sxPl+PtG7MSO2ZtvEiYWYTBVzWdXyNq/WnkhT7xmrbmtW2ie6 -Vd5t2yOzPtfWslJVNe/dZn3U2622iSX9nnYpJ57a6loyRcXLS6esfNaupIrHl41slmfbjWm5cy0l -6vOyUu3mu3QR94nwNG2P0xJZVY8vN+0ulLqNt8JVrMvLZb3yotnfqRk1709UmWyhNHui6zbT3Scy -bMxLx2ep1toNu1LiQnpWzJire+kqz/JQzZKqQrdaaZcW92lQt3TW6bBXLeGiYh+vuRKiXt4TIer1 -ExUiL1Y67KfzLY6mRm3L1mTYT7TXjU+ErQmv2a7TXmPfMxU+kZ5PE2L3E93108GrtHf9tNwbNWlZ -PxGWJUvrRH1tPy3V/UTW2k9Hrx9O4qa/E173E1nnpbvepKdQbsrqp/NwuFK9n6irDe0Sv++JomRO -xYjdwvxEalzpDs/+pBztVNWoOR23XN1dwuTETqtpW2yVI047TUunl7jF+k9HfXryw7mrw3QWZTqe -Hisxdg51k93DSXfXdMhPdKnHT5ba6SCbKHKapVW9Uzcj4v9SvFkyHtZZ521bc097U5951U/EvAmr -DZt3q22v2v1wWs9dmJ66+om6jdNtdRV3OssYte3aNlVzlNIKf810/EQ/TqnL/HTOSWv5vAmVk3Uy -5idKyXyrlZj3mUrXsPPhHNtdWy+38X5VOXW8u5VenZL5iZZ510obbddKO9va2/xwtH+JOWlLcqZx -Oj7jb6dKjtT0X8VO77tfSxV32yVWVMMn4uNUmCk3V7UYK+VurqYvP9EiJlNNqoWM6TSh9t314Twv -rZ4aF+4m2+VoWRkzWyrtSvmJ7pk0NU8Tt1lCVd7cTjVNavkvNj7hpcLO59PJ5KzVX77Kzsm2pRux -dy+63UymZmnGiW+a9hjbUq1eKd6uN51Tn59o85ipmvhKDX+my+n6RPUnuhpbdsJVW96yfq+qrp4b -z0+uPWbuPL10M9FOvM11e1z5xId2dUvs3VzDS8PO3MpeRuXmuqPtN7/pvRAr8qL2j1zIqXk9LUxq -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 - - - diff --git a/src/assets/logo.svg b/src/assets/logo.svg index c0461997..97f3aed8 100644 --- a/src/assets/logo.svg +++ b/src/assets/logo.svg @@ -1,10 +1,38 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + diff --git a/src/assets/marker_map_icon.png b/src/assets/marker_map_icon.png deleted file mode 100644 index f32428ce..00000000 Binary files a/src/assets/marker_map_icon.png and /dev/null differ diff --git a/src/assets/marker_map_icon.svg b/src/assets/marker_map_icon.svg deleted file mode 100644 index cbc3e935..00000000 --- a/src/assets/marker_map_icon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/assets/no-error.svg b/src/assets/no-error.svg deleted file mode 100644 index cfa6fbbe..00000000 --- a/src/assets/no-error.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/search-icon.svg b/src/assets/search-icon.svg deleted file mode 100644 index a3e6f5f3..00000000 --- a/src/assets/search-icon.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/public/icons/twitter.svg b/src/assets/x.svg similarity index 89% rename from public/icons/twitter.svg rename to src/assets/x.svg index 23c782a5..76a8f1ab 100644 --- a/public/icons/twitter.svg +++ b/src/assets/x.svg @@ -1,3 +1,3 @@ - + diff --git a/src/components/Admin/DownloadLogs.tsx b/src/components/Admin/DownloadLogs.tsx deleted file mode 100644 index 7a26cbbe..00000000 --- a/src/components/Admin/DownloadLogs.tsx +++ /dev/null @@ -1,162 +0,0 @@ -import React, { useCallback, useState } from 'react' -import Image from 'next/image' -import { useAdminContext } from '@context/AdminProvider' -import { - Button, - TextField, - Select, - MenuItem, - FormControl, - InputLabel -} from '@mui/material' -import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs' -import { LocalizationProvider, DateTimePicker } from '@mui/x-date-pickers' -import dayjs, { Dayjs } from 'dayjs' - -import DownloadSVG from '../../assets/download.svg' -import styles from './index.module.css' - -export default function DownloadButton() { - const [showFilters, setShowFilters] = useState(false) - const [isLoading, setLoading] = useState(false) - const [startDate, setStartDate] = useState(dayjs()) - const [endDate, setEndDate] = useState(dayjs()) - const [maxLogs, setMaxLogs] = useState('') - const [moduleName, setModuleName] = useState('') - const [level, setLevel] = useState('') - const { signature, expiryTimestamp } = useAdminContext() - - const downloadLogs = useCallback(async () => { - const startDateParam = startDate ? `&startTime=${startDate.toISOString()}` : '' - const endDateParam = endDate ? `&endTime=${endDate.toISOString()}` : '' - const maxLogsParam = maxLogs ? `&maxLogs=${maxLogs}` : '' - const moduleNameParam = - moduleName && moduleName !== 'all' ? `&moduleName=${moduleName}` : '' - const levelParam = level && level !== 'all' ? `&level="${level}"` : '' - - setLoading(true) - try { - if (!expiryTimestamp || !signature) { - console.error('Missing expiryTimestamp or signature') - return - } - const response = await fetch( - `/logs?${startDateParam}${endDateParam}${maxLogsParam}${moduleNameParam}${levelParam}`, - { - headers: { - 'Content-Type': 'application/json' - }, - method: 'POST', - body: JSON.stringify({ expiryTimestamp, signature }) - } - ) - const data = await response.json() - if (data) { - const dataStr = - 'data:application/json;charset=utf-8,' + - encodeURIComponent(JSON.stringify(data)) - const download = document.createElement('a') - download.setAttribute('href', dataStr) - download.setAttribute('download', 'LogsData.json') - document.body.appendChild(download) - download.click() - download.remove() - } - setLoading(false) - } catch (error) { - console.error(error) - setLoading(false) - } - }, [startDate, endDate, maxLogs, moduleName, level]) - - return ( -
- - - {showFilters && ( -
- - - setStartDate(newDate)} - /> - - - setEndDate(newDate)} - /> - - - setMaxLogs(e.target.value)} - fullWidth - margin="normal" - variant="outlined" - /> - - Module Name - - - - - Level - - - - -
- )} -
- ) -} diff --git a/src/components/Admin/ReindexChain.tsx b/src/components/Admin/ReindexChain.tsx deleted file mode 100644 index 8d66cec5..00000000 --- a/src/components/Admin/ReindexChain.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import React, { useState } from 'react' -import styles from './index.module.css' -import { useAdminContext } from '@context/AdminProvider' -import Button from '@mui/material/Button' -import NetworkSelector from '../shared/NetworkSelector' -import { CommandStatus, JobStatus } from '@/shared/types/JobTypes' -import { checkJobPool, getSeverityFromStatus, isJobDone } from '@/shared/utils/jobs' -import JobStatusPanel from '../JobStatusPanel' -import { clearInterval } from 'timers' - -export default function ReIndexChain() { - const [showChainInput, setShowChainInput] = useState(false) - const [isLoading, setLoading] = useState(false) - const [chainId, setChainId] = useState() - const { signature, expiryTimestamp } = useAdminContext() - const [severity, setSeverity] = useState('info') - const [job, setJob] = useState(null) - - let intervalId: any = null - - async function reIndex() { - setLoading(true) - try { - const apiUrl = '/directCommand' - if (expiryTimestamp && signature && chainId) { - const response = await fetch(apiUrl, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - }, - method: 'POST', - body: JSON.stringify({ - command: 'reindexChain', - chainId, - expiryTimestamp, - signature - }) - }) - if (response.status === 200) { - const jobData = await response.json() - setSeverity(jobData.status === CommandStatus.DELIVERED ? 'info' : 'error') - setJob(jobData) - alert(`Chain with ID ${chainId} is now being reindexed.`) - let done = false - intervalId = setInterval(async () => { - // its an array of jobs or empty array - const statusJob = await checkJobPool(jobData.jobId) - if (statusJob.length === 1) { - const job = statusJob[0] - setSeverity(getSeverityFromStatus(job.status)) - done = isJobDone(job.status) - setJob(job) - } else { - // clear the Job status panel - setJob(null) - } - }, 3000) - if (done && intervalId) { - clearInterval(intervalId) - } - setShowChainInput(false) - } else { - alert('Error reindexing chain. Please try again.') - } - } - } catch (error) { - console.error('error', error) - } finally { - setLoading(false) - } - } - - return ( -
- - - {showChainInput && ( -
- - - -
- )} - -
- ) -} diff --git a/src/components/Admin/ReindexTransaction.tsx b/src/components/Admin/ReindexTransaction.tsx deleted file mode 100644 index 3c17326d..00000000 --- a/src/components/Admin/ReindexTransaction.tsx +++ /dev/null @@ -1,106 +0,0 @@ -import React, { useState } from 'react' -import styles from './index.module.css' -import { useAdminContext } from '@context/AdminProvider' -import Button from '@mui/material/Button' -import { TextField } from '@mui/material' -import NetworkSelector from '../shared/NetworkSelector' -import { CommandStatus, JobStatus } from '@/shared/types/JobTypes' -import { checkJobPool, getSeverityFromStatus, isJobDone } from '@/shared/utils/jobs' -import JobStatusPanel from '../JobStatusPanel' - -export default function ReIndexTransaction() { - const [showChainInput, setShowChainInput] = useState(false) - const [isLoading, setLoading] = useState(false) - const [chainId, setChainId] = useState() - const [txId, setTxId] = useState() - const { signature, expiryTimestamp } = useAdminContext() - const [severity, setSeverity] = useState('info') - const [job, setJob] = useState(null) - - let intervalId: any = null - async function reIndexTx() { - setLoading(true) - try { - const apiUrl = '/directCommand' - if (expiryTimestamp && signature && chainId && txId) { - const response = await fetch(apiUrl, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - }, - method: 'POST', - body: JSON.stringify({ - command: 'reindexTx', - chainId, - txId, - expiryTimestamp, - signature - }) - }) - if (response.status === 200) { - const jobData = await response.json() - setSeverity(jobData.status === CommandStatus.DELIVERED ? 'info' : 'error') - setJob(jobData) - alert( - `Transaction with TX ID ${txId} on chain ${chainId} is now being reindexed.` - ) - let done = false - intervalId = setInterval(async () => { - // its an array of jobs or empty array - const statusJob = await checkJobPool(jobData.jobId) - if (statusJob.length === 1) { - const job = statusJob[0] - setSeverity(getSeverityFromStatus(job.status)) - done = isJobDone(job.status) - setJob(job) - } else { - // clear the Job status panel - setJob(null) - } - }, 3000) - if (done && intervalId) { - clearInterval(intervalId) - } - setShowChainInput(false) - } else { - alert('Error reindexing transaction. Please try again.') - } - } - } catch (error) { - console.error('error', error) - } finally { - setLoading(false) - } - } - - return ( -
- - - {showChainInput && ( -
- - setTxId(e.target.value)} - fullWidth - margin="normal" - variant="outlined" - /> - -
- )} - -
- ) -} diff --git a/src/components/Admin/StopNode.tsx b/src/components/Admin/StopNode.tsx deleted file mode 100644 index 8b704026..00000000 --- a/src/components/Admin/StopNode.tsx +++ /dev/null @@ -1,46 +0,0 @@ -import React, { useState } from 'react' -import styles from './index.module.css' -import { useAdminContext } from '@context/AdminProvider' -import Button from '@mui/material/Button' - -export default function StopNode() { - const [isLoading, setLoading] = useState(false) - const { signature, expiryTimestamp } = useAdminContext() - - async function stopNode() { - setLoading(true) - try { - const apiUrl = '/directCommand' - if (expiryTimestamp && signature) { - await fetch(apiUrl, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - }, - method: 'POST', - body: JSON.stringify({ - command: 'stopNode', - expiryTimestamp, - signature - }) - }) - } - alert('The node has been stopped. The dashboard will no longer be displayed.') - window.location.reload() - } catch (error) { - console.error('error', error) - } finally { - setLoading(false) - } - } - - const Spinner = () => { - return - } - - return ( - - ) -} diff --git a/src/components/Admin/index.module.css b/src/components/Admin/index.module.css deleted file mode 100644 index 321d3076..00000000 --- a/src/components/Admin/index.module.css +++ /dev/null @@ -1,145 +0,0 @@ -.download { - display: flex; - flex-direction: row; - justify-content: center; - flex-wrap: nowrap; - align-items: center; - width: 100%; - gap: 4px; - color: #4a5360; - font-family: 'Sharp Sans', Helvetica, Arial, sans-serif; - font-size: 16px; - font-style: normal; - font-weight: 500; - line-height: 140%; - text-align: left; - background: transparent; - border: transparent; -} - -.unlockButton { - padding: 10px 20px; - background-color: #007bff; - border: none; - color: white; - text-transform: uppercase; - font-weight: bold; - cursor: pointer; - transition: - background-color 0.3s, - transform 0.2s; - border-radius: 4px; - outline: none; -} - -.unlockButton:hover { - background-color: #0056b3; - transform: scale(1.05); -} - -.unlockButton:active { - transform: scale(0.95); -} - -.unlockButton:focus { - box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.5); -} - -.buttonIcon { - color: #a0aec0; -} - -.download:hover { - background-color: transparent; - color: black; -} - -.loader { - width: 48px; - height: 48px; - border: 3px dotted #fff; - border-style: solid solid dotted dotted; - border-radius: 50%; - display: inline-block; - position: relative; - box-sizing: border-box; - animation: rotation 2s linear infinite; -} -.loader::after { - content: ''; - box-sizing: border-box; - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - margin: auto; - border: 3px dotted #ff3d00; - border-style: solid solid dotted; - width: 24px; - height: 24px; - border-radius: 50%; - animation: rotationBack 1s linear infinite; - transform-origin: center center; -} - -@keyframes rotation { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} -@keyframes rotationBack { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(-360deg); - } -} - -.root { - border-radius: 12px; - background: #fff; - max-width: 320px; - min-width: 245px; - display: flex; - flex-direction: column; - padding: 20px; -} - -.title { - color: #3d4551; - font-family: Helvetica; - font-size: 20px; - font-style: normal; - font-weight: 700; - line-height: 140%; - margin-bottom: 47px; -} - -.unauthorised { - color: #ff3d00; -} - -@media screen and (max-width: 700px) { - .root { - max-width: none; - width: 90vw; - margin: 0 auto; - padding: 20px; - } -} - -@media (max-width: 768px) { - .download { - font-size: 14px; - } - - .unlockButton { - padding: 8px 16px; - font-size: 14px; - } -} diff --git a/src/components/Admin/index.tsx b/src/components/Admin/index.tsx deleted file mode 100644 index 956be888..00000000 --- a/src/components/Admin/index.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React from 'react' -import styles from './index.module.css' -import DownloadLogs from '../Admin/DownloadLogs' -import StopNode from '../Admin/StopNode' -import { useAdminContext } from '@/context/AdminProvider' -import { useAccount } from 'wagmi' -import { ConnectButton } from '@rainbow-me/rainbowkit' -import Stack from '@mui/material/Stack' -import ReIndexChain from './ReindexChain' -import ReIndexTransaction from './ReindexTransaction' - -export default function AdminActions() { - const { generateSignature, signature, validTimestamp, admin } = useAdminContext() - const { isConnected } = useAccount() - - return ( -
-
ADMIN ACTIONS
- {!isConnected && } - {isConnected && !admin && ( -
Your account does not have admin access
- )} - - {(!signature || !validTimestamp) && isConnected && admin && ( - - )} - {isConnected && signature && validTimestamp && isConnected && admin && ( - - - - - - - )} -
- ) -} diff --git a/src/components/AnimatedConnections/Animated.module.css b/src/components/AnimatedConnections/Animated.module.css deleted file mode 100644 index 5d742b0f..00000000 --- a/src/components/AnimatedConnections/Animated.module.css +++ /dev/null @@ -1,21 +0,0 @@ -.backgroundWrapper { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: -1; - overflow: hidden; -} - -.backgroundWrapper svg { - width: 100%; - height: 100%; - object-fit: cover; -} - -@media (max-width: 768px) { - .backgroundWrapper { - display: none; - } -} diff --git a/src/components/AnimatedConnections/AnimatedBackground.tsx b/src/components/AnimatedConnections/AnimatedBackground.tsx deleted file mode 100644 index bb45b07c..00000000 --- a/src/components/AnimatedConnections/AnimatedBackground.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react' -import styles from './Animated.module.css' -import dynamic from 'next/dynamic' -import JParticleAnimation from './JParticleAnimation' - -const AnimatedNet = dynamic(() => import('../AnimatedConnections/AnimatedNet'), { - ssr: false -}) - -const AnimatedBackground: React.FC = () => { - return ( -
- {/* */} - -
- ) -} - -export default AnimatedBackground diff --git a/src/components/AnimatedConnections/AnimatedConnections.tsx b/src/components/AnimatedConnections/AnimatedConnections.tsx deleted file mode 100644 index 6dd3c532..00000000 --- a/src/components/AnimatedConnections/AnimatedConnections.tsx +++ /dev/null @@ -1,375 +0,0 @@ -// components/ThreeScene.tsx - -import React, { useEffect, useRef } from 'react' -import * as THREE from 'three' - -const ThreeScene: React.FC = () => { - const mountRef = useRef(null) - - useEffect(() => { - let camera: THREE.PerspectiveCamera - let scene: THREE.Scene - let renderer: THREE.WebGLRenderer - let group: THREE.Group - let particlesData: any[] = [] - let positions: Float32Array - let colors: Float32Array - let particles: THREE.BufferGeometry - let pointCloud: THREE.Points - let particlePositions: Float32Array - let linesMesh: THREE.LineSegments - - const maxParticleCount = 200 // Adjusted for performance - let particleCount = 150 - const r = 800 - const rHalf = r / 2 - - const effectController = { - showDots: true, - showLines: true, - minDistance: 150, - limitConnections: false, - maxConnections: 75, - particleCount: particleCount, - minSize: 15, // Minimum particle size - maxSize: 20 // Maximum particle size - } - - const gridSize = 20 // For spatial partitioning - const grid: Map = new Map() - - const neighborOffsets = [-1, 0, 1] - - const desiredFPS = 30 - let lastRenderTime = 0 - - const init = () => { - if (!mountRef.current) return - const container = mountRef.current - - // Camera - camera = new THREE.PerspectiveCamera( - 45, - window.innerWidth / window.innerHeight, - 1, - 4000 - ) - camera.position.z = 1750 - - // Scene - scene = new THREE.Scene() - scene.background = null - - // Group - group = new THREE.Group() - scene.add(group) - - // Particles - const segments = maxParticleCount * maxParticleCount - positions = new Float32Array(segments * 3) - colors = new Float32Array(segments * 3) - - // Define shaders for custom point sizes and colors - const particleVertexShader = ` - attribute float size; - varying float vAlpha; - - void main() { - vAlpha = 1.0; - vec4 mvPosition = modelViewMatrix * vec4(position, 1.0); - gl_PointSize = size * (600.0 / -mvPosition.z); - gl_Position = projectionMatrix * mvPosition; - } - ` - - const particleFragmentShader = ` - uniform vec3 color; - varying float vAlpha; - - void main() { - gl_FragColor = vec4(color, vAlpha); - - // Render particles as circles - float dist = length(gl_PointCoord - vec2(0.5, 0.5)); - if (dist > 0.5) discard; - } - ` - - // Particle material with custom shaders - const pMaterial = new THREE.ShaderMaterial({ - uniforms: { - color: { value: new THREE.Color('#CF1FB1') } // Node color set here - }, - vertexShader: particleVertexShader, - fragmentShader: particleFragmentShader, - transparent: true, - depthTest: false, - blending: THREE.AdditiveBlending - }) - - particles = new THREE.BufferGeometry() - particlePositions = new Float32Array(maxParticleCount * 3) - const sizes = new Float32Array(maxParticleCount) - - for (let i = 0; i < maxParticleCount; i++) { - const x = Math.random() * r - r / 2 - const y = Math.random() * r - r / 2 - const z = Math.random() * r - r / 2 - - particlePositions[i * 3] = x - particlePositions[i * 3 + 1] = y - particlePositions[i * 3 + 2] = z - - // Assign random sizes using effectController.minSize and maxSize - sizes[i] = - effectController.minSize + - Math.random() * (effectController.maxSize - effectController.minSize) - - particlesData.push({ - velocity: new THREE.Vector3( - -1 + Math.random() * 2, - -1 + Math.random() * 2, - -1 + Math.random() * 2 - ), - numConnections: 0 - }) - } - - particles.setDrawRange(0, particleCount) - particles.setAttribute( - 'position', - new THREE.BufferAttribute(particlePositions, 3).setUsage(THREE.DynamicDrawUsage) - ) - particles.setAttribute( - 'size', - new THREE.BufferAttribute(sizes, 1).setUsage(THREE.DynamicDrawUsage) - ) - - pointCloud = new THREE.Points(particles, pMaterial) - group.add(pointCloud) - - // Lines - const geometry = new THREE.BufferGeometry() - - geometry.setAttribute( - 'position', - new THREE.BufferAttribute(positions, 3).setUsage(THREE.DynamicDrawUsage) - ) - geometry.setAttribute( - 'color', - new THREE.BufferAttribute(colors, 3).setUsage(THREE.DynamicDrawUsage) - ) - - geometry.computeBoundingSphere() - geometry.setDrawRange(0, 0) - - const material = new THREE.LineBasicMaterial({ - vertexColors: true, - blending: THREE.AdditiveBlending, - transparent: true - }) - - linesMesh = new THREE.LineSegments(geometry, material) - group.add(linesMesh) - - // Renderer - renderer = new THREE.WebGLRenderer({ antialias: true }) - renderer.setPixelRatio(0.75) // Adjusted for performance - renderer.setSize(window.innerWidth, window.innerHeight) - renderer.setClearColor(0x0e001a, 1) - container.appendChild(renderer.domElement) - - // Start animation - requestAnimationFrame(animate) - - // Handle window resize - window.addEventListener('resize', onWindowResize) - } - - const onWindowResize = () => { - if (!mountRef.current) return - - camera.aspect = window.innerWidth / window.innerHeight - camera.updateProjectionMatrix() - - renderer.setSize(window.innerWidth, window.innerHeight) - } - - const getGridCell = (x: number, y: number, z: number) => { - const cellSize = r / gridSize - const xi = Math.floor((x + rHalf) / cellSize) - const yi = Math.floor((y + rHalf) / cellSize) - const zi = Math.floor((z + rHalf) / cellSize) - return `${xi},${yi},${zi}` - } - - const animate = (time: number) => { - const delta = time - lastRenderTime - - if (delta < 1000 / desiredFPS) { - requestAnimationFrame(animate) - return - } - lastRenderTime = time - - let vertexpos = 0 - let colorpos = 0 - let numConnected = 0 - const maxConnections = effectController.limitConnections - ? effectController.maxConnections - : Infinity - const minDistanceSq = effectController.minDistance * effectController.minDistance - - particlesData.forEach((particleData) => { - particleData.numConnections = 0 - }) - - // Clear the grid - grid.clear() - - // Update particles and assign to grid cells - for (let i = 0; i < particleCount; i++) { - const i3 = i * 3 - let dx = 0, - dy = 0, - dz = 0, - distSq = 0 - - const particleData = particlesData[i] - - // Update particle positions - particlePositions[i3] += particleData.velocity.x - particlePositions[i3 + 1] += particleData.velocity.y - particlePositions[i3 + 2] += particleData.velocity.z - - // Bounce particles off walls - if (particlePositions[i3] < -rHalf || particlePositions[i3] > rHalf) - particleData.velocity.x = -particleData.velocity.x - if (particlePositions[i3 + 1] < -rHalf || particlePositions[i3 + 1] > rHalf) - particleData.velocity.y = -particleData.velocity.y - if (particlePositions[i3 + 2] < -rHalf || particlePositions[i3 + 2] > rHalf) - particleData.velocity.z = -particleData.velocity.z - - // Assign to grid - const x = particlePositions[i3] - const y = particlePositions[i3 + 1] - const z = particlePositions[i3 + 2] - - const cell = getGridCell(x, y, z) - if (!grid.has(cell)) { - grid.set(cell, []) - } - grid.get(cell)!.push(i) - } - - // Update particle attributes - particles.attributes.position.needsUpdate = true - - // Check connections - for (let i = 0; i < particleCount; i++) { - const particleDataA = particlesData[i] - const i3 = i * 3 - - if (particleDataA.numConnections >= maxConnections) continue - - // Get the cell indices - const cellSize = r / gridSize - const xi = Math.floor((particlePositions[i3] + rHalf) / cellSize) - const yi = Math.floor((particlePositions[i3 + 1] + rHalf) / cellSize) - const zi = Math.floor((particlePositions[i3 + 2] + rHalf) / cellSize) - - // Iterate over neighboring cells - for (let dxCell of neighborOffsets) { - for (let dyCell of neighborOffsets) { - for (let dzCell of neighborOffsets) { - const neighborCell = `${xi + dxCell},${yi + dyCell},${zi + dzCell}` - if (grid.has(neighborCell)) { - const neighbors = grid.get(neighborCell)! - for (let j of neighbors) { - if (j <= i) continue // Avoid duplicates and self-check - const particleDataB = particlesData[j] - if (particleDataB.numConnections >= maxConnections) continue - - const j3 = j * 3 - - const dx = particlePositions[i3] - particlePositions[j3] - const dy = particlePositions[i3 + 1] - particlePositions[j3 + 1] - const dz = particlePositions[i3 + 2] - particlePositions[j3 + 2] - const distSq = dx * dx + dy * dy + dz * dz - - if (distSq < minDistanceSq) { - particleDataA.numConnections++ - particleDataB.numConnections++ - - const alpha = 1.0 - Math.sqrt(distSq) / effectController.minDistance - - positions[vertexpos++] = particlePositions[i3] - positions[vertexpos++] = particlePositions[i3 + 1] - positions[vertexpos++] = particlePositions[i3 + 2] - - positions[vertexpos++] = particlePositions[j3] - positions[vertexpos++] = particlePositions[j3 + 1] - positions[vertexpos++] = particlePositions[j3 + 2] - - colors[colorpos++] = alpha - colors[colorpos++] = alpha - colors[colorpos++] = alpha - - colors[colorpos++] = alpha - colors[colorpos++] = alpha - colors[colorpos++] = alpha - - numConnected++ - } - } - } - } - } - } - } - - linesMesh.geometry.setDrawRange(0, numConnected * 2) - - if (numConnected > 0) { - linesMesh.geometry.attributes.position.needsUpdate = true - linesMesh.geometry.attributes.color.needsUpdate = true - } - - render() - - requestAnimationFrame(animate) - } - - const render = () => { - group.rotation.y += 0.002 - renderer.render(scene, camera) - } - - init() - - // Cleanup on unmount - return () => { - window.removeEventListener('resize', onWindowResize) - renderer.dispose() - if (mountRef.current) { - mountRef.current.removeChild(renderer.domElement) - } - } - }, []) - - return ( -
- ) -} - -export default ThreeScene diff --git a/src/components/AnimatedConnections/AnimatedNet.tsx b/src/components/AnimatedConnections/AnimatedNet.tsx deleted file mode 100644 index aba26bea..00000000 --- a/src/components/AnimatedConnections/AnimatedNet.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import React, { useEffect, useRef } from 'react' -import NET from './vanta.net.js' -import * as THREE from 'three' - -const AnimatedNet: React.FC = () => { - const vantaRef = useRef(null) - - useEffect(() => { - let vantaEffect: any - if (vantaRef.current) { - vantaEffect = NET({ - el: vantaRef.current, - mouseControls: true, - touchControls: true, - gyroControls: false, - minHeight: 200.0, - minWidth: 200.0, - scale: 1.5, - scaleMobile: 1.0, - points: 3.0, - maxDistance: 16.0, - spacing: 20.0, - color: 0xbd2881, // Node color - linkColor: 0x7b1173, // Link color - nodeSize: 1.4, // Node size - lineThickness: 0.1, // Line thickness - backgroundColor: 0x0e001a, - THREE: THREE - }) - } - return () => { - if (vantaEffect) vantaEffect.destroy() - } - }, []) - - return
-} - -export default AnimatedNet diff --git a/src/components/AnimatedConnections/JParticleAnimation.tsx b/src/components/AnimatedConnections/JParticleAnimation.tsx deleted file mode 100644 index eb10fd90..00000000 --- a/src/components/AnimatedConnections/JParticleAnimation.tsx +++ /dev/null @@ -1,94 +0,0 @@ -import React, { useEffect, useRef, useState } from 'react' -import jparticles from 'jparticles' - -const JParticleAnimation: React.FC = () => { - const containerRef = useRef(null) - const [JParticles, setJParticles] = useState(null) - const particleInstanceRef = useRef(null) - - useEffect(() => { - if (!containerRef.current) { - return - } - - const initJParticles = async () => { - try { - const JParticlesModule = await import('jparticles') - - setJParticles(JParticlesModule) - } catch (error) { - console.error('Error initializing JParticles:', error) - } - } - - initJParticles() - }, []) - - useEffect(() => { - if (!JParticles || !containerRef.current) return - - const createParticle = () => { - if (!particleInstanceRef.current) { - particleInstanceRef.current = new JParticles.Particle(containerRef.current, { - num: 90, - color: ['#7b1173', '#cf1fb14d'], - lineShape: 'cube', - lineWidth: 1, - range: 2000, - proximity: 150, - parallax: true, - maxR: 20.5, - minR: 10.5, - minSpeed: 0.1, - maxSpeed: 0.2, - parallaxLayer: [1, 3, 5, 10], - parallaxStrength: 5 - }) - } - } - - createParticle() - - const handleResize = () => { - if ( - particleInstanceRef.current && - typeof particleInstanceRef.current.resize === 'function' - ) { - particleInstanceRef.current.resize() - } - } - - const handleMouseMove = (event: MouseEvent) => { - if (!containerRef.current) return - const { clientX, clientY } = event - const { width, height } = containerRef.current.getBoundingClientRect() - const x = (clientX / width - 0.5) * 2 - const y = (clientY / height - 0.5) * 2 - - if (particleInstanceRef.current && particleInstanceRef.current.setOptions) { - particleInstanceRef.current.setOptions({ - parallaxX: x * 100, - parallaxY: y * 100 - }) - } - } - - window.addEventListener('resize', handleResize) - window.addEventListener('mousemove', handleMouseMove) - - return () => { - if ( - particleInstanceRef.current && - typeof particleInstanceRef.current.destroy === 'function' - ) { - particleInstanceRef.current.destroy() - } - window.removeEventListener('resize', handleResize) - window.removeEventListener('mousemove', handleMouseMove) - } - }, [JParticles]) - - return
-} - -export default JParticleAnimation diff --git a/src/components/AnimatedConnections/_base.js b/src/components/AnimatedConnections/_base.js deleted file mode 100644 index ace52a17..00000000 --- a/src/components/AnimatedConnections/_base.js +++ /dev/null @@ -1,406 +0,0 @@ -// _base.js - -import { mobileCheck, q, color2Hex, clearThree } from './helpers.js' - -const win = typeof window == 'object' -let THREE = (win && window.THREE) || {} -if (win && !window.VANTA) window.VANTA = {} -const VANTA = (win && window.VANTA) || {} -VANTA.register = (name, Effect) => { - return (VANTA[name] = (opts) => new Effect(opts)) -} -VANTA.version = '0.5.24' - -export { VANTA } - -// Namespace for errors -const error = function () { - Array.prototype.unshift.call(arguments, '[VANTA]') - return console.error.apply(this, arguments) -} - -VANTA.VantaBase = class VantaBase { - constructor(userOptions = {}) { - if (!win) return false - VANTA.current = this - this.windowMouseMoveWrapper = this.windowMouseMoveWrapper.bind(this) - this.windowTouchWrapper = this.windowTouchWrapper.bind(this) - this.windowGyroWrapper = this.windowGyroWrapper.bind(this) - this.resize = this.resize.bind(this) - this.animationLoop = this.animationLoop.bind(this) - this.restart = this.restart.bind(this) - - const defaultOptions = - typeof this.getDefaultOptions === 'function' - ? this.getDefaultOptions() - : this.defaultOptions - this.options = Object.assign( - { - mouseControls: true, - touchControls: true, - gyroControls: false, - minHeight: 200, - minWidth: 200, - scale: 1, - scaleMobile: 1 - }, - defaultOptions - ) - - if (userOptions instanceof HTMLElement || typeof userOptions === 'string') { - userOptions = { el: userOptions } - } - Object.assign(this.options, userOptions) - - if (this.options.THREE) { - THREE = this.options.THREE // Optionally use a custom build of three.js - } - - // Set element - this.el = this.options.el - if (this.el == null) { - error('Instance needs "el" param!') - } else if (!(this.options.el instanceof HTMLElement)) { - const selector = this.el - this.el = q(selector) - if (!this.el) { - error('Cannot find element', selector) - return - } - } - - this.prepareEl() - this.initThree() - this.setSize() // Init needs size - - try { - this.init() - } catch (e) { - // FALLBACK - just use color - error('Init error', e) - if (this.renderer && this.el) { - this.el.removeChild(this.renderer.domElement) - } - if (this.options.backgroundColor) { - console.log('[VANTA] Falling back to backgroundColor') - this.el.style.background = color2Hex(this.options.backgroundColor) - } - return - } - - // After init - this.initMouse() // Triggers mouse, which needs to be called after init - this.resize() - this.animationLoop() - - // Event listeners - const ad = window.addEventListener - if (this.options.mouseControls) { - ad('scroll', this.windowMouseMoveWrapper) - ad('mousemove', this.windowMouseMoveWrapper) - } - if (this.options.touchControls) { - ad('touchstart', this.windowTouchWrapper) - ad('touchmove', this.windowTouchWrapper) - } - if (this.options.gyroControls) { - ad('deviceorientation', this.windowGyroWrapper) - } - ad('resize', this.resize) - window.requestAnimationFrame(this.resize) // Force a resize after the first frame - } - - setOptions(userOptions = {}) { - Object.assign(this.options, userOptions) - this.triggerMouseMove() - } - - prepareEl() { - let i, child - // wrapInner for text nodes, so text nodes can be put into foreground - if (typeof Node !== 'undefined' && Node.TEXT_NODE) { - for (i = 0; i < this.el.childNodes.length; i++) { - const n = this.el.childNodes[i] - if (n.nodeType === Node.TEXT_NODE) { - const s = document.createElement('span') - s.textContent = n.textContent - n.parentElement.insertBefore(s, n) - n.remove() - } - } - } - // Set foreground elements - for (i = 0; i < this.el.children.length; i++) { - child = this.el.children[i] - if (getComputedStyle(child).position === 'static') { - child.style.position = 'relative' - } - if (getComputedStyle(child).zIndex === 'auto') { - child.style.zIndex = 1 - } - } - // Set canvas and container style - if (getComputedStyle(this.el).position === 'static') { - this.el.style.position = 'relative' - } - } - - applyCanvasStyles(canvasEl, opts = {}) { - Object.assign(canvasEl.style, { - position: 'absolute', - zIndex: 0, - top: 0, - left: 0, - background: '' - }) - if (this.options.pixelated) { - canvasEl.style.imageRendering = 'pixelated' - } - Object.assign(canvasEl.style, opts) - canvasEl.classList.add('vanta-canvas') - } - - initThree() { - if (!THREE.WebGLRenderer) { - console.warn('[VANTA] No THREE defined on window') - return - } - // Set renderer - this.renderer = new THREE.WebGLRenderer({ - alpha: true, - antialias: true - }) - this.el.appendChild(this.renderer.domElement) - this.applyCanvasStyles(this.renderer.domElement) - if (isNaN(this.options.backgroundAlpha)) { - this.options.backgroundAlpha = 1 - } - - this.scene = new THREE.Scene() - } - - getCanvasElement() { - if (this.renderer) { - return this.renderer.domElement // three.js - } - if (this.p5renderer) { - return this.p5renderer.canvas // p5 - } - } - - getCanvasRect() { - const canvas = this.getCanvasElement() - if (!canvas) return false - return canvas.getBoundingClientRect() - } - - windowMouseMoveWrapper(e) { - const rect = this.getCanvasRect() - if (!rect) return false - const x = e.clientX - rect.left - const y = e.clientY - rect.top - if (x >= 0 && y >= 0 && x <= rect.width && y <= rect.height) { - this.mouseX = x - this.mouseY = y - if (!this.options.mouseEase) this.triggerMouseMove(x, y) - } - } - windowTouchWrapper(e) { - const rect = this.getCanvasRect() - if (!rect) return false - if (e.touches.length === 1) { - const x = e.touches[0].clientX - rect.left - const y = e.touches[0].clientY - rect.top - if (x >= 0 && y >= 0 && x <= rect.width && y <= rect.height) { - this.mouseX = x - this.mouseY = y - if (!this.options.mouseEase) this.triggerMouseMove(x, y) - } - } - } - windowGyroWrapper(e) { - const rect = this.getCanvasRect() - if (!rect) return false - const x = Math.round(e.alpha * 2) - rect.left - const y = Math.round(e.beta * 2) - rect.top - if (x >= 0 && y >= 0 && x <= rect.width && y <= rect.height) { - this.mouseX = x - this.mouseY = y - if (!this.options.mouseEase) this.triggerMouseMove(x, y) - } - } - - triggerMouseMove(x, y) { - if (x === undefined && y === undefined) { - // trigger at current position - if (this.options.mouseEase) { - x = this.mouseEaseX - y = this.mouseEaseY - } else { - x = this.mouseX - y = this.mouseY - } - } - if (this.uniforms) { - this.uniforms.iMouse.value.x = x / this.scale // pixel values - this.uniforms.iMouse.value.y = y / this.scale // pixel values - } - const xNorm = x / this.width // 0 to 1 - const yNorm = y / this.height // 0 to 1 - typeof this.onMouseMove === 'function' ? this.onMouseMove(xNorm, yNorm) : void 0 - } - - setSize() { - this.scale || (this.scale = 1) - if (mobileCheck() && this.options.scaleMobile) { - this.scale = this.options.scaleMobile - } else if (this.options.scale) { - this.scale = this.options.scale - } - this.width = Math.max(this.el.offsetWidth, this.options.minWidth) - this.height = Math.max(this.el.offsetHeight, this.options.minHeight) - } - initMouse() { - // Init mouseX and mouseY - if ( - (!this.mouseX && !this.mouseY) || - (this.mouseX === this.options.minWidth / 2 && - this.mouseY === this.options.minHeight / 2) - ) { - this.mouseX = this.width / 2 - this.mouseY = this.height / 2 - this.triggerMouseMove(this.mouseX, this.mouseY) - } - } - - resize() { - this.setSize() - if (this.camera) { - this.camera.aspect = this.width / this.height - if (typeof this.camera.updateProjectionMatrix === 'function') { - this.camera.updateProjectionMatrix() - } - } - if (this.renderer) { - this.renderer.setSize(this.width, this.height) - this.renderer.setPixelRatio(window.devicePixelRatio / this.scale) - } - typeof this.onResize === 'function' ? this.onResize() : void 0 - } - - isOnScreen() { - const elHeight = this.el.offsetHeight - const elRect = this.el.getBoundingClientRect() - const scrollTop = - window.pageYOffset || - (document.documentElement || document.body.parentNode || document.body).scrollTop - const offsetTop = elRect.top + scrollTop - const minScrollTop = offsetTop - window.innerHeight - const maxScrollTop = offsetTop + elHeight - return minScrollTop <= scrollTop && scrollTop <= maxScrollTop - } - - animationLoop() { - // Step time - this.t || (this.t = 0) - // Uniform time - this.t2 || (this.t2 = 0) - - // Normalize animation speed to 60fps - const now = performance.now() - if (this.prevNow) { - let elapsedTime = (now - this.prevNow) / (1000 / 60) - elapsedTime = Math.max(0.2, Math.min(elapsedTime, 5)) - this.t += elapsedTime - - this.t2 += (this.options.speed || 1) * elapsedTime - if (this.uniforms) { - this.uniforms.iTime.value = this.t2 * 0.016667 // iTime is in seconds - } - } - this.prevNow = now - - if (this.options.mouseEase) { - this.mouseEaseX = this.mouseEaseX || this.mouseX || 0 - this.mouseEaseY = this.mouseEaseY || this.mouseY || 0 - if ( - Math.abs(this.mouseEaseX - this.mouseX) + - Math.abs(this.mouseEaseY - this.mouseY) > - 0.1 - ) { - this.mouseEaseX += (this.mouseX - this.mouseEaseX) * 0.05 - this.mouseEaseY += (this.mouseY - this.mouseEaseY) * 0.05 - this.triggerMouseMove(this.mouseEaseX, this.mouseEaseY) - } - } - - // Only animate if element is within view - if (this.isOnScreen() || this.options.forceAnimate) { - if (typeof this.onUpdate === 'function') { - this.onUpdate() - } - if (this.scene && this.camera) { - this.renderer.render(this.scene, this.camera) - this.renderer.setClearColor( - this.options.backgroundColor, - this.options.backgroundAlpha - ) - } - if (this.fps && this.fps.update) this.fps.update() - if (typeof this.afterRender === 'function') this.afterRender() - } - return (this.req = window.requestAnimationFrame(this.animationLoop)) - } - - restart() { - // Restart the effect without destroying the renderer - if (this.scene) { - while (this.scene.children.length) { - this.scene.remove(this.scene.children[0]) - } - } - if (typeof this.onRestart === 'function') { - this.onRestart() - } - this.init() - } - - init() { - if (typeof this.onInit === 'function') { - this.onInit() - } - // this.setupControls() - } - - destroy() { - if (typeof this.onDestroy === 'function') { - this.onDestroy() - } - const rm = window.removeEventListener - rm('touchstart', this.windowTouchWrapper) - rm('touchmove', this.windowTouchWrapper) - rm('scroll', this.windowMouseMoveWrapper) - rm('mousemove', this.windowMouseMoveWrapper) - rm('deviceorientation', this.windowGyroWrapper) - rm('resize', this.resize) - window.cancelAnimationFrame(this.req) - - const scene = this.scene - if (scene && scene.children) { - clearThree(scene) - } - if (this.renderer) { - if (this.renderer.domElement && this.el) { - this.el.removeChild(this.renderer.domElement) - } - this.renderer = null - this.scene = null - } - - if (VANTA.current === this) { - VANTA.current = null - } - } -} - -export default VANTA.VantaBase diff --git a/src/components/AnimatedConnections/helpers.js b/src/components/AnimatedConnections/helpers.js deleted file mode 100644 index ac289f1e..00000000 --- a/src/components/AnimatedConnections/helpers.js +++ /dev/null @@ -1,76 +0,0 @@ -Number.prototype.clamp = function (min, max) { - return Math.min(Math.max(this, min), max) -} - -// # module.exports = helpers - -export function mobileCheck() { - if (typeof navigator !== 'undefined') { - return ( - /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( - navigator.userAgent - ) || window.innerWidth < 600 - ) - } - return null -} -export const sample = (items) => items[Math.floor(Math.random() * items.length)] - -export function rn(start, end) { - if (start == null) start = 0 - if (end == null) end = 1 - return start + Math.random() * (end - start) -} - -export function ri(start, end) { - if (start == null) start = 0 - if (end == null) end = 1 - return Math.floor(start + Math.random() * (end - start + 1)) -} - -export const q = (sel) => document.querySelector(sel) - -export const color2Hex = (color) => { - if (typeof color == 'number') { - return '#' + ('00000' + color.toString(16)).slice(-6) - } else return color -} - -export const color2Rgb = (color, alpha = 1) => { - const hex = color2Hex(color) - const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex) - const obj = result - ? { - r: parseInt(result[1], 16), - g: parseInt(result[2], 16), - b: parseInt(result[3], 16) - } - : null - return 'rgba(' + obj.r + ',' + obj.g + ',' + obj.b + ',' + alpha + ')' -} - -export const getBrightness = (threeColor) => { - return 0.299 * threeColor.r + 0.587 * threeColor.g + 0.114 * threeColor.b -} - -export function clearThree(obj) { - // https://stackoverflow.com/questions/30359830/how-do-i-clear-three-js-scene/48722282 - while (obj.children && obj.children.length > 0) { - clearThree(obj.children[0]) - obj.remove(obj.children[0]) - } - if (obj.geometry) obj.geometry.dispose() - if (obj.material) { - // in case of map, bumpMap, normalMap, envMap ... - Object.keys(obj.material).forEach((prop) => { - if (!obj.material[prop]) return - if ( - obj.material[prop] !== null && - typeof obj.material[prop].dispose === 'function' - ) { - obj.material[prop].dispose() - } - }) - obj.material.dispose() - } -} diff --git a/src/components/AnimatedConnections/vanta.net.js b/src/components/AnimatedConnections/vanta.net.js deleted file mode 100644 index d70d3ec7..00000000 --- a/src/components/AnimatedConnections/vanta.net.js +++ /dev/null @@ -1,231 +0,0 @@ -import VantaBase, { VANTA } from './_base.js' -import { rn, ri, mobileCheck, getBrightness } from './helpers.js' - -const win = typeof window == 'object' -let THREE = win && window.THREE - -class Effect extends VantaBase { - static initClass() { - this.prototype.defaultOptions = { - color: 0xff3f81, - backgroundColor: 0x23153c, - points: 10, - maxDistance: 20, - spacing: 15, - showDots: true, - nodeSize: 0.25, // Node size - linkColor: 0xff3f81, // Link color - lineThickness: 0.05 // Line thickness (radius of the cylinder) - } - } - - constructor(userOptions) { - THREE = userOptions.THREE || THREE - super(userOptions) - } - - genPoint(x, y, z) { - let sphere - if (!this.points) { - this.points = [] - } - if (this.options.showDots) { - const geometry = new THREE.SphereGeometry(this.options.nodeSize, 12, 12) // Use nodeSize from options - const material = new THREE.MeshLambertMaterial({ - color: this.options.color - }) - sphere = new THREE.Mesh(geometry, material) - } else { - sphere = new THREE.Object3D() - } - this.cont.add(sphere) - sphere.ox = x - sphere.oy = y - sphere.oz = z - sphere.position.set(x, y, z) - sphere.r = rn(-2, 2) // rotation rate - return this.points.push(sphere) - } - - onInit() { - this.points = [] // Initialize points array - this.connections = [] // Initialize connections array - this.cont = new THREE.Group() - this.cont.position.set(0, 0, 0) - this.scene.add(this.cont) - - let n = this.options.points - let { spacing } = this.options - if (mobileCheck()) { - n = ~~(n * 0.75) - spacing = ~~(spacing * 0.65) - } - - for (let i = 0; i <= n; i++) { - for (let j = 0; j <= n; j++) { - const y = ri(-3, 3) - const x = (i - n / 2) * spacing + ri(-5, 5) - let z = (j - n / 2) * spacing + ri(-5, 5) - if (i % 2) { - z += spacing * 0.5 - } // offset - - this.genPoint(x, y - ri(5, 15), z) - this.genPoint(x + ri(-5, 5), y + ri(5, 15), z + ri(-5, 5)) - } - } - - this.camera = new THREE.PerspectiveCamera(25, this.width / this.height, 0.01, 10000) - this.camera.position.set(50, 100, 150) - this.scene.add(this.camera) - - const ambience = new THREE.AmbientLight(0xffffff, 0.75) - this.scene.add(ambience) - - this.spot = new THREE.SpotLight(0xffffff, 1) - this.spot.position.set(0, 200, 0) - this.spot.distance = 400 - this.spot.target = this.cont - this.scene.add(this.spot) - } - - onUpdate() { - let diff - const c = this.camera - if (Math.abs(c.tx - c.position.x) > 0.01) { - diff = c.tx - c.position.x - c.position.x += diff * 0.02 - } - if (Math.abs(c.ty - c.position.y) > 0.01) { - diff = c.ty - c.position.y - c.position.y += diff * 0.02 - } - c.lookAt(new THREE.Vector3(0, 0, 0)) - - // Clear previous connections - this.connections.forEach((conn) => this.cont.remove(conn)) - this.connections = [] - - const linkColor = new THREE.Color(this.options.linkColor) - const material = new THREE.MeshBasicMaterial({ color: linkColor }) - - for (let i = 0; i < this.points.length; i++) { - const p = this.points[i] - - // Update point position if needed - if (p.r !== 0) { - let ang = Math.atan2(p.position.z, p.position.x) - const dist = Math.sqrt(p.position.z * p.position.z + p.position.x * p.position.x) - ang += 0.00025 * p.r - p.position.x = dist * Math.cos(ang) - p.position.z = dist * Math.sin(ang) - } - - for (let j = i + 1; j < this.points.length; j++) { - const p2 = this.points[j] - const dx = p.position.x - p2.position.x - const dy = p.position.y - p2.position.y - const dz = p.position.z - p2.position.z - const dist = Math.sqrt(dx * dx + dy * dy + dz * dz) - - if (dist < this.options.maxDistance) { - // Create a cylinder between p and p2 - const cylinderGeometry = new THREE.CylinderGeometry( - this.options.lineThickness, // radiusTop - this.options.lineThickness, // radiusBottom - dist, // height - 8, // radialSegments - 1, // heightSegments - true // openEnded - ) - - // Create mesh - const cylinder = new THREE.Mesh(cylinderGeometry, material) - - // Position the cylinder - const midpoint = new THREE.Vector3() - .addVectors(p.position, p2.position) - .multiplyScalar(0.5) - cylinder.position.copy(midpoint) - - // Align the cylinder with the line between the points - const direction = new THREE.Vector3() - .subVectors(p2.position, p.position) - .normalize() - const axis = new THREE.Vector3(0, 1, 0) - const quaternion = new THREE.Quaternion().setFromUnitVectors(axis, direction) - cylinder.setRotationFromQuaternion(quaternion) - - // Add the cylinder to the scene - this.cont.add(cylinder) - this.connections.push(cylinder) - } - } - } - } - - onMouseMove(x, y) { - const c = this.camera - if (!c.oy) { - c.oy = c.position.y - c.ox = c.position.x - c.oz = c.position.z - } - const ang = Math.atan2(c.oz, c.ox) - const dist = Math.sqrt(c.oz * c.oz + c.ox * c.ox) - const tAng = ang + (x - 0.5) * 2 * (this.options.mouseCoeffX || 1) - c.tz = dist * Math.sin(tAng) - c.tx = dist * Math.cos(tAng) - c.ty = c.oy + (y - 0.5) * 50 * (this.options.mouseCoeffY || 1) - - this.rcMouseX = x * 2 - 1 - this.rcMouseY = -y * 2 + 1 - } - - onDestroy() { - if (this.scene) { - // Remove connections - this.connections.forEach((conn) => this.cont.remove(conn)) - this.connections = [] - // Remove points - this.points.forEach((point) => this.cont.remove(point)) - this.points = [] - } - // Remove other resources - this.spot = null - } - - setOptions(userOptions) { - super.setOptions(userOptions) - if (userOptions.color) { - this.points.forEach((p) => { - p.material.color = new THREE.Color(this.options.color) - }) - } - if (userOptions.nodeSize) { - this.points.forEach((p) => { - p.geometry = new THREE.SphereGeometry(this.options.nodeSize, 12, 12) - }) - } - if (userOptions.linkColor || userOptions.lineThickness) { - // Recreate connections with new materials or geometry - this.connections.forEach((conn) => this.cont.remove(conn)) - this.connections = [] - // Force update - this.onUpdate() - } - } - - onRestart() { - if (this.scene) { - this.connections.forEach((conn) => this.cont.remove(conn)) - this.connections = [] - - this.points.forEach((point) => this.cont.remove(point)) - this.points = [] - } - this.onInit() - } -} -Effect.initClass() -export default VANTA.register('NET', Effect) diff --git a/src/components/Card/Card.module.css b/src/components/Card/Card.module.css deleted file mode 100644 index 3d7190ff..00000000 --- a/src/components/Card/Card.module.css +++ /dev/null @@ -1,251 +0,0 @@ -.card { - background-color: #ffffff; - border-radius: 10px; - padding: 25px 30px; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); - display: flex; - flex-direction: column; - aspect-ratio: 1 / 1; - width: 100%; - position: relative; - animation: fadeIn 0.5s ease-in; - overflow: visible; - z-index: 1; - max-height: 233px; -} - -@keyframes fadeIn { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -.cardContent { - display: flex; - flex-direction: column; - height: 100%; - position: relative; -} - -.cardTitle { - font-size: 18px; - font-weight: 500; - line-height: 24px; - margin-bottom: 10px; - color: #0E001A; -} - -.bigNumber { - font-size: 60px; - font-weight: 500; - color: #CF1FB1; - margin: 0 0 20px 0; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - height: 100%; -} - -.subText { - font-size: 12px; - line-height: 18px; - font-weight: 400; - color: #CF1FB1; - margin-top: auto; - text-align: right; - display: flex; - flex-direction: row; - align-items: center; - justify-content: flex-end; - gap: 5px; -} - -.subText span { - font-weight: 500; - font-size: 20px; - line-height: 20px; - color: #0E001A; -} - -@media (max-width: 768px) { - .card { - padding: 16px; - } - - .bigNumber { - font-size: 60px; - } - - .subText span { - font-size: 18px; - line-height: 24px; - } -} - -.cardLoading { - position: relative; - overflow: hidden; -} - -.cardLoading .cardTitle, -.cardLoading .bigNumber, -.cardLoading .subText { - position: relative; - background: #f6f7f8; - border-radius: 4px; - overflow: hidden; -} - -.cardLoading .cardTitle { - height: 24px; - width: 70%; -} - -.cardLoading .bigNumber { - height: 80px; - width: 60%; - margin: 0 auto; -} - -.cardLoading .subText { - height: 20px; - width: 40%; - margin-left: auto; - margin-top: auto; -} - -.cardLoading .cardTitle::after, -.cardLoading .bigNumber::after, -.cardLoading .subText::after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 200%; - height: 100%; - background: linear-gradient( - 90deg, - transparent 0%, - rgba(207, 31, 177, 0.2) 50%, - transparent 100% - ); - animation: shimmer 2s infinite linear; - transform: translateX(-100%); -} - -.cardLoading .bigNumber::after { - animation-delay: 0.1s; -} - -.cardLoading .subText::after { - animation-delay: 0.2s; -} - -@keyframes shimmer { - 0% { - transform: translateX(-100%); - } - 100% { - transform: translateX(50%); - } -} - -.skeletonText { - background: #f0f0f0; - border-radius: 4px; - height: 24px; - width: 80%; - margin-bottom: 15px; -} - -.skeletonNumber { - background: #f0f0f0; - border-radius: 4px; - height: 60px; - width: 60%; - margin: 20px auto; -} - -.dataLoading { - position: relative; - background: #f6f7f8; - border-radius: 4px; - overflow: hidden; - height: 60%; - width: 100%; - margin: 20px auto; -} - -.dataLoading::after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 200%; - height: 100%; - background: linear-gradient( - 90deg, - transparent 0%, - rgba(207, 31, 177, 0.2) 50%, - transparent 100% - ); - animation: shimmer 2s infinite linear; - transform: translateX(-100%); -} - -.chartContainer { - position: relative; - width: 100%; - height: 180px; - overflow: visible; -} - -.titleContainer { - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; -} - -.tooltipIcon { - cursor: pointer; - color: white; -} - -.tooltipIcon svg { - stroke: black; - fill: black; -} - -.chartSkeleton { - position: relative; - background: #f6f7f8; - border-radius: 4px; - overflow: hidden; - height: 180px; - width: 100%; - margin: 20px 0; -} - -.chartSkeleton::after { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 200%; - height: 100%; - background: linear-gradient( - 90deg, - transparent 0%, - rgba(207, 31, 177, 0.2) 50%, - transparent 100% - ); - animation: shimmer 2s infinite linear; - transform: translateX(-100%); -} diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx deleted file mode 100644 index 47cc4f9b..00000000 --- a/src/components/Card/Card.tsx +++ /dev/null @@ -1,206 +0,0 @@ -import React from 'react' -import styles from './Card.module.css' -import { - BarChart, - Bar, - LineChart, - Line, - ResponsiveContainer, - XAxis, - Tooltip as RechartsTooltip, - CartesianGrid -} from 'recharts' -import Image from 'next/image' -import InfoIcon from '@/assets/info.svg' -import { Tooltip } from '@mui/material' -import { useCustomTooltip } from '@/components/Card/useCustomTooltip' -import { formatNumber } from '@/utils/formatters' -import CustomBar from '@/components/CustomBar/CustomBar' - -interface CardProps { - title: string - chartType?: 'bar' | 'line' - chartData?: Array<{ - date: string - background?: { value: number } - foreground?: { value: number } - value?: number - }> - bigNumber?: string | number - subText?: React.ReactNode - additionalInfo?: React.ReactNode - isLoading?: boolean - dataLoading?: boolean - tooltip?: string -} - -const Card: React.FC = ({ - title, - chartType, - chartData, - bigNumber, - subText, - additionalInfo, - isLoading = false, - dataLoading = false, - tooltip -}) => { - const { - handleMouseMove, - handleMouseLeave, - CustomRechartsTooltipComponent, - renderTooltipPortal - } = useCustomTooltip({ cardTitle: title }) - - return ( -
-
- {isLoading ? ( - <> - - ) -} - -export default NodesDashboard diff --git a/src/components/Dashboard/index.tsx b/src/components/Dashboard/index.tsx deleted file mode 100644 index 59588d5d..00000000 --- a/src/components/Dashboard/index.tsx +++ /dev/null @@ -1,6 +0,0 @@ -import NodesDashboard from './NodesDashboard' -import HistoryDashboard from './HistoryDashboard' - -export { NodesDashboard, HistoryDashboard } - -export default NodesDashboard diff --git a/src/components/Dashboard/useHistoryDashboardData.ts b/src/components/Dashboard/useHistoryDashboardData.ts deleted file mode 100644 index 994657c1..00000000 --- a/src/components/Dashboard/useHistoryDashboardData.ts +++ /dev/null @@ -1,234 +0,0 @@ -import { useMemo } from 'react' -import dayjs from 'dayjs' -import utc from 'dayjs/plugin/utc' -import timezone from 'dayjs/plugin/timezone' -import duration from 'dayjs/plugin/duration' -import { formatUptimePercentage } from '@/components/Table/utils' -import { DateRange } from '@/components/PeriodSelect' -import { formatNumber } from '../../utils/formatters' -import { NodeData } from '@/shared/types/RowDataType' - -const formatTimeShort = (timestampMillis: number): string => { - if (!timestampMillis) return '-' - const date = new Date(timestampMillis) - const now = new Date() - const diffInSeconds = Math.floor((now.getTime() - date.getTime()) / 1000) - if (diffInSeconds < 0) return 'in the future' - const hours = Math.floor(diffInSeconds / 3600) - const minutes = Math.floor((diffInSeconds % 3600) / 60) - if (hours > 0) { - return `${hours}h` - } else if (minutes > 0) { - return `${minutes}m` - } else { - return `${diffInSeconds}s` - } -} - -const isLive = (timestampMillis: number): { status: boolean; color: string } => { - if (!timestampMillis) return { status: false, color: '#F70C0C' } - const now = new Date() - const diffInMinutes = (now.getTime() - timestampMillis) / (1000 * 60) - const isRecent = diffInMinutes < 15 - return { - status: isRecent, - color: isRecent ? '#23EF2C' : '#F70C0C' - } -} - -export const getElapsedSinceLastThursday = (startTimestampMillis: number): string => { - dayjs.extend(utc) - dayjs.extend(timezone) - dayjs.extend(duration) - - const CET = 'Europe/Berlin' - - if (!startTimestampMillis) return 'Invalid timestamp' - - const timestamp = dayjs(startTimestampMillis).tz(CET) - - // Calculate the previous Thursday 00:00 CET - let previousThursday = - timestamp.day() >= 4 ? timestamp.day(4) : timestamp.subtract(1, 'week').day(4) - previousThursday = previousThursday.startOf('day') - - const diffMs = timestamp.diff(previousThursday) - - if (diffMs < 0) return 'Before previous Thursday' - - const d = dayjs.duration(diffMs) - const formatted = `${d.days()}d:${d.hours()}h:${d.minutes()}m` - - return formatted -} -interface HistoryDataContextValues { - weekStats: any - currentRoundStats: any - dateRange: DateRange | null - getRewardsForPeriod: (week: number) => any | null - totalProgramDistribution: number | null - loading: boolean - error: Error | null - isInitialising: boolean - nodesData: NodeData | null -} - -export interface HistoryDashboardData { - periodDurationInSeconds: number | null - uptimePercentage: string - uptimeValue: number - isLowPercentage: boolean - selectedPeriodRoundStartTime: number - selectedPeriodStartedTimeAgoShort: string - selectedPeriodRoundStartStatus: { status: boolean; color: string } - liveCurrentRoundTimestamp: number - liveCurrentRoundStartedAgo: string - liveCurrentRoundStatus: { status: boolean; color: string } - liveCurrentRoundNumber: string - updatedLiveStatus: { status: boolean; color: string } - trackedPeriodLabel: string - periodRewards: any | null - formattedAverageReward: string - formattedAllTimeTotalDistribution: string - completedRounds: number | string - currentRoundForCard: string | undefined - hasNoDataForPeriod: boolean - combinedError: Error | null - dashboardOverallLoading: boolean -} - -export const useHistoryDashboardData = ( - contextValues: HistoryDataContextValues -): HistoryDashboardData => { - const { - weekStats, - currentRoundStats, - dateRange, - getRewardsForPeriod, - totalProgramDistribution, - loading, - error, - isInitialising, - nodesData - } = contextValues - - const periodDurationInSeconds = useMemo(() => { - if (dateRange && dateRange.startDate && dateRange.endDate) { - const duration = dateRange.endDate.unix() - dateRange.startDate.unix() - if (duration > 0) { - return duration - } - } - return null - }, [dateRange]) - - const uptimePercentage = useMemo( - () => - weekStats?.totalUptime - ? formatUptimePercentage(nodesData?.uptime ?? 0, weekStats.totalUptime) - : '0.00%', - [nodesData?.uptime, weekStats?.totalUptime] - ) - - const uptimeValue = useMemo(() => parseFloat(uptimePercentage) || 0, [uptimePercentage]) - const isLowPercentage = useMemo(() => uptimeValue < 30, [uptimeValue]) - - const selectedPeriodRoundStartTime = useMemo( - () => weekStats?.timestamp || 0, - [weekStats] - ) - const selectedPeriodStartedTimeAgoShort = useMemo( - () => formatTimeShort(selectedPeriodRoundStartTime), - [selectedPeriodRoundStartTime] - ) - const selectedPeriodRoundStartStatus = useMemo( - () => isLive(selectedPeriodRoundStartTime), - [selectedPeriodRoundStartTime] - ) - - const liveCurrentRoundTimestamp = useMemo( - () => currentRoundStats?.timestamp || 0, - [currentRoundStats] - ) - const liveCurrentRoundStartedAgo = useMemo( - () => formatTimeShort(liveCurrentRoundTimestamp), - [liveCurrentRoundTimestamp] - ) - const liveCurrentRoundStatus = useMemo( - () => isLive(liveCurrentRoundTimestamp), - [liveCurrentRoundTimestamp] - ) - const liveCurrentRoundNumber = useMemo( - () => (currentRoundStats?.round + 1)?.toString() ?? '-', - [currentRoundStats] - ) - - const updatedLiveStatus = useMemo(() => isLive(weekStats?.lastRun || 0), [weekStats]) - const trackedPeriodLabel = useMemo( - () => getElapsedSinceLastThursday(weekStats?.timestamp || 0), - [weekStats] - ) - - const periodRewards = useMemo( - () => (weekStats?.week ? getRewardsForPeriod(weekStats.week) : null), - [weekStats, getRewardsForPeriod] - ) - - const formattedAverageReward = useMemo( - () => (periodRewards?.averageReward ? periodRewards.averageReward.toFixed(2) : '-'), - [periodRewards] - ) - - const formattedAllTimeTotalDistribution = useMemo( - () => (totalProgramDistribution ? formatNumber(totalProgramDistribution) : '-'), - [totalProgramDistribution] - ) - - const completedRounds = useMemo( - () => (weekStats?.round ? Math.max(0, weekStats.round) : '-'), - [weekStats] - ) - - const currentRoundForCard = useMemo( - () => (weekStats?.round + 1)?.toString(), - [weekStats] - ) - - const dashboardOverallLoadingState = loading || isInitialising - const combinedErrorState = error - - const hasNoDataForPeriod = useMemo( - () => - !dashboardOverallLoadingState && - !combinedErrorState && - weekStats && - (weekStats.totalUptime === 0 || - weekStats.totalUptime === null || - weekStats.totalUptime === undefined), - [dashboardOverallLoadingState, combinedErrorState, weekStats] - ) - - return { - periodDurationInSeconds, - uptimePercentage, - uptimeValue, - isLowPercentage, - selectedPeriodRoundStartTime, - selectedPeriodStartedTimeAgoShort, - selectedPeriodRoundStartStatus, - liveCurrentRoundTimestamp, - liveCurrentRoundStartedAgo, - liveCurrentRoundStatus, - liveCurrentRoundNumber, - updatedLiveStatus, - trackedPeriodLabel, - periodRewards, - formattedAverageReward, - formattedAllTimeTotalDistribution, - completedRounds, - currentRoundForCard, - hasNoDataForPeriod, - combinedError: combinedErrorState, - dashboardOverallLoading: dashboardOverallLoadingState - } -} diff --git a/src/components/Dashboard/useNodesDashboardData.ts b/src/components/Dashboard/useNodesDashboardData.ts deleted file mode 100644 index f08d2141..00000000 --- a/src/components/Dashboard/useNodesDashboardData.ts +++ /dev/null @@ -1,162 +0,0 @@ -import { useMemo } from 'react' - -interface TransformedRewardItem { - date: string | number - background?: { value: number } - weeklyAmount?: number -} - -interface ChartDataItem { - xAxisValue: number - date: string - background: { value: number } - foreground: { value: number } - totalAmount: number -} - -const calculateTrendInfo = (averageIncentiveData: any[] | undefined) => { - if (!averageIncentiveData || averageIncentiveData.length < 2) { - return { percentage: 0, value: 0, trend: 'neutral' } - } - let firstPoint = null - let lastPoint = null - for (const point of averageIncentiveData) { - if (point?.foreground?.value > 0) { - firstPoint = point - break - } - } - for (let i = averageIncentiveData.length - 1; i >= 0; i--) { - if (averageIncentiveData[i]?.foreground?.value > 0) { - lastPoint = averageIncentiveData[i] - break - } - } - if (!firstPoint || !lastPoint) { - return { percentage: 0, value: 0, trend: 'neutral' } - } - const firstValue = firstPoint.foreground.value - const lastValue = lastPoint.foreground.value - if (firstValue === 0) return { percentage: 0, value: lastValue, trend: 'neutral' } - const percentageChange = ((lastValue - firstValue) / firstValue) * 100 - const trend = percentageChange >= 0 ? 'up' : 'down' - return { - percentage: Math.abs(percentageChange).toFixed(2), - value: lastValue, - trend - } -} - -const calculatePeriodAverage = (data: any[] | undefined) => { - if (!data || data.length === 0) return 0 - const sum = data.reduce((total, item) => total + (item?.foreground?.value || 0), 0) - return sum / data.length -} - -const formatEligibleNodesChartData = ( - transformedRewardsHistory: TransformedRewardItem[] | undefined -): ChartDataItem[] => { - if ( - !transformedRewardsHistory || - !Array.isArray(transformedRewardsHistory) || - transformedRewardsHistory.length === 0 - ) { - return [] - } - try { - const chartData = transformedRewardsHistory - .map((item) => { - const dateStr = item?.date ? String(item.date) : null - const eligibleNodes = item?.background?.value - const totalAmountForRound = - typeof item?.weeklyAmount === 'number' ? item.weeklyAmount : 0 - if ( - dateStr === null || - typeof eligibleNodes !== 'number' || - isNaN(eligibleNodes) || - eligibleNodes < 0 - ) { - return null - } - const numericDate = parseInt(dateStr, 10) - if (isNaN(numericDate)) { - return null - } - return { - dateForSort: numericDate, - label: `${dateStr}`, - value: eligibleNodes, - totalAmount: totalAmountForRound - } - }) - .filter( - ( - item - ): item is { - dateForSort: number - label: string - value: number - totalAmount: number - } => item !== null - ) - .sort((a, b) => a.dateForSort - b.dateForSort) - .map((item) => ({ - xAxisValue: item.dateForSort, - date: item.label, - background: { value: item.value }, - foreground: { value: item.value }, - totalAmount: item.totalAmount - })) - return chartData - } catch (error) { - console.error('[formatEligibleNodesChartData] Error formatting data:', error) - return [] - } -} - -interface NodesDashboardDataProps { - averageIncentiveData: any[] | undefined - rewardsHistory: TransformedRewardItem[] | undefined -} - -export interface NodesDashboardData { - averageTrendInfo: { percentage: string | number; value: number; trend: string } - periodAverage: number - eligibleNodesChartData: ChartDataItem[] - totalRewardsSumFromEligibleNodesChart: number -} - -export const useNodesDashboardData = ( - props: NodesDashboardDataProps -): NodesDashboardData => { - const { averageIncentiveData, rewardsHistory } = props - - const averageTrendInfo = useMemo( - () => calculateTrendInfo(averageIncentiveData), - [averageIncentiveData] - ) - - const periodAverage = useMemo( - () => calculatePeriodAverage(averageIncentiveData), - [averageIncentiveData] - ) - - const eligibleNodesChartData = useMemo( - () => formatEligibleNodesChartData(rewardsHistory), - [rewardsHistory] - ) - - const totalRewardsSumFromEligibleNodesChart = useMemo(() => { - if (!eligibleNodesChartData || eligibleNodesChartData.length === 0) { - return 0 - } - return eligibleNodesChartData.reduce((sum, item) => sum + (item.totalAmount || 0), 0) - }, [eligibleNodesChartData]) - - return { - averageTrendInfo, - periodAverage, - eligibleNodesChartData, - totalRewardsSumFromEligibleNodesChart - } -} diff --git a/src/components/DateRangePicker/DateRangePicker.tsx b/src/components/DateRangePicker/DateRangePicker.tsx deleted file mode 100644 index 091ed56f..00000000 --- a/src/components/DateRangePicker/DateRangePicker.tsx +++ /dev/null @@ -1,328 +0,0 @@ -import React, { useState } from 'react' -import { Box, Button, Popover, Typography } from '@mui/material' -import { DatePicker } from '@mui/x-date-pickers/DatePicker' -import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs' -import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider' -import dayjs, { Dayjs } from 'dayjs' -import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown' - -export interface DateRange { - startDate: Dayjs | null - endDate: Dayjs | null -} - -interface DateRangePickerProps { - onChange: (range: DateRange) => void - initialRange?: DateRange -} - -const PRESET_RANGES = [ - { label: '24h', days: 1 }, - { label: '7d', days: 7 }, - { label: '30d', days: 30 }, - { label: '90d', days: 90 }, - { label: 'YTD', days: dayjs().diff(dayjs().startOf('year'), 'day') }, - { label: '1y', days: 365 } -] - -const THEME = { - colors: { - primary: '#CF1FB1', - dark: '#0E001A', - white: '#FFFFFF', - // Gradients - mainGradient: - 'linear-gradient(135deg, rgba(14, 0, 26, 0.95) 0%, rgba(207, 31, 177, 0.15) 100%)', - hoverGradient: - 'linear-gradient(135deg, rgba(14, 0, 26, 0.98) 0%, rgba(207, 31, 177, 0.25) 100%)', - popoverGradient: - 'linear-gradient(135deg, rgba(14, 0, 26, 0.98) 0%, rgba(14, 0, 26, 0.95) 100%)', - overlayGradient: - 'linear-gradient(135deg, rgba(207, 31, 177, 0.1) 0%, transparent 100%)', - // Transparencies - primaryTransparent: 'rgba(207, 31, 177, 0.3)', - primaryHover: 'rgba(207, 31, 177, 0.4)', - primaryBorder: 'rgba(239, 8, 8, 0.91)', - primaryBorderHover: 'rgba(207, 31, 177, 0.4)', - darkTransparent: 'rgba(14, 0, 26, 0.4)' - }, - effects: { - blur: { - light: 'blur(10px)', - medium: 'blur(20px)', - heavy: 'blur(40px)' - }, - shadow: { - primary: '0 4px 20px rgba(207, 31, 177, 0.1)', - primaryHover: '0 4px 30px rgba(207, 31, 177, 0.2)', - popover: '0 8px 32px rgba(207, 31, 177, 0.15)' - } - }, - typography: { - fontFamily: "'Sharp Sans', sans-serif", - sizes: { - small: '13px', - regular: '14px' - }, - letterSpacing: '0.3px' - }, - spacing: { - button: '4px 12px', - container: '10px 20px', - popover: '20px' - }, - radius: { - small: '8px', - medium: '12px', - large: '16px' - }, - animation: { - fast: 'all 0.2s ease', - normal: 'all 0.3s ease' - } -} - -const DateRangePicker: React.FC = ({ onChange, initialRange }) => { - const [dateRange, setDateRange] = useState({ - startDate: initialRange?.startDate || dayjs().subtract(30, 'day'), - endDate: initialRange?.endDate || dayjs() - }) - const [anchorEl, setAnchorEl] = useState(null) - const [activePreset, setActivePreset] = useState('30d') - - const handleClick = (event: React.MouseEvent) => { - setAnchorEl(event.currentTarget) - } - - const handleClose = () => { - setAnchorEl(null) - } - - const handlePresetClick = (days: number, label: string) => { - const newRange = { - startDate: dayjs().subtract(days, 'day'), - endDate: dayjs() - } - setDateRange(newRange) - onChange(newRange) - setActivePreset(label) - handleClose() - } - - const handleStartDateChange = (date: Dayjs | null) => { - const newRange = { ...dateRange, startDate: date } - setDateRange(newRange) - onChange(newRange) - setActivePreset('') - } - - const handleEndDateChange = (date: Dayjs | null) => { - const newRange = { ...dateRange, endDate: date } - setDateRange(newRange) - onChange(newRange) - setActivePreset('') - } - - const formatDateRange = () => { - if (dateRange.startDate && dateRange.endDate) { - return `${dateRange.startDate.format('MMM D')} - ${dateRange.endDate.format('MMM D, YYYY')}` - } - return 'Select date range' - } - - const commonStyles = { - '& .MuiOutlinedInput-root': { - height: '40px', - backgroundColor: THEME.colors.darkTransparent, - fontFamily: THEME.typography.fontFamily, - borderRadius: THEME.radius.medium, - '& .MuiOutlinedInput-input': { - color: THEME.colors.white, - fontSize: THEME.typography.sizes.regular, - fontWeight: 500, - padding: THEME.spacing.button, - fontFamily: THEME.typography.fontFamily, - '&::placeholder': { - color: `${THEME.colors.white}B3` - } - }, - '& .MuiOutlinedInput-notchedOutline': { - borderColor: THEME.colors.primaryBorder, - transition: THEME.animation.fast - }, - '&:hover .MuiOutlinedInput-notchedOutline': { - borderColor: THEME.colors.primaryBorderHover - }, - '&.Mui-focused .MuiOutlinedInput-notchedOutline': { - borderColor: THEME.colors.primaryHover, - borderWidth: '1px' - }, - '& .MuiInputAdornment-root .MuiSvgIcon-root': { - color: THEME.colors.primary - } - }, - '& .MuiFormLabel-root': { - color: `${THEME.colors.white}B3`, - fontFamily: THEME.typography.fontFamily, - '&.Mui-focused': { - color: THEME.colors.primary - } - } - } - - return ( - - - - {formatDateRange()} - - - - - - - {PRESET_RANGES.map(({ label, days }) => ( - - ))} - - - - - - - - - ) -} - -export default DateRangePicker diff --git a/src/components/EmpowerSection/EmpowerSection.module.css b/src/components/EmpowerSection/EmpowerSection.module.css deleted file mode 100644 index aede4129..00000000 --- a/src/components/EmpowerSection/EmpowerSection.module.css +++ /dev/null @@ -1,87 +0,0 @@ -.container { - width: 100%; - max-width: 1160px; - height: 300px; - background: linear-gradient(135deg, #000000 0%, #555555 32%, #8A8A8A 40%); - border-radius: 20px; - padding: 40px; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - text-align: center; - color: #FFFFFF; - position: relative; - overflow: hidden; - background: blur(10px); -} - -.container::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: #0E001A; - opacity: 0.66; - z-index: 1; -} - -.container h2, .container p, .container button { - position: relative; - z-index: 2; -} - -.container h2 { - font-family: 'Sharp Sans Display', 'Sharp Sans', sans-serif; - font-size: 36px; - font-weight: 700; - margin-bottom: 16px; -} - -.container p { - font-family: 'Sharp Sans', sans-serif; - font-size: 18px; - font-weight: 300; - max-width: 600px; - margin-bottom: 32px; -} - -.runNode { - background: linear-gradient(135deg, #0E001A66 0%, #CF1FB166 45%, #CF1FB1 90%); - color: #FFFFFF; - font-family: 'Sharp Sans', sans-serif; - font-size: 16px; - font-weight: 600; - padding: 16px 32px; - border: none; - border-radius: 30px; - cursor: pointer; - transition: background-color 0.3s ease; - background: blur(10px); -} - -.runNode:hover { - background-color: #A8168F; -} - -@media (max-width: 768px) { - .container { - height: auto; - padding: 24px; - } - - .container h2 { - font-size: 24px; - } - - .container p { - font-size: 16px; - } - - .runNode { - font-size: 14px; - padding: 12px 24px; - } -} diff --git a/src/components/EmpowerSection/EmpowerSection.tsx b/src/components/EmpowerSection/EmpowerSection.tsx deleted file mode 100644 index ae6cfb12..00000000 --- a/src/components/EmpowerSection/EmpowerSection.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from 'react' -import styles from './EmpowerSection.module.css' -import { getLinks } from '@/config' - -const EmpowerSection: React.FC = () => { - const links = getLinks() - - return ( -
-

EMPOWER DECENTRALIZED AI

-

- Set up your Ocean Node today and unlock new opportunities in data privacy and - monetization. -

- - - -
- ) -} - -export default EmpowerSection diff --git a/src/components/ErrorCheck/index.module.css b/src/components/ErrorCheck/index.module.css deleted file mode 100644 index a914b0f9..00000000 --- a/src/components/ErrorCheck/index.module.css +++ /dev/null @@ -1,4 +0,0 @@ -.root { - width: 30px; - height: 30px; -} \ No newline at end of file diff --git a/src/components/ErrorCheck/index.tsx b/src/components/ErrorCheck/index.tsx deleted file mode 100644 index 88f397ec..00000000 --- a/src/components/ErrorCheck/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react' - -import styles from './index.module.css' - -import ErrorSVG from '../../assets/error.svg' -import NoErrorSVG from '../../assets/no-error.svg' -import Image from 'next/image' - -export default function ErrorCheck({ status }: { status: string }) { - return ( -
- {status === 'None' ? ( - no error - ) : ( - error - )} -
- ) -} diff --git a/src/components/FloatingLabelInput/index.tsx b/src/components/FloatingLabelInput/index.tsx deleted file mode 100644 index eb340824..00000000 --- a/src/components/FloatingLabelInput/index.tsx +++ /dev/null @@ -1,33 +0,0 @@ -import React, { InputHTMLAttributes } from 'react' -import styles from './styles.module.css' - -interface FloatingLabelInputProps extends InputHTMLAttributes { - label: string - error?: boolean - helperText?: string -} - -const FloatingLabelInput: React.FC = ({ - label, - error, - helperText, - ...props -}) => { - return ( -
- - - {helperText && ( - - {helperText} - - )} -
- ) -} - -export default FloatingLabelInput diff --git a/src/components/FloatingLabelInput/styles.module.css b/src/components/FloatingLabelInput/styles.module.css deleted file mode 100644 index 77372f5b..00000000 --- a/src/components/FloatingLabelInput/styles.module.css +++ /dev/null @@ -1,66 +0,0 @@ -.inputContainer { - position: relative; - width: 100%; - margin-bottom: 1rem; -} - -.input { - width: 100%; - height: 56px; - padding: 20px 16px 6px; - border: 1px solid #CF1FB1; - border-radius: 8px; - background: transparent; - font-family: 'Sharp Sans', sans-serif; - font-size: 18px; - line-height: 20px; - font-weight: 500; - color: #0E001A; - transition: border-color 0.2s; -} - -.input:focus { - outline: none; - border-color: #CF1FB1; -} - -.input::placeholder { - color: transparent; -} - -.label { - position: absolute; - left: 16px; - top: 18px; - font-family: 'Sharp Sans', sans-serif; - font-size: 18px; - line-height: 20px; - font-weight: 500; - color: #666; - transition: all 0.2s; - pointer-events: none; - transform-origin: left top; -} - -.input:focus ~ .label, -.input:not(:placeholder-shown) ~ .label { - transform: translateY(-12px) scale(0.75); - color: #CF1FB1; -} - -.input.error { - border-color: #FF4D4F; -} - -.helperText { - display: block; - margin-top: 4px; - font-family: 'Sharp Sans', sans-serif; - font-size: 14px; - line-height: 16px; - color: #666; -} - -.errorText { - color: #FF4D4F; -} \ No newline at end of file diff --git a/src/components/Footer/SocialMediaFooter.module.css b/src/components/Footer/SocialMediaFooter.module.css deleted file mode 100644 index f1b285a1..00000000 --- a/src/components/Footer/SocialMediaFooter.module.css +++ /dev/null @@ -1,87 +0,0 @@ -.footer { - width: 100%; - max-width: 1160px; - height: 200px; - background-color: #0E001A; - border: 2px solid #FFFFFF; - border-radius: 20px; - padding: 34px 80px; - margin: 100px auto; -} - -.content { - display: flex; - justify-content: space-between; - align-items: center; - height: 100%; -} - -.text { - max-width: 50%; -} - -.text h2 { - font-family: 'Sharp Sans Display', 'Sharp Sans', sans-serif; - font-size: 24px; - font-weight: 700; - color: #FFFFFF; - margin-bottom: 16px; -} - -.text p { - font-family: 'Sharp Sans', sans-serif; - font-size: 16px; - font-weight: 300; - color: #FFFFFF; - line-height: 1.5; - max-width: 281px; -} - -.socialIcons { - display: flex; - gap: 40px; - justify-content: center; - flex-wrap: wrap; -} - -.socialIcons a { - display: flex; - align-items: center; - justify-content: center; - width: 40px; - height: 40px; -} - -.socialIcons a:hover { - background-color: #2D1A3F; -} - -@media (max-width: 768px) { - .footer { - height: auto; - padding: 24px; - } - - .content { - flex-direction: column; - gap: 24px; - } - - .text { - max-width: 100%; - } - - .socialIcons { - justify-content: center; - } - - .socialIcons a { - width: 20px; - height: 20px; - } - - .socialIcons a img { - width: 20px; - height: 20px; - } -} diff --git a/src/components/Footer/SocialMediaFooter.tsx b/src/components/Footer/SocialMediaFooter.tsx deleted file mode 100644 index 8cb9c6fd..00000000 --- a/src/components/Footer/SocialMediaFooter.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import React from 'react' -import styles from './SocialMediaFooter.module.css' -import Image from 'next/image' -import { getSocialMedia } from '@/config' - -const SocialMediaFooter: React.FC = () => { - const socialMedia = getSocialMedia() - - return ( -
-
-
-

Join Us

-

- Control your data with Ocean Nodes. Empower yourself with decentralized AI and - shape the future of data privacy. -

-
- -
-
- ) -} - -export default SocialMediaFooter diff --git a/src/components/Footer/index.tsx b/src/components/Footer/index.tsx index 769041fc..1e11e5cf 100644 --- a/src/components/Footer/index.tsx +++ b/src/components/Footer/index.tsx @@ -1,16 +1,12 @@ -import EmpowerSection from '../EmpowerSection/EmpowerSection' -import SocialMediaFooter from './SocialMediaFooter' -import styles from './style.module.css' -import { getLinks } from '@/config' +import { getLinks } from '@/config'; +import styles from './style.module.css'; const Footer = () => { - const currentYear = new Date().getFullYear() - const links = getLinks() + const currentYear = new Date().getFullYear(); + const links = getLinks(); return (
- -

@ {currentYear}, Ocean Nodes

@@ -23,7 +19,7 @@ const Footer = () => {
- ) -} + ); +}; -export default Footer +export default Footer; diff --git a/src/components/Footer/style.module.css b/src/components/Footer/style.module.css index 9f7a5ba0..9e2ac9cb 100644 --- a/src/components/Footer/style.module.css +++ b/src/components/Footer/style.module.css @@ -3,6 +3,7 @@ flex-direction: column; justify-content: space-between; align-items: center; + margin-top: 300px; } .footerContainer { diff --git a/src/components/HeroSection/HeroSection.module.css b/src/components/HeroSection/HeroSection.module.css deleted file mode 100644 index b5112ef0..00000000 --- a/src/components/HeroSection/HeroSection.module.css +++ /dev/null @@ -1,50 +0,0 @@ -.root { - max-width: 1160px; - width: 100%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: flex-start; - background-color: transparent; - gap: 80px; -} - -.heroSection { - display: flex; - flex-direction: column; - align-items: center; - justify-content: flex-start; - background-color: transparent; -} - -.heroSection h1 { - font-family: 'Sharp Sans Display', 'Sharp Sans', sans-serif; - font-size: 50px; - font-weight: 700; - line-height: 62px; - letter-spacing: 0em; - text-align: center; - color: white; -} - -.heroSection p { - font-family: 'Sharp Sans', sans-serif; - font-size: 18px; - font-weight: 300; - line-height: 30px; - letter-spacing: 0em; - text-align: center; - color: white; -} - -@media (max-width: 768px) { - .heroSection h1 { - font-size: 36px; - line-height: 44px; - } - - .heroSection p { - font-size: 16px; - line-height: 24px; - } -} diff --git a/src/components/HeroSection/HeroSection.tsx b/src/components/HeroSection/HeroSection.tsx deleted file mode 100644 index ebb34c02..00000000 --- a/src/components/HeroSection/HeroSection.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import styles from './HeroSection.module.css' - -interface HeroSectionProps { - title: string - description?: string - children?: React.ReactNode -} - -const HeroSection: React.FC = ({ title, description, children }) => { - return ( -
-
-

{title}

-

{description}

-
- {children} -
- ) -} - -export default HeroSection diff --git a/src/components/IndexQueue.tsx b/src/components/IndexQueue.tsx deleted file mode 100644 index 5e9d9de2..00000000 --- a/src/components/IndexQueue.tsx +++ /dev/null @@ -1,93 +0,0 @@ -import React, { useState, useEffect } from 'react' -import { - Table, - TableBody, - TableCell, - TableContainer, - TableHead, - TableRow -} from '@mui/material' -import styles from './Pages/NodeDashboard/index.module.css' -import { useAdminContext } from '@/context/AdminProvider' - -interface QueueItem { - txId: string - chainId: number - chain: string -} - -export default function IndexQueue() { - const [queue, setQueue] = useState([]) - const { networks } = useAdminContext() - - useEffect(() => { - const fetchQueue = () => { - fetch('/api/services/indexQueue') - .then((response) => response.json()) - .then((data) => { - const transformedQueue = data.queue.map((item: any) => { - const network = networks.find((net) => net.chainId === item.chainId) - return { - txId: item.txId, - chainId: item.chainId, - chain: network ? network.network : 'Unknown Network' - } - }) - setQueue(transformedQueue) - }) - .catch((error) => { - console.error('Error fetching queue:', error) - }) - } - - fetchQueue() // Initial fetch - let pollingInterval = 2000 // Default polling interval - if (process.env.INDEXER_INTERVAL) { - pollingInterval = Number(process.env.INDEXER_INTERVAL) - } - const intervalId = setInterval(fetchQueue, pollingInterval) - - return () => { - clearInterval(intervalId) // Clear interval on component unmount - } - }, []) - - return ( -
-
- Indexing Queue -
- {queue.length > 0 ? ( - - - - - - Transaction ID - - - Network - - - - - {queue.map((item, index) => ( - - - {item.txId} - - {item.chain} - - ))} - -
-
- ) : ( -

Indexing queue is empty.

- )} -
- ) -} diff --git a/src/components/JobStatusPanel/index.tsx b/src/components/JobStatusPanel/index.tsx deleted file mode 100644 index d8a9c8dd..00000000 --- a/src/components/JobStatusPanel/index.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { getStatusColors } from '@/shared/utils/jobs' -import Alert from '@mui/material/Alert' - -export default function JobStatusPanel(props: any) { - const color: string = props.job ? getStatusColors(props.job.status) : 'black' - return ( -
- {props.job !== null && ( - {}} - > - Job with id {props.job.jobId} has status{' '} - {props.job.status} - - )} -
- ) -} diff --git a/src/components/Layout/index.module.css b/src/components/Layout/index.module.css index 76edfe92..59f5b3e3 100644 --- a/src/components/Layout/index.module.css +++ b/src/components/Layout/index.module.css @@ -3,41 +3,29 @@ min-height: 100vh; } -.topBackground, -.bottomBackground { +.backgroundAnimation { position: absolute; - left: 0; - width: 100vw; - height: 100vh; - z-index: 1; - pointer-events: none; -} - -.topBackground { - top: -50px; - left: -50px; -} - -.bottomBackground { - bottom: -50px; - left: -50px; -} + top: 0; + bottom: 0; + left: 35%; + height: 100%; + width: 65%; + z-index: -1; -.mainContainer { - display: flex; - flex-direction: column; - margin: 0 auto; - position: relative; - z-index: 5; - gap: 100px; + .backgorundImage { + width: auto; + max-height: 100%; + } } -.mainContainerHome { - max-width: 1160px; +@media (max-width: 992px) { + .backgroundAnimation { + opacity: 0.4; + } } -@media (max-width: 768px) { - .mainContainer { - gap: 50px; +@media (max-width: 640px) { + .backgroundAnimation { + display: none; } } diff --git a/src/components/Layout/index.tsx b/src/components/Layout/index.tsx index 5b84022d..689c6b54 100644 --- a/src/components/Layout/index.tsx +++ b/src/components/Layout/index.tsx @@ -1,39 +1,42 @@ -import Head from 'next/head' -import Footer from '../Footer' -import { ReactNode } from 'react' -import styles from './index.module.css' -import AnimatedBackground from '../AnimatedConnections/AnimatedBackground' -import { useRouter } from 'next/router' -import NavBar from '../Navigation' +import FooterSection from '@/components/homepage/footer-section'; +import Navigation from '@/components/Navigation/navigation'; +import Head from 'next/head'; +import { ReactNode } from 'react'; +import styles from './index.module.css'; + +const videoSrc = '/banner-video.mp4'; +const posterSrc = '/banner-video.jpg'; type RootLayoutProps = { - children: ReactNode -} + children: ReactNode; +}; export default function RootLayout({ children }: RootLayoutProps) { - const router = useRouter() - const isHomePage = router.pathname === '/' - return ( <> - Ocean nodes - + Ocean Network +
-
- -
-
- - {children} -
+
+
+ + {children} +
- ) + ); } diff --git a/src/components/Map/index.tsx b/src/components/Map/index.tsx deleted file mode 100644 index 1e75b8ad..00000000 --- a/src/components/Map/index.tsx +++ /dev/null @@ -1,144 +0,0 @@ -'use client' -import React, { useState, useEffect } from 'react' -import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet' -import MarkerIcon from '../../assets/marker_map_icon.png' -import L, { LatLngExpression } from 'leaflet' -import 'leaflet/dist/leaflet.css' -import styles from './style.module.css' -import { useMapContext } from '../../context/MapContext' -import { Alert, Box, LinearProgress, Skeleton } from '@mui/material' -import { LocationNode } from '../../shared/types/locationNodeType' - -export default function Map() { - const [isClient, setIsClient] = useState(false) - const { data, loading, error } = useMapContext() - - useEffect(() => { - setIsClient(true) - }, []) - - if (loading || !data) { - return ( - - - - ) - } - - if (error) { - return ( - - - Error loading map data: {error?.message || 'Something went wrong'} - - - ) - } - - const center: [number, number] = [25, 0] - - const customIcon = L.icon({ - iconUrl: MarkerIcon.src, - iconSize: [36, 36], - iconAnchor: [19, 36], - popupAnchor: [0, -36] - }) - - const getRandomOffset = (): number => { - const min = 0.0002 - const max = 0.0006 - const randomValue = Math.random() * (max - min) + min - return Math.random() < 0.5 ? -randomValue : randomValue - } - - const offsetCoordinates = (latitude: number, longitude: number): LatLngExpression => { - const latOffset = getRandomOffset() - const lngOffset = getRandomOffset() - return [latitude + latOffset, longitude + lngOffset] - } - - const groupedNodesByCity = data.reduce( - ( - acc: Record, - node: LocationNode - ) => { - const { city, lat, lon, country, count } = node - - if (city) { - if (!acc[city]) { - acc[city] = { lat, lon, country, count } - } else { - acc[city].count += count - } - } - - return acc - }, - {} - ) - - return ( - isClient && ( - - - {!loading && - !error && - Object.entries(groupedNodesByCity).map( - ([city, { lat, lon, country, count }]) => { - if ( - typeof lat !== 'number' || - typeof lon !== 'number' || - isNaN(lat) || - isNaN(lon) - ) { - console.warn( - `Invalid coordinates for city: ${city}, lat: ${lat}, lon: ${lon}` - ) - return null - } - - return ( - - - City: {city} -
- Country: {country} -
- Total Nodes: {count} -
-
-
- ) - } - )} - {loading && } -
- ) - ) -} diff --git a/src/components/Map/style.module.css b/src/components/Map/style.module.css deleted file mode 100644 index 241b799d..00000000 --- a/src/components/Map/style.module.css +++ /dev/null @@ -1,18 +0,0 @@ -.popup{ - width: 420px; -} - -.mapContainer { - animation: fadeIn 0.5s ease-in; -} - -@keyframes fadeIn { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } -} \ No newline at end of file diff --git a/src/components/Navigation/index.tsx b/src/components/Navigation/index.tsx deleted file mode 100644 index d3bf76e5..00000000 --- a/src/components/Navigation/index.tsx +++ /dev/null @@ -1,53 +0,0 @@ -'use client' -import Image from 'next/image' -import logo from '../../assets/logo.svg' -import styles from './style.module.css' -// import { ConnectButton } from '@rainbow-me/rainbowkit' -import Link from 'next/link' -import { getRoutes } from '../../config' - -const NavBar = () => { - const routes = getRoutes() - - return ( -
-
-
- Phase 1 of Ocean Nodes is complete. We're building towards Phase 2. -
-
- Join us as an Alpha GPU Node Tester and help build the - decentralized GPU network of tomorrow.{' '} - - View details here - -
-
-
-
- - Ocean Node Logo - -
-
- {Object.values(routes).map((route) => ( - - {route.name} - - ))} -
- {/*
-
- -
-
*/} -
-
- ) -} - -export default NavBar diff --git a/src/components/Navigation/navigation.module.css b/src/components/Navigation/navigation.module.css new file mode 100644 index 00000000..b267a927 --- /dev/null +++ b/src/components/Navigation/navigation.module.css @@ -0,0 +1,249 @@ +.root { + position: sticky; + top: 0; + z-index: 100; +} + +.loginButton { + font-weight: 500; +} + +.container { + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; + padding: 22px 0; +} + +.logoWrapper { + flex: 0 0 auto; + display: flex; + align-items: center; +} + +.desktopNav { + display: flex; + gap: 10px; + font-size: 16px; + background: rgba(0, 155, 255, 0.1); + border: 1px solid rgba(0, 155, 255, 0.2); + padding: 16px 24px; + border-radius: 40px; + backdrop-filter: blur(10px); +} + +.navLink { + padding: 8px 16px; + border-radius: 100px; + transition: + background-color 0.2s ease, + color 0.2s ease; +} + +.navLink:hover { + background-color: rgba(0, 153, 255, 0.3); +} + +.active { + background-color: #be00ff; + color: #ffffff; +} + +.sideActions { + display: flex; + gap: 16px; + align-items: center; + justify-content: flex-end; +} + +.actionIconLink { + display: inline-flex; + width: 38px; + height: 38px; + border-radius: 999px; + align-items: center; + justify-content: center; + background: rgba(190, 0, 255, 0.12); + transition: background-color 0.2s ease; +} + +.actionIconLink:hover { + background: rgba(190, 0, 255, 0.3); +} + +.loginButton { + min-width: max-content; +} + +.menuToggle { + display: none; + position: relative; + width: 44px; + height: 44px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.2); + background: rgba(0, 0, 0, 0.3); + align-items: center; + justify-content: center; + gap: 6px; + flex-direction: column; + cursor: pointer; + transition: border-color 0.2s ease; +} + +.menuToggle span { + display: block; + width: 20px; + height: 2px; + background: #ffffff; + transition: + transform 0.3s ease, + opacity 0.3s ease; +} + +.menuToggleOpen span:nth-child(1) { + transform: translateY(6px) rotate(45deg); +} + +.menuToggleOpen span:nth-child(2) { + opacity: 0; +} + +.menuToggleOpen span:nth-child(3) { + transform: translateY(-6px) rotate(-45deg); +} + +.mobileMenu { + position: fixed; + top: 0; + right: 0; + width: min(360px, 100vw); + height: 100vh; + background: #030713; + padding: 30px 28px; + display: flex; + flex-direction: column; + gap: 28px; + transform: translateX(100%); + transition: transform 0.3s ease; + z-index: 95; + box-shadow: -12px 0 32px rgba(0, 0, 0, 0.4); + overflow-y: auto; +} + +.mobileMenuOpen { + transform: translateX(0); +} + +.mobileMenuHeader { + display: flex; + align-items: center; + justify-content: space-between; +} + +.closeButton { + position: relative; + width: 32px; + height: 32px; + border-radius: 50%; + background: rgba(190, 0, 255, 0.2); + border: none; + cursor: pointer; + display: inline-flex; + align-items: center; + justify-content: center; +} + +.closeButton span { + position: absolute; + top: 50%; + left: 50%; + width: 16px; + height: 2px; + background: #ffffff; + transform-origin: center; +} + +.closeButton span:first-child { + transform: translate(-50%, -50%) rotate(45deg); +} + +.closeButton span:last-child { + transform: translate(-50%, -50%) rotate(-45deg); +} + +.mobileNavLinks { + display: flex; + flex-direction: column; + gap: 12px; +} + +.mobileNavLink { + display: block; + padding: 14px 18px; + border-radius: 16px; + border: 1px solid rgba(0, 153, 255, 0.16); + background: rgba(0, 153, 255, 0.08); + text-transform: uppercase; + font-size: 14px; + letter-spacing: 0.12em; + transition: + background-color 0.2s ease, + border-color 0.2s ease; +} + +.mobileNavLink:hover { + background: rgba(190, 0, 255, 0.2); + border-color: rgba(190, 0, 255, 0.4); +} + +.mobileActions { + display: flex; + flex-direction: column; + gap: 16px; + margin-top: auto; +} + +.mobileActions .actionIconLink { + width: 44px; + height: 44px; +} + +.mobileActions .loginButton { + width: 100%; + text-align: center; +} + +.mobileBackdrop { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.4); + opacity: 0; + visibility: hidden; + transition: + opacity 0.3s ease, + visibility 0.3s ease; + z-index: 90; +} + +.mobileBackdropVisible { + visibility: visible; +} + +@media (max-width: 1100px) { + .desktopNav { + font-size: 15px; + } +} + +@media (max-width: 940px) { + .desktopNav, + .sideActions { + display: none; + } + + .menuToggle { + display: inline-flex; + } +} diff --git a/src/components/Navigation/navigation.tsx b/src/components/Navigation/navigation.tsx new file mode 100644 index 00000000..5c39b9f7 --- /dev/null +++ b/src/components/Navigation/navigation.tsx @@ -0,0 +1,147 @@ +import DiscordIcon from '@/assets/discord.svg'; +import Logo from '@/assets/logo.svg'; +import XIcon from '@/assets/x.svg'; +import ProfileButton from '@/components/Navigation/profile-button'; +import cx from 'classnames'; +import Link from 'next/link'; +import { useRouter } from 'next/router'; +import { useEffect, useRef, useState } from 'react'; +import config, { getRoutes } from '../../config'; +import Container from '../container/container'; +import styles from './navigation.module.css'; + +const Navigation = () => { + const router = useRouter(); + const routes = getRoutes(); + + const scrollPositionRef = useRef(0); + + const [isMenuOpen, setIsMenuOpen] = useState(false); + const [isClient, setIsClient] = useState(false); + + useEffect(() => { + setIsClient(true); + }, []); + + useEffect(() => { + const html = document.documentElement; + const body = document.body; + + if (isMenuOpen) { + scrollPositionRef.current = window.scrollY; + html.style.overflow = 'hidden'; + body.style.overflow = 'hidden'; + body.style.position = 'fixed'; + body.style.top = `-${scrollPositionRef.current}px`; + body.style.width = '100%'; + } else { + html.style.overflow = ''; + body.style.overflow = ''; + body.style.position = ''; + body.style.top = ''; + body.style.width = ''; + window.scrollTo(0, scrollPositionRef.current); + } + + return () => { + html.style.overflow = ''; + body.style.overflow = ''; + if (body.style.top) { + const scrollY = Math.abs(parseInt(body.style.top, 10)); + body.style.position = ''; + body.style.top = ''; + body.style.width = ''; + window.scrollTo(0, scrollY || scrollPositionRef.current); + } else { + body.style.position = ''; + body.style.width = ''; + } + }; + }, [isMenuOpen]); + + useEffect(() => { + setIsMenuOpen(false); + }, [router.pathname]); + + const renderNavLinks = (className: string) => + Object.values(routes).map((route) => ( + + {route.name} + + )); + + const Actions = ({ className }: { className: string }) => ( +
+ + + + + + + +
+ ); + + return ( +
+ +
+ + + +
+ + + +
+ +
+ ); +}; + +export default Navigation; diff --git a/src/components/Navigation/profile-button.tsx b/src/components/Navigation/profile-button.tsx new file mode 100644 index 00000000..242f0ccc --- /dev/null +++ b/src/components/Navigation/profile-button.tsx @@ -0,0 +1,131 @@ +import Avatar from '@/components/avatar/avatar'; +import { useProfileContext } from '@/context/profile-context'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { formatWalletAddress } from '@/utils/formatters'; +import { useAuthModal, useLogout, useSignerStatus } from '@account-kit/react'; +import LogoutIcon from '@mui/icons-material/Logout'; +import PersonIcon from '@mui/icons-material/Person'; +import WalletIcon from '@mui/icons-material/Wallet'; +import { ListItemIcon, Menu, MenuItem } from '@mui/material'; +import { useRouter } from 'next/router'; +import { useEffect, useMemo, useState } from 'react'; +import Button from '../button/button'; +import styles from './navigation.module.css'; + +const ProfileButton = () => { + const { openAuthModal } = useAuthModal(); + const { logout, isLoggingOut } = useLogout(); + const router = useRouter(); + const { isAuthenticating, isInitializing } = useSignerStatus(); + + const { account } = useOceanAccount(); + + const { ensName, ensProfile } = useProfileContext(); + + const [anchorEl, setAnchorEl] = useState(null); + const [isClient, setIsClient] = useState(false); + + useEffect(() => { + setIsClient(true); + }, []); + + const handleOpenMenu = () => { + setAnchorEl(document.getElementById('profile-button')); + }; + + const handleCloseMenu = () => { + setAnchorEl(null); + }; + + const accountName = useMemo(() => { + if (account.status === 'connected' && account.address) { + if (ensName) { + return ensName; + } + if (account.address) { + return formatWalletAddress(account.address); + } + } + return 'Not connected'; + }, [account, ensName]); + + return isClient && account?.status === 'connected' ? ( + <> + + + { + router.push('/profile/consumer'); + handleCloseMenu(); + }} + > + + + + Profile + + {/* { + openAuthModal(); + handleCloseMenu(); + }} + > + + + + Wallet + */} + { + logout(); + handleCloseMenu(); + }} + > + + + + Log out + + + + ) : ( + + ); +}; + +export default ProfileButton; diff --git a/src/components/Navigation/style.module.css b/src/components/Navigation/style.module.css deleted file mode 100644 index 45784fae..00000000 --- a/src/components/Navigation/style.module.css +++ /dev/null @@ -1,100 +0,0 @@ -.root { - display: flex; - flex-direction: column; - gap: 16px; -} - -.banner { - background: #fff; - border-radius: 20px; - padding: 16px 32px; - - .heading { - font-size: 18px; - font-weight: 800; - margin-bottom: 8px; - } - - .link { - color: #cf1fb1; - text-decoration: underline; - } -} - -.navbarParent { - top: 40px; - z-index: 1000; - display: flex; - justify-content: space-between; - align-items: center; - padding: 9px 37px 4px 37px; - background-color: rgba(207, 31, 177, 0.04); - border-radius: 20px; - -webkit-backdrop-filter: blur(15px); - backdrop-filter: blur(15px); - width: 100%; - margin: 0 auto; - box-shadow: 0px 7px 23px 0px rgba(0, 0, 0, 0.05); - max-width: 1160px; - margin: 0 auto; -} - -.logoWrapper { - flex-shrink: 0; -} - -.connectButtonWrapper { - flex-shrink: 0; -} - -.NavbarLinks { - display: flex; - flex-direction: row; - align-items: center; - gap: 24px; -} - -.navLinks { - display: flex; - gap: 2rem; -} - -.navLink { - color: white; - text-decoration: none; - font-size: 20px; - font-family: 'Sharp Sans', sans-serif; - font-weight: 400; - line-height: 26px; - letter-spacing: 0em; - text-align: left; -} - -.navLink:hover { - text-decoration: none; -} - -@media screen and (max-width: 700px) { - .navbarParent { - width: 90vw; - margin: 0 auto; - } -} - -@media (max-width: 768px) { - .navbarParent { - flex-direction: column; - gap: 16px; - padding: 16px; - } - - .NavbarLinks { - flex-direction: column; - gap: 16px; - margin-top: 16px; - } - - .navLink { - font-size: 16px; - } -} diff --git a/src/components/NodeDetails/index.module.css b/src/components/NodeDetails/index.module.css deleted file mode 100644 index 12cb19d8..00000000 --- a/src/components/NodeDetails/index.module.css +++ /dev/null @@ -1,57 +0,0 @@ -.root { - width: calc(100% - 64px); - padding: 32px 42px; - margin-top: 24px; - margin-left: 32px; - margin-right: 32px; - border-radius: 12px; - display: flex; - flex-direction: column; - flex-wrap: wrap; - gap: 14px; - background-color: var(--background-secondary); -} - -@media (max-width: 768px) { - .root { - width: calc(100% - 32px); - margin-left: 16px; - margin-right: 16px; - padding: 16px; - } - - .key, .value { - width: 100%; - } - - .item { - flex-direction: column; - align-items: flex-start; - gap: 8px; - } -} - -.item { - width: 100%; - border-bottom: 1px solid var(--border-color); - padding-bottom: 12px; - display: flex; - flex-direction: row; - justify-content: start; - align-items: center; - gap: 24px; -} - -.key { - width: 200px; - color: var(--color-secondary); - font-weight: 700; - text-transform: capitalize; -} - -.value { - width: calc(100% - 200px); - color: var(--gray-500); - font-weight: 400; - word-break: break-word; -} diff --git a/src/components/NodeDetails/index.tsx b/src/components/NodeDetails/index.tsx deleted file mode 100644 index 7fe69cfc..00000000 --- a/src/components/NodeDetails/index.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react' -import { ExpanderComponentProps } from 'react-data-table-component' -import { NodeData } from '@Types/RowDataType' -import styles from './index.module.css' - - -const NodeDetails: React.FC> = ({ data }) => { - const keyValuePairs = Object.keys(data).map((key) => { - const value = data[key as keyof NodeData]; - return { key, value: typeof value === 'object' ? JSON.stringify(value) : value }; - }); - - return ( -
- {keyValuePairs.map((item) => ( -
-
{item.key}
-
{String(item.value)}
-
- ))} -
- ); -}; - -export default NodeDetails; diff --git a/src/components/NodePeers/index.tsx b/src/components/NodePeers/index.tsx deleted file mode 100644 index f24eeacd..00000000 --- a/src/components/NodePeers/index.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import React, { useEffect, useState } from 'react' -import styles from './style.module.css' -import Spinner from '../Spinner' -import { truncateString } from '../../shared/utils/truncateString' -import Copy from '../Copy' - -export default function NodePeers() { - const [nodePeers, setNodePeers] = useState([]) - const [isLoadingNodePeers, setLoadingNodePeers] = useState(true) - - const fetchNodePeers = async () => { - setLoadingNodePeers(true) - try { - const apiNodePeers = '/getOceanPeers' - const res = await fetch(apiNodePeers, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - }, - method: 'GET' - }) - const data = await res.json() - setNodePeers(data) - } catch (error) { - console.error('error', error) - } finally { - setLoadingNodePeers(false) - } - } - - useEffect(() => { - fetchNodePeers() - - const intervalId = setInterval(() => { - fetchNodePeers() - }, 120000) // 2 minutes - - return () => clearInterval(intervalId) - }, []) - - return ( -
-
Connected Nodes
- {isLoadingNodePeers && ( -
- -
- )} - - {nodePeers.length > 0 ? ( - nodePeers.map((address) => ( -
- {truncateString(address, 12)} -
- )) - ) : ( -
There are no nodes connected
- )} -
- ) -} diff --git a/src/components/NodePeers/style.module.css b/src/components/NodePeers/style.module.css deleted file mode 100644 index b77d3672..00000000 --- a/src/components/NodePeers/style.module.css +++ /dev/null @@ -1,55 +0,0 @@ -.title24 { - color: #3D4551; - font-family: 'Sharp Sans', Helvetica, Arial, sans-serif; - font-size: 18px; - font-style: normal; - font-weight: 700; - line-height: 140%; /* 33.6px */ -} - -.loaderContainer { - position: absolute; - width: 100%; - height: 100%; - background-color: rgba(51, 51, 51, 0.2); - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - border-radius: 12px; -} - -.nodes { - display: flex; - flex-direction: column; - gap: 15px; - position: relative; - - color: var(--Gray-Gray-500, #718096); - font-family: Helvetica; - font-size: 18px; - font-style: normal; - font-weight: 400; - line-height: 140%; /* 25.2px */ -} - -.nodeAddress { - display: flex; - flex-direction: row; - gap: 18px; -} - -.nodeAddress:hover { - color: #333; - cursor: pointer; -} - -.nodeAddress > h5 { - color: #3D4551; - font-family: Helvetica; - font-size: 18px; - font-style: normal; - font-weight: 700; - line-height: 150%; /* 30px */ - min-width: 55px; -} diff --git a/src/components/Pages/Countries/index.module.css b/src/components/Pages/Countries/index.module.css deleted file mode 100644 index 71ce9328..00000000 --- a/src/components/Pages/Countries/index.module.css +++ /dev/null @@ -1,42 +0,0 @@ -.root { - display: flex; - flex-direction: column; - align-items: center; - gap: 100px; -} - -@media (max-width: 768px) { - .root { - gap: 50px; - } -} - -.title { - font-size: 50px; - font-weight: 700; - line-height: 62px; - color: white; - margin-bottom: 16px; -} - -@media (max-width: 768px) { - .title { - font-size: 36px; - line-height: 44px; - } -} - -.description { - font-size: 18px; - font-weight: 400; - line-height: 30px; - color: white; - margin-bottom: 40px; -} - -@media (max-width: 768px) { - .description { - font-size: 16px; - line-height: 24px; - } -} diff --git a/src/components/Pages/Countries/index.tsx b/src/components/Pages/Countries/index.tsx deleted file mode 100644 index 7b6b9f30..00000000 --- a/src/components/Pages/Countries/index.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import React from 'react' -import styles from './index.module.css' -import Table from '../../Table' -import HeroSection from '../../HeroSection/HeroSection' -import { TableTypeEnum } from '@/shared/enums/TableTypeEnum' -import { useCountriesContext } from '@/context/CountriesContext' - -const CountriesPage: React.FC = () => { - const { - data, - loading, - currentPage, - pageSize, - totalItems, - setCurrentPage, - setPageSize - } = useCountriesContext() - - return ( -
- - { - setCurrentPage(page) - setPageSize(size) - }} - /> - - ) -} - -export default CountriesPage diff --git a/src/components/Pages/History/index.module.css b/src/components/Pages/History/index.module.css deleted file mode 100644 index 94b4dd6d..00000000 --- a/src/components/Pages/History/index.module.css +++ /dev/null @@ -1,130 +0,0 @@ -.root { - display: flex; - flex-direction: column; - align-items: center; - padding: 24px; - width: 100%; -} - -.searchBarCenter { - display: flex; - justify-content: center; - width: 100%; - margin: 32px 0; -} - -.searchBarTop { - display: flex; - justify-content: center; - padding: 20px; - transition: all 0.3s ease-in-out; - width: 100%; -} - -.searchForm { - width: 100%; - max-width: 600px; - display: flex; - justify-content: center; -} - -.resultsContainer { - width: 100%; - max-width: 1200px; - margin: 0 auto; - display: flex; - flex-direction: column; - align-items: center; - background-color: white; - border-radius: 8px; - padding: 24px; - box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); -} - -.resultsTitle { - font-family: 'Sharp Sans', sans-serif; - font-size: 20px; - margin-bottom: 24px; - text-align: center; - width: 100%; - color: #333; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.statsCardsContainer { - width: 100%; - margin: 0 auto; - display: flex; - flex-direction: row; - align-items: center; -} - -@media (max-width: 768px) { - .searchBarCenter, .searchBarTop { - padding: 0 15px; - } - - .resultsContainer { - padding: 0 15px 30px 15px; - } -} -.root { - width: 100%; -} - -.dashboardContainer { - max-width: 1280px; - margin: 0 auto 50px; - width: 100%; -} - -.searchBarCenter { - display: flex; - justify-content: center; - margin-bottom: 30px; -} - -.searchForm { - width: 100%; - max-width: 600px; -} - -.resultsContainer { - max-width: 1280px; - margin: 0 auto; -} - -.dateRangeContainer { - width: 100%; - max-width: 1280px; - margin: 0 auto 20px; - padding: 0 16px; - display: flex; - justify-content: flex-end; - position: relative; - z-index: 1; -} - -/* Ensure the date picker shows clearly */ -.dateRangeContainer > div { - min-width: 300px; - backdrop-filter: blur(20px); - -webkit-backdrop-filter: blur(20px); -} - -/* Responsive styles for date picker */ -@media (max-width: 768px) { - .dateRangeContainer { - padding: 0 12px; - } - - .dateRangeContainer > div { - min-width: 260px; - } -} - -.dashboardContainer { - margin-top: 20px; -} diff --git a/src/components/Pages/History/index.tsx b/src/components/Pages/History/index.tsx deleted file mode 100644 index 27e92cd7..00000000 --- a/src/components/Pages/History/index.tsx +++ /dev/null @@ -1,176 +0,0 @@ -import React, { useEffect, useState } from 'react' -import { useRouter } from 'next/router' -import { TextField, Box, InputAdornment, IconButton } from '@mui/material' -import SearchIcon from '@mui/icons-material/Search' -import ClearIcon from '@mui/icons-material/Clear' -import styles from './index.module.css' -import Table from '../../Table' -import HeroSection from '../../HeroSection/HeroSection' -import { TableTypeEnum } from '../../../shared/enums/TableTypeEnum' -import { useHistoryContext } from '../../../context/HistoryContext' -import { HistoryDashboard } from '../../Dashboard' -import PeriodSelect, { DateRange } from '../../PeriodSelect' - -const DEBOUNCE_DELAY = 1000 - -const HistoryPage: React.FC = () => { - const router = useRouter() - const [debounceTimeout, setDebounceTimeout] = useState(null) - - const { - data, - loading, - currentPage, - pageSize, - totalItems, - nodeId, - setNodeId, - setCurrentPage, - setPageSize, - dateRange, - setDateRange, - setIsSearching, - availablePeriods, - periodsLoading, - isInitialising, - isSearching - } = useHistoryContext() - - - useEffect(() => { - const nodeIdFromUrl = router.query.id || router.query.nodeid - - if (typeof nodeIdFromUrl === 'string' && nodeIdFromUrl) { - setNodeId(nodeIdFromUrl) - if (!isSearching) { - if (debounceTimeout) clearTimeout(debounceTimeout) - - const timeout = setTimeout(() => { - setIsSearching(true) - }, DEBOUNCE_DELAY) - - setDebounceTimeout(timeout) - } - } else if (!nodeIdFromUrl && nodeId) { - setNodeId('') - } - - return () => { - if (debounceTimeout) clearTimeout(debounceTimeout) - } - }, [router.query]) - - const handleSearch = () => { - const trimmedNodeId = nodeId.trim() - if (trimmedNodeId) { - const currentQuery = { ...router.query } - const newQuery: { [key: string]: string | string[] | undefined } = { - ...currentQuery, - id: trimmedNodeId - } - delete newQuery.nodeid - - router.push({ - pathname: router.pathname, - query: newQuery - }) - setIsSearching(true) - } - } - - const handleClear = () => { - setNodeId('') - const newQuery = { ...router.query } - delete newQuery.id - delete newQuery.nodeid - router.push({ - pathname: router.pathname, - query: newQuery - }) - setIsSearching(false) - } - - - const handleDateRangeChange = (newRange: DateRange) => { - if (newRange.startDate && newRange.endDate) { - setDateRange(newRange) - setCurrentPage(1) - } else { - console.log('[HistoryPage] Ignoring invalid date range change (missing dates)') - } - } - - return ( -
- -
- - setNodeId(e.target.value)} - placeholder="Enter node ID..." - onKeyDown={(e) => e.key === 'Enter' && handleSearch()} - variant="outlined" - InputProps={{ - startAdornment: ( - - - - ), - endAdornment: nodeId && ( - - - - - - ), - sx: { - borderRadius: '20px', - backgroundColor: 'rgba(255, 255, 255, 0.9)', - '&.Mui-focused': { - boxShadow: '0 1px 6px rgba(32, 33, 36, 0.28)' - }, - boxShadow: '0 1px 3px rgba(32, 33, 36, 0.28)', - height: '40px', - maxHeight: '40px' - } - }} - /> - -
-
- - {nodeId && nodeId.trim() !== '' && ( - <> -
- -
-
- -
-
{ - setCurrentPage(page) - setPageSize(size) - }} - /> - - )} - - ) -} - -export default HistoryPage diff --git a/src/components/Pages/Homepage/index.tsx b/src/components/Pages/Homepage/index.tsx deleted file mode 100644 index e4cee000..00000000 --- a/src/components/Pages/Homepage/index.tsx +++ /dev/null @@ -1,113 +0,0 @@ -import dynamic from 'next/dynamic' -import { useEffect } from 'react' - -import styles from './style.module.css' - -import PieChartCard from '@/components/PieChart/PieChart' -import HeroSection from '@/components/HeroSection/HeroSection' -import { useNodesContext } from '@/context/NodesContext' -import TopCountriesChart from '@/components/TopCountriesChart/TopCountriesChart ' -import { NodesDashboard } from '@/components/Dashboard' - -const Map = dynamic(() => import('../../Map'), { ssr: false }) - -interface SystemStats { - cpuCounts: { [key: string]: number } - operatingSystems: { [key: string]: number } - cpuArchitectures: { [key: string]: number } -} - -const brandColors = { - primary: ['#7b1173', '#bd2881', '#d53288', '#e000cf', '#fe4796', '#ff4092'], - other: '#f7f7f7' -} - -interface ChartDataItem { - name: string - value: number - color: string - details?: string[] -} - -const processChartData = ( - data: Record, - maxSlices: number -): ChartDataItem[] => { - if (!data) return [] - - const sortedEntries = Object.entries(data).sort(([, a], [, b]) => b - a) - - const mainEntries = sortedEntries.slice(0, maxSlices) - const otherEntries = sortedEntries.slice(maxSlices) - const otherCount = otherEntries.reduce((sum, [, count]) => sum + count, 0) - - const result = mainEntries.map( - ([key, count], index): ChartDataItem => ({ - name: key, - value: count, - color: brandColors.primary[index] - }) - ) - - if (otherCount > 0) { - result.push({ - name: 'Other', - value: otherCount, - color: brandColors.other, - details: otherEntries.map(([key, count]) => `${key}: ${count} nodes`) - }) - } - - return result -} - -const processCpuData = (stats: SystemStats): ChartDataItem[] => { - if (!stats?.cpuCounts) return [] - const data = processChartData(stats.cpuCounts, 5) - return data.map((item) => ({ - ...item, - name: - item.name === 'Other' - ? item.name - : `${item.name} CPU${item.name !== '1' ? 's' : ''}`, - details: item.details?.map((detail) => { - const [count, nodes] = detail.split(':') - return `${count} CPU${count !== '1' ? 's' : ''}:${nodes}` - }) - })) -} - -const processOsData = (stats: SystemStats): ChartDataItem[] => { - if (!stats?.operatingSystems) return [] - return processChartData(stats.operatingSystems, 3) -} - -const processCpuArchData = (stats: SystemStats): ChartDataItem[] => { - if (!stats?.cpuArchitectures) return [] - const data = processChartData(stats.cpuArchitectures, 3) - - return data.map((item) => ({ - ...item, - name: item.name.toUpperCase(), - details: item.details?.map((detail) => detail.toUpperCase()) - })) -} - -export default function HomePage() { - const { systemStats } = useNodesContext() - - return ( -
- - - - -
- - - -
- -
- ) -} diff --git a/src/components/Pages/Incentives/index.module.css b/src/components/Pages/Incentives/index.module.css deleted file mode 100644 index 71ce9328..00000000 --- a/src/components/Pages/Incentives/index.module.css +++ /dev/null @@ -1,42 +0,0 @@ -.root { - display: flex; - flex-direction: column; - align-items: center; - gap: 100px; -} - -@media (max-width: 768px) { - .root { - gap: 50px; - } -} - -.title { - font-size: 50px; - font-weight: 700; - line-height: 62px; - color: white; - margin-bottom: 16px; -} - -@media (max-width: 768px) { - .title { - font-size: 36px; - line-height: 44px; - } -} - -.description { - font-size: 18px; - font-weight: 400; - line-height: 30px; - color: white; - margin-bottom: 40px; -} - -@media (max-width: 768px) { - .description { - font-size: 16px; - line-height: 24px; - } -} diff --git a/src/components/Pages/Incentives/index.tsx b/src/components/Pages/Incentives/index.tsx deleted file mode 100644 index 2f7e6190..00000000 --- a/src/components/Pages/Incentives/index.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react' -import styles from './index.module.css' - -// import Table from '../../Table' -import HeroSection from '../../HeroSection/HeroSection' - -const IncentivesPage: React.FC = () => { - return ( -
- - {/*
*/} - - ) -} - -export default IncentivesPage diff --git a/src/components/Pages/NodeDashboard/AdminAccounts.tsx b/src/components/Pages/NodeDashboard/AdminAccounts.tsx deleted file mode 100644 index f46d8df5..00000000 --- a/src/components/Pages/NodeDashboard/AdminAccounts.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import styles from './index.module.css' -import { useAdminContext } from '@/context/AdminProvider' - -export default function AdminAccounts() { - const { allAdmins } = useAdminContext() - - return ( -
-
Admin Accounts
-
- {allAdmins.map((admin, i) => { - return ( -
- {admin} -
- ) - })} -
-
- ) -} diff --git a/src/components/Pages/NodeDashboard/Indexer.tsx b/src/components/Pages/NodeDashboard/Indexer.tsx deleted file mode 100644 index 9fe47ca5..00000000 --- a/src/components/Pages/NodeDashboard/Indexer.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import cs from 'classnames' -import styles from './index.module.css' -import IndexQueue from '../../IndexQueue' -import { NodeDataType } from '@Types/dataTypes' -import { Card, Grid } from '@mui/material' - -export default function Indexer({ data }: { data: NodeDataType | undefined }) { - return ( -
-
INDEXER
- - {data?.indexer.map((item) => { - return ( - - -
{item.network}
-
ChainID: {item.chainId}
-
BLOCK: {item.block}
-
-
- ) - })} -
- - -
- ) -} diff --git a/src/components/Pages/NodeDashboard/Menu.module.css b/src/components/Pages/NodeDashboard/Menu.module.css deleted file mode 100644 index 5b6108f9..00000000 --- a/src/components/Pages/NodeDashboard/Menu.module.css +++ /dev/null @@ -1,28 +0,0 @@ -.root { - border-radius: 12px; - background: #FFF; - max-width: 260px; - display: flex; - flex-direction: column; - padding: 40px 28px; - min-width: 260px; -} - -.title { - color: #3D4551; - font-family: Helvetica; - font-size: 20px; - font-style: normal; - font-weight: 700; - line-height: 140%; - margin-bottom: 47px; -} - -@media screen and (max-width: 700px) { - .root { - max-width: none; - width: 90vw; - margin: 0 auto; - padding: 20px; - } -} diff --git a/src/components/Pages/NodeDashboard/Menu.tsx b/src/components/Pages/NodeDashboard/Menu.tsx deleted file mode 100644 index 4c938bda..00000000 --- a/src/components/Pages/NodeDashboard/Menu.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react' -import AdminActions from '../../Admin' -import styles from './Menu.module.css' - -export default function Menu() { - return ( -
-
STATUS ADMIN
- -
- ) -} diff --git a/src/components/Pages/NodeDashboard/NodePlatform.tsx b/src/components/Pages/NodeDashboard/NodePlatform.tsx deleted file mode 100644 index c6682272..00000000 --- a/src/components/Pages/NodeDashboard/NodePlatform.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import styles from './index.module.css' - -export default function NodePlatform({ - platformData -}: { - platformData: { key: string; value: string | number }[] -}) { - return ( -
-
PLATFORM
-
- {platformData.map((item) => { - return ( -
-
- {item.key}: -
-
{item.value}
-
- ) - })} -
-
- ) -} diff --git a/src/components/Pages/NodeDashboard/SupportedStorage.tsx b/src/components/Pages/NodeDashboard/SupportedStorage.tsx deleted file mode 100644 index 9199f76e..00000000 --- a/src/components/Pages/NodeDashboard/SupportedStorage.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import styles from './index.module.css' -import { SupportedStorageType } from '@Types/dataTypes' - -export default function SupportedStorage({ - data -}: { - data: SupportedStorageType | undefined -}) { - return ( -
-
SUPPORTED STORAGE
-
-
-
- arwave: -
-
{data?.arwave.toString()}
-
-
-
- ipfs: -
-
{data?.ipfs.toString()}
-
-
-
- url: -
-
{data?.url.toString()}
-
-
-
- ) -} diff --git a/src/components/Pages/NodeDashboard/index.module.css b/src/components/Pages/NodeDashboard/index.module.css deleted file mode 100644 index d99c4c5b..00000000 --- a/src/components/Pages/NodeDashboard/index.module.css +++ /dev/null @@ -1,244 +0,0 @@ -.root { - display: flex; - flex-direction: row; - gap: 28px; - position: relative; - min-height: 550px; -} - -.bodyContainer { - position: relative; - width: 100%; -} - -.body { - padding: 40px 72px; - border-radius: 12px; - background: #0E001A; - width: 100%; -} - -.details { - display: flex; - flex-direction: row; - width: 100%; -} - -.columnP2P { - /* padding: 32px; */ - border-bottom: 1.5px solid #eef1f5; - border-right: 1.5px solid #eef1f5; - width: 50%; -} - -.columnHTTP { - /* padding: 32px; */ - border-bottom: 1.5px solid #eef1f5; - width: 50%; -} - -.columnP2P > div { - padding: 18px 18px 18px 0; -} - -.columnHTTP > div { - padding: 18px; -} - -.nodes { - display: flex; - flex-direction: column; - gap: 15px; - - color: var(--gray-500); - font-family: 'Sharp Sans', Helvetica, Arial, sans-serif; - font-size: 14px; - font-style: normal; - font-weight: 400; - line-height: 140%; /* 25.2px */ -} - -.borderBottom { - border-bottom: 1.5px solid #eef1f5; -} - -.title29 { - color: #3d4551; - font-family: Helvetica; - font-size: 20px; - font-style: normal; - font-weight: 700; - line-height: 140%; /* 40.6px */ - margin-bottom: 38px; -} - -.title24 { - color: #3d4551; - font-family: Helvetica; - font-size: 18px; - font-style: normal; - font-weight: 700; - line-height: 140%; /* 33.6px */ -} - -.nodeAddress { - display: flex; - flex-direction: row; - gap: 18px; -} - -.nodeAddress > h5 { - color: var(--gray-500); - font-family: Helvetica; - font-size: 13px; - font-style: normal; - font-weight: 400; - /* line-height: 150%; */ - /* min-width: 55px; */ -} - -.node { - display: flex; - flex-direction: row; - gap: 18px; -} - -.node:hover { - color: #333; - cursor: pointer; -} - -.indexer { - padding-bottom: 55px; - padding-top: 55px; -} - -.indexBlock { - display: flex; - flex-direction: column; - gap: 9px; - padding: 24px 28px; - border-radius: 8px; - border: 1px solid rgba(78, 203, 113, 0.7); - border-top: 10px solid rgba(38, 194, 81, 0.7); - min-width: 240px; - - color: #3d4551; - font-family: Helvetica; - font-size: 16px; - font-style: normal; - font-weight: 400; - line-height: 140%; /* 22.4px */ -} - -.indexBlock h5 { - margin-bottom: 18px; - color: #3d4551; - font-family: Helvetica; - font-size: 18px; - font-style: normal; - font-weight: 700; - line-height: 150%; /* 27px */ -} - -.delayed { - border: 1px solid rgba(234, 89, 47, 0.9); - border-top: 10px solid rgba(234, 89, 47, 0.9); -} - -.provider { - display: flex; - flex-direction: column; - gap: 10px; -} - -.providerRow { - display: flex; - flex-direction: row; - gap: 4px; - font-weight: 500; - color: var(--gray-500); -} - -.providerTitle { - min-width: 100px; - font-weight: 700; -} - -.loaderContainer { - position: absolute; - width: 100%; - height: 100%; - background-color: rgba(51, 51, 51, 0.2); - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - border-radius: 12px; -} - -.loader { - width: 48px; - height: 48px; - border: 2px solid #fff; - border-radius: 50%; - display: inline-block; - position: relative; - box-sizing: border-box; - animation: rotation 1s linear infinite; -} -.loader::after, -.loader::before { - content: ''; - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - background: #ff3d00; - width: 6px; - height: 6px; - transform: translate(150%, 150%); - border-radius: 50%; -} -.loader::before { - left: auto; - top: auto; - right: 0; - bottom: 0; - transform: translate(-150%, -150%); -} - -@keyframes rotation { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -@media screen and (max-width: 700px) { - .root { - flex-direction: column; - } - - .body { - max-width: none; - width: 90vw; - margin: 0 auto; - padding: 20px; - } - - .details { - flex-direction: column; - } - - .columnHTTP { - width: 100%; - } - - .columnP2P { - width: 100%; - border-right: 0; - } -} diff --git a/src/components/Pages/NodeDashboard/index.tsx b/src/components/Pages/NodeDashboard/index.tsx deleted file mode 100644 index ee994003..00000000 --- a/src/components/Pages/NodeDashboard/index.tsx +++ /dev/null @@ -1,161 +0,0 @@ -import React, { useEffect, useState } from 'react' -import cs from 'classnames' -import styles from './index.module.css' -import { truncateString } from '../../../shared/utils/truncateString' -import { useAdminContext } from '@/context/AdminProvider' -import AdminActions from '../../Admin' -import Copy from '../../Copy' -import { NodeDataType } from '@Types/dataTypes' -import SupportedStorage from './SupportedStorage' -import NodePlatform from './NodePlatform' -import { useParams } from 'next/navigation' -import { Data } from '../../Table/data' - -export default function Dashboard() { - const params = useParams() - // const { nodeId } = params - console.log('🚀 ~ Dashboard ~ id:', params?.id) - const [data, setData] = useState() - const [, setLoading] = useState(true) - const [, setIpAddress] = useState('') - const { setAllAdmins, setNetworks } = useAdminContext() - - const filteredNodeData = Data.find((node) => node.nodeId === params?.id) - console.log('🚀 ~ Dashboard ~ getNodeMockData:', filteredNodeData) - - useEffect(() => { - setLoading(true) - try { - const apiUrl = '/directCommand' - fetch(apiUrl, { - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json' - }, - method: 'POST', - body: JSON.stringify({ - command: 'status' - }) - }) - .then((res) => res.json()) - .then((data) => { - setData(data) - setAllAdmins(data.allowedAdmins) - setNetworks(data.indexer) - setLoading(false) - }) - } catch (error) { - setLoading(false) - console.error('error', error) - } - }, []) - - useEffect(() => { - // Fetch the IP address - fetch('https://api.ipify.org?format=json') - .then((res) => res.json()) - .then((data) => { - setIpAddress(data.ip) - }) - .catch((error) => { - console.error('Failed to fetch IP address:', error) - }) - }, []) - - const nodeData = [ - { - id: filteredNodeData?.nodeId, - ip: filteredNodeData?.ipAddress, - indexerData: data?.indexer - } - ] - - const arrayOfPlatformObjects: { key: string; value: string | number }[] = [] - - filteredNodeData && - Object.keys(filteredNodeData?.platform).forEach((key) => { - const obj = { - key, - // @ts-expect-error - error is shown here because the key is used as an index. - value: filteredNodeData?.platform[key] - } - - arrayOfPlatformObjects.push(obj) - }) - - const ConnectionDetails = () => { - return ( -
-
NETWORK
-
-
-
-
- P2P - {filteredNodeData?.nodeDetails.P2P ? 'UP' : 'DOWN'} -
-
-
NODE ID
- {nodeData.map((node) => { - return ( -
-
-
{truncateString(node.id, 12)}
-
- -
- ) - })} -
-
-
Location
-
{filteredNodeData?.location}
-
City
-
{filteredNodeData?.nodeDetails.city}
-
Address
-
- {filteredNodeData?.ipAddress} - -
-
- {/* */} -
-
-
- HTTP - {filteredNodeData?.nodeDetails.Http ? 'UP' : 'DOWN'} -
- {/*
-
-
IP :
-
{filteredNodeData?.ipAddress}
- -
-
*/} -
-
-
-
- ) - } - - return ( -
- - -
- {/* {filteredNodeData ? ( -
- -
- ) : ( */} -
- - {/* */} - - {/* */} - -
- {/* )} */} -
-
- ) -} diff --git a/src/components/Pages/Nodes/index.module.css b/src/components/Pages/Nodes/index.module.css deleted file mode 100644 index 6ce33e05..00000000 --- a/src/components/Pages/Nodes/index.module.css +++ /dev/null @@ -1,56 +0,0 @@ -.root { - display: flex; - flex-direction: column; - align-items: center; - gap: 100px; -} - -.mainContainer { - display: flex; - flex-direction: column; - align-items: center; - gap: 50px; - width: 100%; -} - -.dashboardContainer { - max-width: 1280px; - margin: 0 auto; - width: 100%; -} - -@media (max-width: 768px) { - .root { - gap: 50px; - } -} - -.title { - font-size: 50px; - font-weight: 700; - line-height: 62px; - color: white; - margin-bottom: 16px; -} - -@media (max-width: 768px) { - .title { - font-size: 36px; - line-height: 44px; - } -} - -.description { - font-size: 18px; - font-weight: 400; - line-height: 30px; - color: white; - margin-bottom: 40px; -} - -@media (max-width: 768px) { - .description { - font-size: 16px; - line-height: 24px; - } -} diff --git a/src/components/Pages/Nodes/index.tsx b/src/components/Pages/Nodes/index.tsx deleted file mode 100644 index 5d8478d9..00000000 --- a/src/components/Pages/Nodes/index.tsx +++ /dev/null @@ -1,44 +0,0 @@ -import React from 'react' -import styles from './index.module.css' -import Table from '@/components/Table' -import HeroSection from '@/components/HeroSection/HeroSection' -import { TableTypeEnum } from '@/shared/enums/TableTypeEnum' -import { useNodesContext } from '@/context/NodesContext' -import { NodesDashboard } from '@/components/Dashboard' - -const NodesPage: React.FC = () => { - const { - data, - loading, - currentPage, - pageSize, - totalItems, - setCurrentPage, - setPageSize - } = useNodesContext() - - return ( -
- -
-
- -
-
{ - setCurrentPage(page) - setPageSize(size) - }} - /> - - - ) -} - -export default NodesPage diff --git a/src/components/PeriodSelect/index.tsx b/src/components/PeriodSelect/index.tsx deleted file mode 100644 index 6962a700..00000000 --- a/src/components/PeriodSelect/index.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import React, { useState, useEffect, useMemo } from 'react' -import { - Select, - MenuItem, - FormControl, - Box, - IconButton, - Typography, - CircularProgress -} from '@mui/material' -import 'react-day-picker/dist/style.css' -import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown' -import RestartAltIcon from '@mui/icons-material/RestartAlt' -import { Dayjs } from 'dayjs' -import styles from './styles.module.css' -import { PeriodOption } from '@/services/historyService' -import { useInitializePeriodState } from './useInitializePeriodState' -import { usePeriodSelectionHandlers } from './usePeriodSelectionHandlers' - -export interface DateRange { - startDate: Dayjs | null - endDate: Dayjs | null -} - -interface PeriodSelectProps { - onChange: (range: DateRange) => void - initialRange?: DateRange - availablePeriods: PeriodOption[] - periodsLoading?: boolean - isContextInitialising?: boolean -} - -const PeriodSelect: React.FC = ({ - onChange, - initialRange, - availablePeriods, - periodsLoading = false, - isContextInitialising = false -}) => { - const { selectedPeriod, setSelectedPeriod, setDayPickerRange } = - useInitializePeriodState(initialRange, availablePeriods, onChange) - - const { handlePeriodChange, handleReset } = usePeriodSelectionHandlers( - availablePeriods, - setSelectedPeriod, - setDayPickerRange, - onChange - ) - - const [lastSelectedPeriod, setLastSelectedPeriod] = useState('') - - useEffect(() => { - if (selectedPeriod) { - setLastSelectedPeriod(selectedPeriod) - } - }, [selectedPeriod]) - - const selectValue = selectedPeriod || lastSelectedPeriod - - const formatDateRangeText = useMemo(() => { - const period = availablePeriods.find((p) => p.value === selectValue) - if (period) { - return `Round ${period.weekIdentifier} (${period.startDate.format('MMM D')} - ${period.endDate.format('MMM D, YYYY')})` - } - return 'Select Period' - }, [selectValue, availablePeriods]) - - return ( - - - {isContextInitialising || periodsLoading ? ( - - - - Loading periods... - - - ) : ( - - )} - - - ) -} - -export default PeriodSelect diff --git a/src/components/PeriodSelect/styles.module.css b/src/components/PeriodSelect/styles.module.css deleted file mode 100644 index 5fb00dbb..00000000 --- a/src/components/PeriodSelect/styles.module.css +++ /dev/null @@ -1,475 +0,0 @@ -.container { - position: relative; - display: flex; - flex-direction: column; - align-items: flex-end; - width: fit-content; -} - -.container :global(.MuiFormControl-root) { - width: 100% !important; -} - -.container :global(.MuiBox-root) { - width: 100% !important; -} - -.selectWrapper { - position: relative; - display: flex; - align-items: center; - width: 100%; -} - -.select { - width: 100%; - min-width: 200px; - height: 48px; - font-family: 'Sharp Sans', sans-serif; - font-size: 16px; - line-height: 20px; - font-weight: 500; - color: white; - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); - border-radius: 20px; - padding: 8px 16px; - padding-right: 48px; - cursor: pointer; - display: flex; - align-items: center; - position: relative; -} - -.select :global(.MuiSelect-select) { - color: white !important; -} - -.dateText { - font-family: 'Sharp Sans', sans-serif !important; - font-size: 16px !important; - line-height: 20px !important; - font-weight: 500 !important; - color: white !important; - flex: 1; -} - -.iconWrapper { - position: absolute; - left: 90%; - top: 50%; - transform: translateY(-50%); - pointer-events: none; - display: flex; - align-items: center; -} - -.selectIcon { - color: white !important; - font-size: 24px !important; - transition: transform 0.2s ease; -} - -.select[aria-expanded="true"] ~ .iconWrapper .selectIcon { - transform: rotate(180deg); -} - -.resetButton { - position: absolute !important; - right: 40px !important; - color: white !important; - padding: 4px !important; -} - -.resetButton:hover { - background-color: rgba(255, 255, 255, 0.1) !important; -} - -.select :global(.MuiOutlinedInput-notchedOutline) { - border: none !important; -} - -.select:hover { - cursor: pointer; -} - -.select :global(.MuiSelect-icon) { - display: none; -} - -.select :global(.MuiInput-underline)::before { - border-bottom: none !important; -} - -.select :global(.MuiInput-underline)::after { - border-bottom: none !important; -} - -.select:global(.MuiInputBase-root.MuiInput-root.MuiInput-underline), -.select:global(.MuiInputBase-root.MuiInput-root.MuiInput-underline)::before, -.select:global(.MuiInputBase-root.MuiInput-root.MuiInput-underline)::after, -.select:global(.MuiInputBase-root.MuiInput-root.MuiInput-underline.MuiInputBase-colorPrimary.MuiInputBase-formControl), -.select:global(.MuiInputBase-root.MuiInput-root.MuiInput-underline.MuiInputBase-colorPrimary.MuiInputBase-formControl)::before, -.select:global(.MuiInputBase-root.MuiInput-root.MuiInput-underline.MuiInputBase-colorPrimary.MuiInputBase-formControl)::after { - border-bottom: none !important; - border: none !important; - box-shadow: none !important; -} - -.menuPaper { - margin-top: 8px; - background: #0E001A; - border-radius: 12px; - box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.1); -} - -.menuItem { - font-family: 'Sharp Sans', sans-serif; - font-size: 14px; - line-height: 18px; - font-weight: 500; - padding: 12px 16px; - color: white; -} - -.menuItem:hover { - background-color: rgba(207, 31, 177, 0.1) !important; -} - -.menuItem.Mui-selected { - background-color: rgba(207, 31, 177, 0.2) !important; -} - -.datePickerContainer { - position: absolute; - top: calc(100% + 8px); - right: 0; - z-index: 1000; - background: rgba(14, 0, 26, 0.5); - backdrop-filter: blur(20px); - -webkit-backdrop-filter: blur(20px); - border-radius: 12px; - padding: 16px; - box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.1); -} - -.datePickerContainer :global(.MuiPickersLayout-root) { - background: transparent; - color: white; -} - -.datePickerContainer :global(.MuiPickersCalendarHeader-root) { - color: white; -} - -.datePickerContainer :global(.MuiPickersDay-root) { - color: white; -} - -.datePickerContainer :global(.MuiPickersDay-root.Mui-selected) { - background-color: #CF1FB1; -} - -.datePickerContainer :global(.MuiPickersDay-root:hover) { - background-color: rgba(207, 31, 177, 0.2); -} - -.datePickerContainer :global(.MuiDayCalendar-weekDayLabel) { - color: rgba(255, 255, 255, 0.7); -} - -.datePickerContainer :global(.MuiPickersLayout-root), -.datePickerContainer :global(.MuiPickersLayout-contentWrapper) { - background: transparent !important; -} - -.datePickerContainer :global(.MuiTextField-root) { - background: transparent !important; -} - -.datePickerContainer :global(.MuiOutlinedInput-root) { - background: transparent !important; -} - -.customDateContainer { - min-width: 200px; - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); - border-radius: 20px; - padding: 8px 16px; - padding-right: 48px; - position: relative; - display: flex; - align-items: center; -} - -.datePickersContainer { - display: flex; - gap: 8px; - width: 100%; -} - -.inlineDatePicker { - flex: 1; -} - -.inlineDatePicker :global(.MuiInputBase-root) { - height: 32px; - font-family: 'Sharp Sans', sans-serif !important; - font-size: 16px !important; - line-height: 20px !important; - font-weight: 500 !important; - padding: 0; -} - -.inlineDatePicker :global(.MuiOutlinedInput-notchedOutline) { - border: none !important; -} - -.datePickerPopover { - background: linear-gradient(135deg, rgba(14, 0, 26, 0.95) 0%, rgba(14, 0, 26, 0.85) 100%); - backdrop-filter: blur(20px); - border: 1px solid rgba(255, 255, 255, 0.1); - border-radius: 24px; - margin-top: 8px; - overflow: hidden; - box-shadow: - 0 4px 24px rgba(0, 0, 0, 0.4), - inset 0 0 40px rgba(207, 31, 177, 0.1); -} - -.dayPicker { - background: transparent; - color: white; - padding: 24px; - font-family: 'Sharp Sans', sans-serif; -} - -/* Month header styling */ -.dayPicker :global(.rdp-caption) { - position: relative; - padding: 8px 0; - margin-bottom: 16px; -} - -.dayPicker :global(.rdp-caption_label) { - font-size: 24px; - font-weight: 500; - color: white; - margin: 0; - padding: 8px 0; - text-align: left; -} - -/* Navigation buttons */ -.dayPicker :global(.rdp-nav) { - position: absolute; - right: 0; - transform: translateY(-50%); - display: flex; - gap: 8px; -} - -.dayPicker :global(.rdp-nav > button > svg) { - fill: #CF1FB1; -} - -.dayPicker :global(.rdp-nav_button) { - width: 32px; - height: 32px; - padding: 0; - border-radius: 50%; - background: rgba(255, 255, 255, 0.1); - color: white; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s ease; -} - -.dayPicker :global(.rdp-nav_button:disabled) { - opacity: 0.5; -} - -.dayPicker :global(.rdp-nav_button:hover) { - background: rgba(255, 255, 255, 0.2); -} - -.dayPicker :global(.rdp-nav_button svg) { - width: 24px; - height: 24px; - fill: white; -} - -/* Week day headers */ -.dayPicker :global(.rdp-head_cell) { - font-weight: 500; - font-size: 14px; - color: rgba(255, 255, 255, 0.6); - padding: 8px 0; -} - -/* Calendar days */ -.dayPicker :global(.rdp-button) { - width: 40px; - height: 40px; - font-size: 14px; - color: white; - transition: all 0.2s ease; - position: relative; - z-index: 1; -} - -.dayPicker :global(.rdp-day_today:not(.rdp-day_selected)) { - background: rgba(255, 255, 255, 0.1); - font-weight: bold; -} - -.dayPicker :global(.rdp-button:hover:not([disabled])) { - background: rgba(207, 31, 177, 0.2); -} - -/* Range selection wrapper */ -.dayPicker :global(.rdp-row) { - position: relative; -} - -/* Range selection background */ -.dayPicker :global(.rdp-row:has(.rdp-day_range_start)), -.dayPicker :global(.rdp-row:has(.rdp-day_range_middle)), -.dayPicker :global(.rdp-row:has(.rdp-day_range_end)) { - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); - border-radius: 0; -} - -/* First row with selection */ -.dayPicker :global(.rdp-row:has(.rdp-day_range_start)) { - border-top-left-radius: 20px; - border-bottom-left-radius: 20px; -} - -/* Last row with selection */ -.dayPicker :global(.rdp-row:has(.rdp-day_range_end)) { - border-top-right-radius: 20px; - border-bottom-right-radius: 20px; -} - -/* Selected days */ -.dayPicker :global(.rdp-day_selected), -.dayPicker :global(.rdp-day_range_start), -.dayPicker :global(.rdp-day_range_middle), -.dayPicker :global(.rdp-day_range_end) { - color: white; - font-weight: bold; - background: transparent !important; -} - -/* Single day selection */ -.dayPicker :global(.rdp-day_selected:not(.rdp-day_range_start):not(.rdp-day_range_middle):not(.rdp-day_range_end)) { - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%) !important; - border-radius: 50%; -} - -/* Disabled days */ -.dayPicker :global(.rdp-button[disabled]) { - opacity: 0.3; -} - -/* Table layout */ -.dayPicker :global(.rdp-table) { - margin: 0; - border-spacing: 0; -} - -/* Selected range container */ -.dayPicker :global(.rdp-day_range_start), -.dayPicker :global(.rdp-day_range_end), -.dayPicker :global(.rdp-day_range_middle) { - position: relative; - background: transparent !important; - color: white; - font-weight: bold; -} - -/* Continuous gradient background */ -.dayPicker :global(.rdp-day_range_start)::before, -.dayPicker :global(.rdp-day_range_end)::before, -.dayPicker :global(.rdp-day_range_middle)::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); - z-index: -1; -} - -/* Range start specific styles */ -.dayPicker :global(.rdp-day_range_start)::before { - border-top-left-radius: 50%; - border-bottom-left-radius: 50%; -} - -/* Range end specific styles */ -.dayPicker :global(.rdp-day_range_end)::before { - border-top-right-radius: 50%; - border-bottom-right-radius: 50%; -} - -/* Single selected day */ -.dayPicker :global(.rdp-day_selected:not(.rdp-day_range_start):not(.rdp-day_range_end):not(.rdp-day_range_middle)) { - position: relative; - background: transparent !important; -} - -.dayPicker :global(.rdp-day_selected:not(.rdp-day_range_start):not(.rdp-day_range_end):not(.rdp-day_range_middle))::before { - content: ''; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); - border-radius: 50%; - z-index: -1; -} - -/* Ensure text remains visible */ -.dayPicker :global(.rdp-button) { - position: relative; - z-index: 1; -} -/* -.dayPicker :global(.rdp-today:not(.rdp-outside)) { - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); -} */ - -.dayPicker :global(.rdp-range_start) { - border-radius: 0; - background: linear-gradient(var(--rdp-gradient-direction), transparent 50%, #CF1FB190 50%); -} - -.dayPicker :global(.rdp-range_end) { - border-radius: 0; - background: linear-gradient(var(--rdp-gradient-direction), #CF1FB190 50%, transparent 50%); -} - -.dayPicker :global(.rdp-range_middle) { - border-radius: 0; - background: #CF1FB190!important; -} - -.dayPicker :global(.rdp-range_start .rdp-day_button) { - border: 0; - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); -} - -.dayPicker :global(.rdp-range_end .rdp-day_button) { - border: 0; - background: linear-gradient(135deg, #0E001A 0%, #CF1FB1 100%); -} - -.dayPicker :global(.rdp-today:not(.rdp-outside)) { - color: #CF1FB1; - font-weight: 800; -} - diff --git a/src/components/PeriodSelect/useInitializePeriodState.ts b/src/components/PeriodSelect/useInitializePeriodState.ts deleted file mode 100644 index 76d83d10..00000000 --- a/src/components/PeriodSelect/useInitializePeriodState.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { useState, useEffect } from 'react' -import { DateRange as DayPickerRange } from 'react-day-picker' -import { PeriodOption } from '@/services/historyService' -import { DateRange } from './index' - -export const useInitializePeriodState = ( - initialRange?: DateRange, - availablePeriods: PeriodOption[] = [], - onChange?: (range: DateRange) => void -) => { - const [selectedPeriod, setSelectedPeriod] = useState(() => { - if (initialRange?.startDate && availablePeriods.length > 0) { - const matchingPeriod = availablePeriods.find((p) => - p.startDate.isSame(initialRange.startDate, 'day') - ) - if (matchingPeriod) { - return matchingPeriod.value - } - } - return availablePeriods.length > 0 ? availablePeriods[0].value : '' - }) - - const [dayPickerRange, setDayPickerRange] = useState(() => { - if (initialRange?.startDate && initialRange.endDate) { - return { from: initialRange.startDate.toDate(), to: initialRange.endDate.toDate() } - } - if ( - availablePeriods.length > 0 && - availablePeriods[0].startDate && - availablePeriods[0].endDate - ) { - return { - from: availablePeriods[0].startDate.toDate(), - to: availablePeriods[0].endDate.toDate() - } - } - return undefined - }) - - useEffect(() => { - if (availablePeriods.length > 0 && onChange) { - let activePeriodValue = '' - let activeDayPickerRange: DayPickerRange | undefined = undefined - let activeDateRange: DateRange | null = null - - if (initialRange?.startDate && initialRange.endDate) { - const matchingPeriod = availablePeriods.find((p) => - p.startDate.isSame(initialRange.startDate, 'day') - ) - - if (matchingPeriod) { - activePeriodValue = matchingPeriod.value - activeDayPickerRange = { - from: matchingPeriod.startDate.toDate(), - to: matchingPeriod.endDate.toDate() - } - } else { - const firstPeriod = availablePeriods[0] - activePeriodValue = firstPeriod.value - activeDayPickerRange = { - from: firstPeriod.startDate.toDate(), - to: firstPeriod.endDate.toDate() - } - activeDateRange = { - startDate: firstPeriod.startDate, - endDate: firstPeriod.endDate - } - } - } else { - const firstPeriod = availablePeriods[0] - activePeriodValue = firstPeriod.value - activeDayPickerRange = { - from: firstPeriod.startDate.toDate(), - to: firstPeriod.endDate.toDate() - } - activeDateRange = { - startDate: firstPeriod.startDate, - endDate: firstPeriod.endDate - } - } - - setSelectedPeriod(activePeriodValue) - setDayPickerRange(activeDayPickerRange) - if (activeDateRange) { - onChange(activeDateRange) - } - } - }, [ - initialRange?.startDate?.valueOf(), - initialRange?.endDate?.valueOf(), - availablePeriods, - onChange - ]) - - return { - selectedPeriod, - setSelectedPeriod, - dayPickerRange, - setDayPickerRange - } -} diff --git a/src/components/PeriodSelect/usePeriodSelectionHandlers.ts b/src/components/PeriodSelect/usePeriodSelectionHandlers.ts deleted file mode 100644 index 35724820..00000000 --- a/src/components/PeriodSelect/usePeriodSelectionHandlers.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { PeriodOption } from '@/services/historyService' -import { DateRange } from './index' -import { DateRange as DayPickerRange } from 'react-day-picker' - -type SetSelectedPeriodType = (value: string) => void -type SetDayPickerRangeType = (range: DayPickerRange | undefined) => void -type OnChangeType = (range: DateRange) => void - -export const usePeriodSelectionHandlers = ( - availablePeriods: PeriodOption[], - setSelectedPeriod: SetSelectedPeriodType, - setDayPickerRange: SetDayPickerRangeType, - onChange: OnChangeType -) => { - const handlePeriodChange = (event: any) => { - const value = event.target.value as string - console.log(`[PeriodSelect] Period changed to: ${value}`) - setSelectedPeriod(value) - - const selectedHistoricalPeriod = availablePeriods.find((p) => p.value === value) - if (selectedHistoricalPeriod) { - setDayPickerRange({ - from: selectedHistoricalPeriod.startDate.toDate(), - to: selectedHistoricalPeriod.endDate.toDate() - }) - onChange({ - startDate: selectedHistoricalPeriod.startDate, - endDate: selectedHistoricalPeriod.endDate - }) - } - } - - const handleReset = () => { - if (availablePeriods.length > 0) { - const firstPeriod = availablePeriods[0] - setSelectedPeriod(firstPeriod.value) - setDayPickerRange({ - from: firstPeriod.startDate.toDate(), - to: firstPeriod.endDate.toDate() - }) - onChange({ startDate: firstPeriod.startDate, endDate: firstPeriod.endDate }) - } - } - - return { handlePeriodChange, handleReset } -} diff --git a/src/components/PieChart/PieChart.tsx b/src/components/PieChart/PieChart.tsx deleted file mode 100644 index da354bb5..00000000 --- a/src/components/PieChart/PieChart.tsx +++ /dev/null @@ -1,184 +0,0 @@ -import React, { useState, useMemo } from 'react' -import { PieChart, Pie, Cell, ResponsiveContainer, Sector, Tooltip } from 'recharts' -import styles from './PieChartCard.module.css' - -interface PieChartCardProps { - data: { - name: string - value: number - color: string - details?: string[] - }[] - title: string -} - -const PieChartCard: React.FC = ({ data, title }) => { - const [activeIndex, setActiveIndex] = useState(undefined) - const [lockedIndex, setLockedIndex] = useState(undefined) - const [hoverText, setHoverText] = useState('Hover to see details') - - const totalValue = useMemo( - () => data.reduce((sum, entry) => sum + entry.value, 0), - [data] - ) - - const onPieEnter = (_: any, index: number) => { - if (lockedIndex === undefined) { - setActiveIndex(index) - const percentage = ((data[index].value / totalValue) * 100).toFixed(2) - setHoverText(`${data[index].name}: ${percentage}%`) - } - } - - const onPieLeave = () => { - if (lockedIndex === undefined) { - setActiveIndex(undefined) - setHoverText('Hover to see details') - } - } - - const onPieClick = (_: any, index: number) => { - if (lockedIndex === index) { - setLockedIndex(undefined) - setActiveIndex(undefined) - setHoverText('Hover to see details') - } else { - setLockedIndex(index) - setActiveIndex(index) - const percentage = ((data[index].value / totalValue) * 100).toFixed(2) - setHoverText(`${data[index].name}: ${percentage}%`) - } - } - - const renderActiveShape = (props: any) => { - const { cx, cy, innerRadius, outerRadius, startAngle, endAngle, fill } = props - return ( - - - - - - - - - - - - - ) - } - - const CustomTooltip = ({ active, payload }: any) => { - const isActive = active || lockedIndex !== undefined - let item - if (lockedIndex !== undefined) { - item = data[lockedIndex] - } else if (payload && payload.length > 0) { - item = payload[0].payload - } - if (isActive && item) { - const percentage = ((item.value / totalValue) * 100).toFixed(1) - return ( -
-

{item.name}

-

- Total: {item.value} nodes ({percentage}%) -

- {item.details && ( -
- {Array.isArray(item.details) && - item.details.map((detail: string, index: number) => ( -
-

{detail}

-
- ))} -
- )} -
- ) - } - return null - } - - return ( -
-

{title}

- - - - {data.map((entry, index) => ( - - ))} - - } - position={{ y: 250 }} - wrapperStyle={{ - transition: 'opacity 0.3s ease-in-out', - opacity: activeIndex !== undefined || lockedIndex !== undefined ? 1 : 0, - zIndex: 1000 - }} - /> - - -
{hoverText}
-
- ) -} - -export default PieChartCard diff --git a/src/components/Spinner/index.tsx b/src/components/Spinner/index.tsx deleted file mode 100644 index 0ed78626..00000000 --- a/src/components/Spinner/index.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react' - -import styles from './style.module.css' - -export default function Spinner() { - return -} diff --git a/src/components/Spinner/style.module.css b/src/components/Spinner/style.module.css deleted file mode 100644 index c2d20073..00000000 --- a/src/components/Spinner/style.module.css +++ /dev/null @@ -1,41 +0,0 @@ -.loader { - width: 48px; - height: 48px; - border: 2px solid #FFF; - border-radius: 50%; - display: inline-block; - position: relative; - box-sizing: border-box; - animation: rotation 1s linear infinite; -} - -.loader::after, -.loader::before { - content: ''; - box-sizing: border-box; - position: absolute; - left: 0; - top: 0; - background: #FF3D00; - width: 6px; - height: 6px; - transform: translate(150%, 150%); - border-radius: 50%; -} - -.loader::before { - left: auto; - top: auto; - right: 0; - bottom: 0; - transform: translate(-150%, -150%); -} - -@keyframes rotation { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} diff --git a/src/components/Table/NodeDetails.tsx b/src/components/Table/NodeDetails.tsx deleted file mode 100644 index 2898d4a9..00000000 --- a/src/components/Table/NodeDetails.tsx +++ /dev/null @@ -1,200 +0,0 @@ -import { FC } from 'react'; -import { Card, CardContent, Grid, IconButton, Typography, Box } from '@mui/material'; -import CloseIcon from '@mui/icons-material/Close'; -import { NodeData } from '../../shared/types/RowDataType'; -import { formatPlatform, formatSupportedStorage, formatUptime } from './utils' - -interface NodeDetailsProps { - nodeData: NodeData; - onClose: () => void; -} - -const NodeDetails: FC = ({ nodeData, onClose }) => { - return ( - - - - - - Node Details - - - - - - - - - Node ID: {nodeData.id} - - - - - Address: {nodeData.address} - - - - - Network:{' '} - {nodeData.indexer?.map((idx) => idx.network).join(', ')} - - - - - DNS / IP: {nodeData.ipAndDns?.dns || ''} /{' '} - {nodeData.ipAndDns?.ip || ''} - - - - - Port: {nodeData.ipAndDns?.port || ''} - - - - - Location:{' '} - {`${nodeData.location?.city || ''} ${nodeData.location?.country || ''}`} - - - - - Eligible Week Uptime: {formatUptime(nodeData.uptime)} - - - - - Supported Storage:{' '} - {formatSupportedStorage(nodeData.supportedStorage)} - - - - - Platform: {formatPlatform(nodeData.platform)} - - - - - Public Key: {nodeData.publicKey} - - - - - Version: {nodeData.version} - - - - - Code Hash: {nodeData.codeHash} - - - - - Allowed Admins: {nodeData.allowedAdmins?.join(', ')} - - - - - Last Check:{' '} - {new Date(nodeData.lastCheck)?.toLocaleString(undefined, { - timeZoneName: 'short' - })} - - - - - Last Round Eligibility Check:{' '} - {nodeData?.eligible?.toLocaleString()} - - - - - Eligiblity Issue:{' '} - {nodeData.eligibilityCauseStr?.toLocaleString()} - - - - - - - ) -}; - -export default NodeDetails; diff --git a/src/components/Table/_styles.ts b/src/components/Table/_styles.ts deleted file mode 100644 index c8e2984e..00000000 --- a/src/components/Table/_styles.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { createTheme, TableStyles, Theme } from 'react-data-table-component' - -// https://github.com/jbetancur/react-data-table-component/blob/master/src/DataTable/themes.ts -const theme: Partial = { - text: { - primary: 'var(-gray-gray-500)', - secondary: 'var(--color-secondary)', - disabled: 'var(--color-secondary)' - }, - background: { - default: '#fff' - }, - divider: { - default: 'var(--border-color)' - } -} - -createTheme('custom', theme) - -// https://github.com/jbetancur/react-data-table-component/blob/master/src/DataTable/styles.ts -export const customStyles: TableStyles = { - table: { - style: { - backgroundColor: 'white', - borderRadius: '16px', - overflow: 'hidden' - } - }, - head: { - style: { - backgroundColor: '#f8f9fa', - color: '#6c757d', - fontWeight: '500', - textTransform: 'uppercase', - fontSize: '12px' - } - }, - headCells: { - style: { - borderBottom: '1px solid #e9ecef', - padding: '32px 87px' - } - }, - rows: { - style: { - fontSize: '14px', - color: '#212529', - fontFamily: "'Sharp Sans', sans-serif", - fontWeight: 400, - lineHeight: '21px', - '&:not(:last-of-type)': { - borderBottom: '1px solid #e9ecef' - } - } - }, - cells: { - style: { - padding: '32px 87px', - textAlign: 'left' - } - } -} diff --git a/src/components/Table/columns.tsx b/src/components/Table/columns.tsx deleted file mode 100644 index 638da69e..00000000 --- a/src/components/Table/columns.tsx +++ /dev/null @@ -1,753 +0,0 @@ -import { GridColDef, GridFilterInputValue, GridRenderCellParams } from '@mui/x-data-grid' -import { Button, Tooltip } from '@mui/material' -import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline' -import ReportIcon from '@mui/icons-material/Report' -import { NodeData } from '@/shared/types/RowDataType' -import { formatSupportedStorage, formatPlatform, formatUptimePercentage } from './utils' -import styles from './index.module.css' -import Link from 'next/link' -import HistoryIcon from '@mui/icons-material/History' -import InfoIcon from '@mui/icons-material/Info' - -const getEligibleCheckbox = (eligible: boolean): React.ReactElement => { - return eligible ? ( - - ) : ( - - ) -} - -const UptimeCell: React.FC<{ - uptimeInSeconds: number - totalUptime: number | null -}> = ({ uptimeInSeconds, totalUptime }) => { - if (totalUptime === null) { - return Loading... - } - - return {formatUptimePercentage(uptimeInSeconds, totalUptime)} -} - -export const nodeColumns = ( - totalUptime: number | null, - setSelectedNode: (node: NodeData) => void -): GridColDef[] => [ - { - field: 'index', - headerName: 'Index', - width: 70, - align: 'center', - headerAlign: 'center', - sortable: false, - filterable: false - }, - { - field: 'id', - headerName: 'Node ID', - flex: 1, - minWidth: 300, - sortable: false, - filterable: true, - filterOperators: [ - { - label: 'contains', - value: 'contains', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - return params.value?.toLowerCase().includes(filterItem.value.toLowerCase()) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'text' } - } - ] - }, - { - field: 'uptime', - headerName: 'Weekly Uptime', - sortable: true, - flex: 1, - minWidth: 150, - filterable: true, - headerClassName: styles.headerTitle, - filterOperators: [ - { - label: 'equals', - value: 'eq', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - const filterValue = Number(filterItem.value) / 100 - const uptimePercentage = params.value / params.row.totalUptime - return Math.abs(uptimePercentage - filterValue) <= 0.001 - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { - type: 'number', - step: '0.01', - min: '0', - max: '100', - placeholder: 'Enter percentage (0-100)', - error: !totalUptime, - helperText: !totalUptime ? 'Loading uptime data...' : undefined - } - }, - { - label: 'greater than', - value: 'gt', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - const filterValue = Number(filterItem.value) / 100 - const uptimePercentage = params.value / params.row.totalUptime - return uptimePercentage > filterValue - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { - type: 'number', - step: '0.01', - min: '0', - max: '100', - placeholder: 'Enter percentage (0-100)', - error: !totalUptime, - helperText: !totalUptime ? 'Loading uptime data...' : undefined - } - }, - { - label: 'less than', - value: 'lt', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - const filterValue = Number(filterItem.value) / 100 - const uptimePercentage = params.value / params.row.totalUptime - return uptimePercentage < filterValue - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { - type: 'number', - step: '0.01', - min: '0', - max: '100', - placeholder: 'Enter percentage (0-100)', - error: !totalUptime, - helperText: !totalUptime ? 'Loading uptime data...' : undefined - } - } - ], - renderCell: (params: GridRenderCellParams) => ( - - ), - renderHeader: () => ( - - Weekly Uptime - - ) - }, - { - field: 'dns', - headerName: 'DNS / IP', - flex: 1, - minWidth: 200, - sortable: false, - filterable: false, - renderCell: (params: GridRenderCellParams) => ( - - {(params.row.ipAndDns?.dns || params.row.ipAndDns?.ip || '') + - (params.row.ipAndDns?.port ? ':' + params.row.ipAndDns?.port : '')} - - ) - }, - { - field: 'dnsFilter', - headerName: 'DNS / IP', - flex: 1, - minWidth: 200, - sortable: false, - filterable: true, - hideable: false, - filterOperators: [ - { - label: 'contains', - value: 'contains', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - const dnsIpString = - (params.row.ipAndDns?.dns || params.row.ipAndDns?.ip || '') + - (params.row.ipAndDns?.port ? ':' + params.row.ipAndDns?.port : '') - return dnsIpString.includes(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'text' } - } - ] - }, - { - field: 'location', - headerName: 'Location', - flex: 1, - minWidth: 200, - sortable: false, - filterable: false, - renderCell: (params: GridRenderCellParams) => ( - - {`${params.row.location?.city || ''} ${params.row.location?.country || ''}`} - - ) - }, - { - field: 'city', - headerName: 'City', - flex: 1, - minWidth: 200, - sortable: false, - filterable: true, - hideable: false, - filterOperators: [ - { - label: 'contains', - value: 'contains', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - return (params.row.location?.city || '') - .toLowerCase() - .includes(filterItem.value.toLowerCase()) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'text' } - } - ] - }, - { - field: 'country', - headerName: 'Country', - flex: 1, - minWidth: 200, - sortable: false, - filterable: true, - hideable: false, - filterOperators: [ - { - label: 'contains', - value: 'contains', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - return (params.row.location?.country || '') - .toLowerCase() - .includes(filterItem.value.toLowerCase()) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'text' } - } - ] - }, - { - field: 'address', - headerName: 'Address', - flex: 1, - minWidth: 150, - sortable: false, - filterable: false - }, - { - field: 'eligible', - headerName: 'Last Check Eligibility', - flex: 1, - width: 80, - filterable: false, - sortable: true, - renderHeader: () => ( - - Last Check Eligibility - - ), - filterOperators: [ - { - label: 'equals', - value: 'eq', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - return params.value === (filterItem.value === 'true') - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { - type: 'singleSelect', - valueOptions: [ - { value: 'true', label: 'Eligible' }, - { value: 'false', label: 'Not Eligible' } - ] - } - } - ], - renderCell: (params: GridRenderCellParams) => ( -
- {getEligibleCheckbox(params.row.eligible)} -
- ) - }, - { - field: 'eligibilityCauseStr', - headerName: 'Eligibility Issue', - flex: 1, - width: 100, - sortable: false, - filterable: false, - renderCell: (params: GridRenderCellParams) => ( - {params.row.eligibilityCauseStr || 'none'} - ) - }, - { - field: 'lastCheck', - headerName: 'Last Check', - flex: 1, - minWidth: 140, - filterable: true, - renderCell: (params: GridRenderCellParams) => ( - - {new Date(params?.row?.lastCheck)?.toLocaleString(undefined, { - timeZoneName: 'short' - })} - - ), - filterOperators: [ - { - label: 'equals', - value: 'eq', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - const filterDate = new Date(filterItem.value).getTime() - const cellDate = new Date(params.value).getTime() - return cellDate === filterDate - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'datetime-local' } - }, - { - label: 'after', - value: 'gt', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - const filterDate = new Date(filterItem.value).getTime() - const cellDate = new Date(params.value).getTime() - return cellDate > filterDate - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'datetime-local' } - }, - { - label: 'before', - value: 'lt', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - const filterDate = new Date(filterItem.value).getTime() - const cellDate = new Date(params.value).getTime() - return cellDate < filterDate - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'datetime-local' } - } - ] - }, - { - field: 'network', - headerName: 'Network', - flex: 1, - minWidth: 200, - sortable: false, - filterable: false, - renderCell: (params: GridRenderCellParams) => { - const networks = params.row.provider?.map((p) => p.network).join(', ') || '' - return {networks} - } - }, - { - field: 'actions', - headerName: 'Actions', - sortable: false, - width: 130, - align: 'center', - headerAlign: 'center', - renderCell: (params: GridRenderCellParams) => { - const node = params.row - return ( -
- - - - - - - - - -
- ) - }, - cellClassName: styles.actionCell - }, - { - field: 'publicKey', - headerName: 'Public Key', - flex: 1, - sortable: false, - minWidth: 200, - filterable: false - }, - { - field: 'version', - headerName: 'Version', - flex: 1, - minWidth: 100, - sortable: false, - filterable: false - }, - { - field: 'http', - headerName: 'HTTP Enabled', - flex: 1, - minWidth: 100, - sortable: false, - filterable: false - }, - { - field: 'p2p', - headerName: 'P2P Enabled', - flex: 1, - minWidth: 100, - sortable: false, - filterable: false - }, - { - field: 'supportedStorage', - headerName: 'Supported Storage', - flex: 1, - minWidth: 200, - sortable: false, - filterable: false, - renderCell: (params: GridRenderCellParams) => ( - {formatSupportedStorage(params.row.supportedStorage)} - ) - }, - { - field: 'platform', - headerName: 'Platform', - flex: 1, - minWidth: 200, - sortable: false, - filterable: false, - renderCell: (params: GridRenderCellParams) => ( - {formatPlatform(params.row.platform)} - ) - }, - { - field: 'codeHash', - headerName: 'Code Hash', - flex: 1, - minWidth: 200, - sortable: false, - filterable: false - }, - { - field: 'allowedAdmins', - headerName: 'Allowed Admins', - flex: 1, - minWidth: 200, - sortable: false, - filterable: false - } -] - -export const countryColumns: GridColDef[] = [ - { - field: 'index', - headerName: 'Index', - width: 70, - align: 'center', - headerAlign: 'center', - sortable: false, - filterable: false - }, - { - field: 'country', - headerName: 'Country', - flex: 1, - minWidth: 200, - align: 'left', - headerAlign: 'left', - sortable: true, - filterable: true, - filterOperators: [ - { - label: 'contains', - value: 'contains', - getApplyFilterFn: (filterItem) => { - return (params) => { - if (!filterItem.value) return true - return params.value?.toLowerCase().includes(filterItem.value.toLowerCase()) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'text' } - }, - { - label: 'equals', - value: 'eq', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value === filterItem.value - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'text' } - } - ] - }, - { - field: 'totalNodes', - headerName: 'Total Nodes', - flex: 1, - minWidth: 150, - type: 'number', - align: 'left', - headerAlign: 'left', - sortable: true, - filterable: true, - filterOperators: [ - { - label: 'equals', - value: 'eq', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value === Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - }, - { - label: 'greater than', - value: 'gt', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value > Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - }, - { - label: 'less than', - value: 'lt', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value < Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - } - ] - }, - { - field: 'citiesWithNodes', - headerName: 'Cities with Nodes', - flex: 1, - minWidth: 200, - type: 'number', - align: 'left', - headerAlign: 'left', - sortable: true, - filterable: true, - filterOperators: [ - { - label: 'equals', - value: 'eq', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value === Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - }, - { - label: 'greater than', - value: 'gt', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value > Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - }, - { - label: 'less than', - value: 'lt', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value < Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - } - ] - }, - { - field: 'cityWithMostNodes', - headerName: 'City with Most Nodes', - flex: 1, - minWidth: 200, - align: 'left', - headerAlign: 'left', - sortable: true, - filterable: true, - valueGetter: (params: { row: any }) => { - return params.row?.cityWithMostNodesCount || 0 - }, - filterOperators: [ - { - label: 'equals', - value: 'eq', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value === Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - }, - { - label: 'greater than', - value: 'gt', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value > Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - }, - { - label: 'less than', - value: 'lt', - getApplyFilterFn: (filterItem) => { - return (params) => { - return params.value < Number(filterItem.value) - } - }, - InputComponent: GridFilterInputValue, - InputComponentProps: { type: 'number' } - } - ], - renderCell: (params: GridRenderCellParams) => ( - - {params.row.cityWithMostNodes} ({params.row.cityWithMostNodesCount} nodes) - - ) - } -] - -export const historyColumns: GridColDef[] = [ - { - field: 'round', - headerName: 'Round no.', - flex: 0.5, - minWidth: 100, - align: 'left', - headerAlign: 'left', - renderCell: (params: GridRenderCellParams) => { - return params?.row?.round ?? '-' - } - }, - { - field: 'timestamp', - headerName: 'Timestamp', - flex: 1, - minWidth: 180, - align: 'left', - headerAlign: 'left', - renderCell: (params: GridRenderCellParams) => { - if (params.value == null) { - return '-' - } - try { - const date = new Date(params.value) - const hours = String(date.getUTCHours()).padStart(2, '0') - const minutes = String(date.getUTCMinutes()).padStart(2, '0') - const seconds = String(date.getUTCSeconds()).padStart(2, '0') - return `${hours}:${minutes}:${seconds} UTC` - } catch (e) { - console.error('Error formatting timestamp:', e) - return 'Invalid Date' - } - } - }, - { - field: 'errorCause', - headerName: 'Reason for Issue', - flex: 1, - minWidth: 200, - align: 'left', - headerAlign: 'left', - renderCell: (params: GridRenderCellParams) => { - return params?.row?.errorCause || '-' - } - }, - { - field: 'derivedStatus', - headerName: 'Status', - flex: 0.5, - minWidth: 120, - align: 'left', - headerAlign: 'left', - sortable: false, - renderCell: (params: GridRenderCellParams) => { - const hasError = !!params?.row?.errorCause - const statusText = hasError ? 'Failed' : 'Success' - const color = hasError ? '#FF4444' : '#4CAF50' - - return ( -
-
- {statusText} -
- ) - } - } -] diff --git a/src/components/Table/data.ts b/src/components/Table/data.ts deleted file mode 100644 index 6b1e975d..00000000 --- a/src/components/Table/data.ts +++ /dev/null @@ -1,604 +0,0 @@ -const Data = [ - { - nodeId: 'R4Ht8DfKxX1LNZ3Y', - network: 'Ethereum', - ipAddress: '192.168.1.5', - location: 'France', - blockNumber: '601529', - coordinates: [48.8566, 2.3522], - uptime: '89%', - nodeDetails: { - port: 30306, - last_seen: 'a few moments ago', - enode: 'enode://qrst...7890', - client_type: 'Geth', - client_version: 'v1.9.25', - os: 'linux-x64', - country: 'France', - city: 'Paris', - P2P: true, - Http: false - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: false - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'V8Jfh6RaXmH9LPK2', - network: 'Polygon', - ipAddress: '192.168.1.3', - location: 'USA', - blockNumber: '401529', - coordinates: [40.7128, -74.006], - uptime: '95%', - nodeDetails: { - port: 30304, - last_seen: 'a few moments ago', - enode: 'enode://ijkl...9012', - client_type: 'Besu', - client_version: 'v21.1.1', - os: 'win-x64', - country: 'USA', - city: 'New York', - P2P: true, - Http: true - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: false - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'Q3Gs7BfJvW9DMN2X', - network: 'Optimism', - ipAddress: '192.168.1.4', - location: 'UK', - blockNumber: '501529', - coordinates: [51.5074, -0.1278], - uptime: '92%', - nodeDetails: { - port: 30305, - last_seen: 'a few moments ago', - enode: 'enode://mnop...3456', - client_type: 'Parity', - client_version: 'v2.7.2', - os: 'linux-x64', - country: 'UK', - city: 'London', - P2P: false, - Http: true - }, - supportedStorage: { - url: false, - arwave: true, - ipfs: false - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'B3Ls9CnTzQW8JKH4', - network: 'Ethereum', - ipAddress: '192.168.1.5', - location: 'Brazil', - blockNumber: '901529', - coordinates: [-23.5558, -46.6396], - uptime: '91%', - nodeDetails: { - port: 30309, - last_seen: 'a few moments ago', - enode: 'enode://yzab...5678', - client_type: 'Geth', - client_version: 'v1.9.25', - os: 'linux-x64', - country: 'Brazil', - city: 'Sao Paulo', - P2P: true, - Http: false - }, - supportedStorage: { - url: false, - arwave: true, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'C6Np5BtMwD7FYLR9', - network: 'Polygon', - ipAddress: '192.168.1.6', - location: 'Australia', - blockNumber: '801529', - coordinates: [-33.8688, 151.2093], - uptime: '93%', - nodeDetails: { - port: 30308, - last_seen: 'a few moments ago', - enode: 'enode://uvwx...1234', - client_type: 'Besu', - client_version: 'v21.1.1', - os: 'linux-x64', - country: 'Australia', - city: 'Sydney', - P2P: true, - Http: true - }, - supportedStorage: { - url: false, - arwave: false, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'D7Uf1QrWzF3AYZ5K', - network: 'Ethereum', - ipAddress: '192.168.1.7', - location: 'Japan', - blockNumber: '1001529', - coordinates: [35.6764, 139.65], - uptime: '96%', - nodeDetails: { - port: 30310, - last_seen: 'a few moments ago', - enode: 'enode://cdef...9012', - client_type: 'Geth', - client_version: 'v1.9.25', - os: 'linux-x64', - country: 'Japan', - city: 'Tokyo', - P2P: true, - Http: false - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: false - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'E8Vg2RsXzG4BZ6L', - network: 'Polygon', - ipAddress: '192.168.1.8', - location: 'India', - blockNumber: '1101529', - coordinates: [19.076, 72.8777], - uptime: '92%', - nodeDetails: { - port: 30311, - last_seen: 'a few moments ago', - enode: 'enode://ghij...3456', - client_type: 'Besu', - client_version: 'v21.1.1', - os: 'win-x64', - country: 'India', - city: 'Mumbai', - P2P: true, - Http: true - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: false - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'F9Wh3StYzH5CZ7M', - network: 'Optimism', - ipAddress: '192.168.1.9', - location: 'China', - blockNumber: '1201529', - coordinates: [39.9042, 116.4074], - uptime: '93%', - nodeDetails: { - port: 30312, - last_seen: 'a few moments ago', - enode: 'enode://ijkl...7890', - client_type: 'Parity', - client_version: 'v2.7.2', - os: 'linux-x64', - country: 'China', - city: 'Beijing', - P2P: true, - Http: true - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: false - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'G0Xj4UvAzI6EZ8N', - network: 'Ethereum', - ipAddress: '192.168.1.10', - location: 'South Korea', - blockNumber: '1301529', - coordinates: [37.5519, 126.9918], - uptime: '94%', - nodeDetails: { - port: 30313, - last_seen: 'a few moments ago', - enode: 'enode://klmn...1234', - client_type: 'Geth', - client_version: 'v1.9.25', - os: 'linux-x64', - country: 'South Korea', - city: 'Seoul', - P2P: true, - Http: false - }, - supportedStorage: { - url: false, - arwave: true, - ipfs: false - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'H1Yk5WbBzJ7GZ9O', - network: 'Polygon', - ipAddress: '192.168.1.11', - location: 'Canada', - blockNumber: '1401529', - coordinates: [43.651, -79.347], - uptime: '95%', - nodeDetails: { - port: 30314, - last_seen: 'a few moments ago', - enode: 'enode://mnop...5678', - client_type: 'Besu', - client_version: 'v21.1.1', - os: 'win-x64', - country: 'Canada', - city: 'Toronto', - P2P: true, - Http: true - }, - supportedStorage: { - url: false, - arwave: false, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'N0Op9YaEzL1HZ1P', - network: 'Ethereum', - ipAddress: '192.168.1.15', - location: 'South Africa', - blockNumber: '1801529', - uptime: '90%', - coordinates: [-33.9249, 18.4241], - nodeDetails: { - port: 30316, - last_seen: 'a few moments ago', - enode: 'enode://abcd...5678', - client_type: 'Geth', - client_version: 'v1.9.25', - os: 'linux-x64', - country: 'South Africa', - city: 'Cape Town', - P2P: true, - Http: false - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'P1Pq0YbFzM2IZ2Q', - network: 'Polygon', - ipAddress: '192.168.1.16', - location: 'Argentina', - blockNumber: '1901529', - uptime: '92%', - coordinates: [-34.6037, -58.3816], - nodeDetails: { - port: 30317, - last_seen: 'a few moments ago', - enode: 'enode://efgh...7890', - client_type: 'Besu', - client_version: 'v21.1.1', - os: 'win-x64', - country: 'Argentina', - city: 'Buenos Aires', - P2P: true, - Http: true - }, - supportedStorage: { - url: false, - arwave: true, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'Q2Rq1ZcGzN3JZ3R', - network: 'Optimism', - ipAddress: '192.168.1.17', - location: 'New Zealand', - blockNumber: '2001529', - uptime: '94%', - coordinates: [-36.8485, 174.7633], - nodeDetails: { - port: 30318, - last_seen: 'a few moments ago', - enode: 'enode://ijkl...9012', - client_type: 'Parity', - client_version: 'v2.7.2', - os: 'linux-x64', - country: 'New Zealand', - city: 'Auckland', - P2P: true, - Http: false - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'V7Wu6EgLzS8OD8W', - network: 'Polygon', - ipAddress: '192.168.1.22', - location: 'Singapore', - blockNumber: '2501529', - uptime: '93%', - coordinates: [1.3521, 103.8198], - nodeDetails: { - port: 30323, - last_seen: 'a few moments ago', - enode: 'enode://efgh...5678', - client_type: 'Besu', - client_version: 'v21.1.1', - os: 'win-x64', - country: 'Singapore', - city: 'Singapore', - P2P: false, - Http: true - }, - supportedStorage: { - url: false, - arwave: true, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - }, - { - nodeId: 'W8Xv7FhMzT9PE9X', - network: 'Optimism', - ipAddress: '192.168.1.23', - location: 'Romania', - blockNumber: '2601529', - uptime: '94%', - coordinates: [44.4268, 26.1025], - nodeDetails: { - port: 30324, - last_seen: 'a few moments ago', - enode: 'enode://ijkl...9012', - client_type: 'Parity', - client_version: 'v2.7.2', - os: 'linux-x64', - country: 'Romania', - city: 'Bucharest', - P2P: true, - Http: false - }, - supportedStorage: { - url: true, - arwave: false, - ipfs: true - }, - platform: { - cpus: 12, - freemem: 579903488, - totalmem: 17179869184, - loadavg: [2.32373046875, 2.7783203125, 2.6728515625], - arch: 'x64', - machine: 'x86_64', - platform: 'darwin', - release: '22.6.0', - osType: 'Darwin', - osVersion: - 'Darwin Kernel Version 22.6.0: Wed Jul 5 22:21:56 PDT 2023; root:xnu-8796.141.3~6/RELEASE_X86_64', - node: 'v18.16.0' - } - } -] - -export { Data } diff --git a/src/components/Table/hooks/useTable.ts b/src/components/Table/hooks/useTable.ts deleted file mode 100644 index 017741b8..00000000 --- a/src/components/Table/hooks/useTable.ts +++ /dev/null @@ -1,255 +0,0 @@ -import { useCallback, useMemo, useRef, useState } from 'react' -import { GridFilterModel, GridSortModel } from '@mui/x-data-grid' -import { useNodesContext } from '@/context/NodesContext' -import { useCountriesContext } from '@/context/CountriesContext' -import { useHistoryContext } from '@/context/HistoryContext' -import { TableTypeEnum } from '../../../shared/enums/TableTypeEnum' -import { NodeData } from '../../../shared/types/RowDataType' - -export const useTable = (tableType: TableTypeEnum) => { - const { - data: nodesData, - loading: nodesLoading, - currentPage: nodesCurrentPage, - pageSize: nodesPageSize, - totalItems: nodesTotalItems, - setCurrentPage: setNodesCurrentPage, - setPageSize: setNodesPageSize, - setFilter: setNodesFilter, - totalUptime, - searchTerm, - setSearchTerm - } = useNodesContext() - - const { - data: countryData, - loading: countriesLoading, - currentPage: countriesCurrentPage, - pageSize: countriesPageSize, - totalItems: countriesTotalItems, - setCurrentPage: setCountriesCurrentPage, - setPageSize: setCountriesPageSize, - setFilter: setCountriesFilter - } = useCountriesContext() - - const { - data: historyData, - loading: historyLoading, - currentPage: historyCurrentPage, - pageSize: historyPageSize, - totalItems: historyTotalItems, - setCurrentPage: setHistoryCurrentPage, - setPageSize: setHistoryPageSize, - nodeId, - setNodeId - } = useHistoryContext() - - const [selectedNode, setSelectedNode] = useState(null) - // const [searchTerm, setSearchTerm] = useState('') - const [searchTermCountry, setSearchTermCountry] = useState('') - const searchTimeout = useRef(null) - - const data = useMemo(() => { - switch (tableType) { - case TableTypeEnum.NODES: - return nodesData - case TableTypeEnum.COUNTRIES: - return countryData - case TableTypeEnum.HISTORY: - return historyData - default: - return [] - } - }, [tableType, nodesData, countryData, historyData]) - - const loading = useMemo(() => { - switch (tableType) { - case TableTypeEnum.NODES: - return nodesLoading - case TableTypeEnum.COUNTRIES: - return countriesLoading - case TableTypeEnum.HISTORY: - return historyLoading - default: - return false - } - }, [tableType, nodesLoading, countriesLoading, historyLoading]) - - const currentPage = useMemo(() => { - switch (tableType) { - case TableTypeEnum.NODES: - return nodesCurrentPage - case TableTypeEnum.COUNTRIES: - return countriesCurrentPage - case TableTypeEnum.HISTORY: - return historyCurrentPage - default: - return 1 - } - }, [tableType, nodesCurrentPage, countriesCurrentPage, historyCurrentPage]) - - const pageSize = useMemo(() => { - switch (tableType) { - case TableTypeEnum.NODES: - return nodesPageSize - case TableTypeEnum.COUNTRIES: - return countriesPageSize - case TableTypeEnum.HISTORY: - return historyPageSize - default: - return 10 - } - }, [tableType, nodesPageSize, countriesPageSize, historyPageSize]) - - const totalItems = useMemo(() => { - switch (tableType) { - case TableTypeEnum.NODES: - return nodesTotalItems - case TableTypeEnum.COUNTRIES: - return countriesTotalItems - case TableTypeEnum.HISTORY: - return historyTotalItems - default: - return 0 - } - }, [tableType, nodesTotalItems, countriesTotalItems, historyTotalItems]) - - const handlePaginationChange = useCallback( - (model: { page: number; pageSize: number }) => { - switch (tableType) { - case TableTypeEnum.NODES: - setNodesCurrentPage(model.page + 1) - setNodesPageSize(model.pageSize) - break - case TableTypeEnum.COUNTRIES: - setCountriesCurrentPage(model.page + 1) - setCountriesPageSize(model.pageSize) - break - case TableTypeEnum.HISTORY: - setHistoryCurrentPage(model.page + 1) - setHistoryPageSize(model.pageSize) - break - } - }, - [ - tableType, - setNodesCurrentPage, - setNodesPageSize, - setCountriesCurrentPage, - setCountriesPageSize, - setHistoryCurrentPage, - setHistoryPageSize - ] - ) - - const handleSortModelChange = useCallback( - (model: GridSortModel) => { - if (model.length > 0) { - const { field, sort } = model[0] - const filterModel: GridFilterModel = { - items: [ - { - id: 1, - field, - operator: 'sort', - value: sort - } - ] - } - - switch (tableType) { - case TableTypeEnum.NODES: - setNodesFilter(filterModel) - break - case TableTypeEnum.COUNTRIES: - setCountriesFilter(filterModel) - break - } - } - }, - [tableType, setNodesFilter, setCountriesFilter] - ) - - const handleFilterChange = useCallback( - (model: GridFilterModel) => { - switch (tableType) { - case TableTypeEnum.NODES: - setNodesFilter(model) - break - case TableTypeEnum.COUNTRIES: - setCountriesFilter(model) - break - case TableTypeEnum.HISTORY: - if (model.items?.[0]?.field === 'id') { - setNodeId(model.items[0].value as string) - } - break - } - }, - [tableType, setNodesFilter, setCountriesFilter, setNodeId] - ) - - const handleSearchChange = useCallback( - (term: string) => { - // const filterModel: GridFilterModel = { - // items: [{ field: 'name', operator: 'contains', value: term }] - // } - console.log( - `[useTable] handleSearchChange called with term: "${term}" for tableType: ${tableType}` - ) - if (tableType === TableTypeEnum.COUNTRIES) { - setSearchTermCountry(term) - if (searchTimeout.current) { - clearTimeout(searchTimeout.current) - } - // searchTimeout.current = setTimeout(() => { - // setCountriesFilter(filterModel) - // }, 500) - } else { - setSearchTerm(term) - if (searchTimeout.current) { - clearTimeout(searchTimeout.current) - } - // searchTimeout.current = setTimeout(() => { - // setNodesFilter(filterModel) - // }, 500) - } - }, - [tableType, setCountriesFilter, setSearchTerm, setNodesFilter] - ) - - const handleReset = useCallback(() => { - const emptyFilter: GridFilterModel = { items: [] } - - if (tableType === TableTypeEnum.COUNTRIES) { - setSearchTermCountry('') - setCountriesFilter(emptyFilter) - } else { - setSearchTerm('') - setNodesFilter(emptyFilter) - } - - if (searchTimeout.current) { - clearTimeout(searchTimeout.current) - } - }, [tableType, setCountriesFilter, setSearchTerm, setNodesFilter]) - - return { - data, - loading, - currentPage, - pageSize, - totalItems, - selectedNode, - setSelectedNode, - searchTerm, - searchTermCountry, - totalUptime, - nodeId, - handlePaginationChange, - handleSortModelChange, - handleFilterChange, - handleSearchChange, - handleReset - } -} diff --git a/src/components/Table/index.module.css b/src/components/Table/index.module.css deleted file mode 100644 index 2fe62548..00000000 --- a/src/components/Table/index.module.css +++ /dev/null @@ -1,164 +0,0 @@ -.root { - width: 100%; - height: calc(100vh - 64px); - margin: 0 auto; - border-radius: 15px; - background: var(--white); - box-shadow: 0px 3.5px 5.5px 0px rgba(0, 0, 0, 0.02); - padding: 32px; - display: flex; - flex-direction: column; - overflow: hidden; -} - -.search{ - background: var(--white); - color: var(--gray-700); - border: none; - margin-bottom: '10px'; - padding: '5px' -} - -.title { - color: var(--gray-700); - font-family: 'Sharp Sans', Helvetica, Arial, sans-serif; - font-size: 18px; - font-style: normal; - font-weight: 700; - line-height: 140%; -} - -.headerTitle { - font-family: 'Sharp Sans', sans-serif; - font-size: 14px; - font-weight: 600; - line-height: 21px; - color: #6c757d; - text-transform: uppercase; -} - -.dropdownTriggerBox { - width: 100%; - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; -} - -.dropdown { - background-color: transparent; - border: 0; - outline: none; -} - -.download { - background-color: transparent; - border: none; - color: inherit; - font: inherit; - padding: 0; - margin: 0; - cursor: pointer; - outline: none; - text-decoration: none; -} - -.download:hover, -.download:focus { - outline: none; - background-color: rgba(0, 0, 0, 0.1); -} - -.actionButtons { - display: flex; - gap: 8px; - justify-content: center; - align-items: center; - width: 100%; - height: 100%; -} - -.actionButton { - min-width: 36px !important; - width: 36px; - height: 36px; - padding: 6px; - border-radius: 50% !important; - color: #CF1FB1 !important; - border-color: #CF1FB1 !important; - display: flex; - align-items: center; - justify-content: center; -} - -.actionButton:hover { - background-color: rgba(207, 31, 177, 0.04) !important; -} - -.actionButton svg { - font-size: 18px; -} - -.actionCell { - display: flex; - align-items: center; - justify-content: center; - padding: 0; -} - -.statusContainer { - display: flex; - align-items: center; - gap: 8px; - justify-content: center; -} - -.statusDot { - width: 10px; - height: 10px; - border-radius: 50%; - display: inline-block; -} - -/* History table specific styles */ -.historyTable { - border-collapse: separate; - border-spacing: 0; - width: 100%; -} - -.historyTable th { - background-color: #f8f9fa; - color: #6c757d; - font-weight: 600; - text-transform: uppercase; - padding: 16px; - border-bottom: 1px solid #e9ecef; -} - -.historyTable td { - padding: 16px; - border-bottom: 1px solid #e9ecef; - color: #212529; -} - -.historyTable tr:last-child td { - border-bottom: none; -} - -/* Status colors */ -.statusDot { - display: inline-block; - width: 8px; - height: 8px; - border-radius: 50%; - margin-right: 8px; -} - -.statusText { - font-weight: 500; -} - -.fixedWidth { - max-width: 1240px; -} diff --git a/src/components/Table/index.tsx b/src/components/Table/index.tsx deleted file mode 100644 index a7bb705b..00000000 --- a/src/components/Table/index.tsx +++ /dev/null @@ -1,294 +0,0 @@ -import React, { JSXElementConstructor, useMemo, useEffect } from 'react' -import { - DataGrid, - GridColDef, - GridToolbarProps, - GridValidRowModel, - useGridApiRef, - GridSortModel, - GridFilterModel -} from '@mui/x-data-grid' -import { useTable } from './hooks/useTable' -import { TableTypeEnum } from '../../shared/enums/TableTypeEnum' -import { nodeColumns, countryColumns, historyColumns } from './columns' -import { styled } from '@mui/material/styles' - -import styles from './index.module.css' - -import NodeDetails from './NodeDetails' -import CustomToolbar from '../Toolbar' -import CustomPagination from './CustomPagination' - -const StyledDataGrid = styled(DataGrid)(({ theme }) => ({ - '& .MuiDataGrid-toolbarContainer': { - display: 'flex', - gap: '50px', - '& .MuiButton-root': { - fontFamily: 'Sharp Sans, sans-serif', - fontSize: '14px', - fontWeight: 400, - lineHeight: '21px', - textAlign: 'left', - color: '#000000', - '& .MuiSvgIcon-root': { - color: '#CF1FB1' - } - }, - '& .MuiBadge-badge': { - backgroundColor: '#CF1FB1' - } - }, - '& .MuiDataGrid-columnHeaders': { - backgroundColor: '#f8f9fa', - borderBottom: '1px solid #e9ecef' - }, - '& .MuiDataGrid-columnHeaderTitle': { - fontFamily: "'Sharp Sans', sans-serif", - fontSize: '14px', - fontWeight: 600, - lineHeight: '21px', - textAlign: 'left', - color: '#6c757d', - textTransform: 'uppercase', - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis' - }, - '& .MuiDataGrid-cell': { - fontFamily: "'Sharp Sans', sans-serif", - fontSize: '14px', - fontWeight: 400, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis' - }, - '& .MuiDataGrid-columnSeparator': { - visibility: 'visible', - color: '#E0E0E0' - }, - '& .MuiDataGrid-columnHeader:hover .MuiDataGrid-columnSeparator': { - visibility: 'visible', - color: '#BDBDBD' - }, - '& .MuiDataGrid-columnHeader:hover': { - '& .MuiDataGrid-columnSeparator': { - visibility: 'visible' - } - }, - '& .MuiDataGrid-cellContent': { - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis' - } -})) - -interface TableProps { - data?: any[] - loading?: boolean - currentPage?: number - pageSize?: number - totalItems?: number - nodeId?: string - tableType: TableTypeEnum - onPaginationChange?: (page: number, pageSize: number) => void - onSortModelChange?: (model: GridSortModel) => void - onFilterChange?: (model: GridFilterModel) => void -} - -export const Table: React.FC = ({ - data: propsData, - loading: propsLoading, - currentPage: propCurrentPage, - pageSize: propPageSize, - totalItems: propTotalItems, - nodeId, - tableType, - onPaginationChange, - onSortModelChange, - onFilterChange -}) => { - const { - data: hookData, - loading: hookLoading, - currentPage: hookCurrentPage, - pageSize: hookPageSize, - totalItems: hookTotalItems, - selectedNode, - setSelectedNode, - searchTerm, - searchTermCountry, - totalUptime, - handlePaginationChange, - handleSortModelChange, - handleFilterChange, - handleSearchChange, - handleReset - } = useTable(tableType) - - const apiRef = useGridApiRef() - - // Add a ref to track previous address - const prevNodeAddressRef = React.useRef('') - - // Use props data if provided, otherwise use hook data - const data = propsData || hookData - const loading = propsLoading || hookLoading - const currentPage = propCurrentPage || hookCurrentPage - const pageSize = propPageSize || hookPageSize - const totalItems = propTotalItems || hookTotalItems - - const columns = useMemo(() => { - switch (tableType) { - case TableTypeEnum.NODES: - return nodeColumns(totalUptime, setSelectedNode) - case TableTypeEnum.COUNTRIES: - return countryColumns - case TableTypeEnum.HISTORY: - return historyColumns - default: - return [] - } - }, [tableType, totalUptime, setSelectedNode]) - - useEffect(() => { - if (nodeId && onFilterChange) { - onFilterChange({ - items: [ - { - id: 1, - field: 'id', - operator: 'equals', - value: nodeId - } - ] - }) - } - }, [nodeId, onFilterChange]) - - const handlePaginationModelChange = (model: { page: number; pageSize: number }) => { - if (onPaginationChange) { - onPaginationChange(model.page + 1, model.pageSize) - } else { - handlePaginationChange(model) - } - } - - return ( -
-
- []} - slots={{ - toolbar: CustomToolbar as JSXElementConstructor - }} - slotProps={{ - toolbar: { - searchTerm: - tableType === TableTypeEnum.COUNTRIES ? searchTermCountry : searchTerm, - onSearchChange: handleSearchChange, - onReset: handleReset, - tableType: tableType, - apiRef: apiRef.current, - totalUptime: totalUptime - } - }} - initialState={{ - columns: { - columnVisibilityModel: - tableType === TableTypeEnum.NODES - ? { - network: false, - publicKey: false, - version: false, - http: false, - p2p: false, - supportedStorage: false, - platform: false, - codeHash: false, - allowedAdmins: false, - dnsFilter: false, - city: false, - country: false - } - : {} - }, - pagination: { - paginationModel: { - pageSize: pageSize, - page: currentPage - 1 - } - }, - density: 'comfortable' - }} - pagination - disableColumnMenu - pageSizeOptions={[10, 25, 50, 100]} - paginationModel={{ - page: currentPage - 1, - pageSize: pageSize - }} - onPaginationModelChange={handlePaginationModelChange} - loading={loading} - disableRowSelectionOnClick - getRowId={(row) => - tableType === TableTypeEnum.HISTORY ? row.timestamp : row.id - } - paginationMode="server" - sortingMode="server" - filterMode="server" - onSortModelChange={handleSortModelChange} - onFilterModelChange={handleFilterChange} - rowCount={totalItems} - autoHeight={false} - hideFooter={true} - processRowUpdate={( - newRow: GridValidRowModel, - oldRow: GridValidRowModel - ): GridValidRowModel => { - const processCell = (value: unknown) => { - if (typeof value === 'object' && value !== null) { - if ('dns' in value || 'ip' in value) { - const dnsIpObj = value as { dns?: string; ip?: string; port?: string } - return `${dnsIpObj.dns || dnsIpObj.ip}${dnsIpObj.port ? ':' + dnsIpObj.port : ''}` - } - - if ('city' in value || 'country' in value) { - const locationObj = value as { city?: string; country?: string } - return `${locationObj.city} ${locationObj.country}` - } - } - return value - } - - return Object.fromEntries( - Object.entries(newRow).map(([key, value]) => [key, processCell(value)]) - ) as GridValidRowModel - }} - apiRef={apiRef} - /> -
- onPaginationChange(page, pageSize) - : (page: number) => handlePaginationChange({ page: page - 1, pageSize }) - } - onPageSizeChange={ - onPaginationChange - ? (size: number) => onPaginationChange(currentPage, size) - : (size: number) => - handlePaginationChange({ page: currentPage - 1, pageSize: size }) - } - /> - {selectedNode && ( - setSelectedNode(null)} /> - )} -
- ) -} - -export default Table diff --git a/src/components/Table/tableConfig.ts b/src/components/Table/tableConfig.ts deleted file mode 100644 index 6a0a7c2d..00000000 --- a/src/components/Table/tableConfig.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { TableTypeEnum } from '../../shared/enums/TableTypeEnum' -import { GridFilterOperator } from '@mui/x-data-grid' - -export const SORT_FIELDS = { - [TableTypeEnum.COUNTRIES]: [ - 'totalNodes', - 'citiesWithNodes', - 'cityWithMostNodesCount' - ] as const, - [TableTypeEnum.NODES]: ['uptime', 'eligible', 'lastCheck'] as const -} as const - -type CountrySortFields = (typeof SORT_FIELDS)[TableTypeEnum.COUNTRIES][number] -type NodeSortFields = (typeof SORT_FIELDS)[TableTypeEnum.NODES][number] - -export type TableSortFields = { - [TableTypeEnum.COUNTRIES]: CountrySortFields - [TableTypeEnum.NODES]: NodeSortFields -} - -export const TABLE_CONFIG = { - DEBOUNCE_DELAY: 1000, - PAGE_SIZE_OPTIONS: [10, 25, 50, 100], - DEFAULT_DENSITY: 'comfortable' as const, - DEFAULT_PAGE_SIZE: 10, - - HIDDEN_COLUMNS: { - [TableTypeEnum.NODES]: { - network: false, - publicKey: false, - version: false, - http: false, - p2p: false, - supportedStorage: false, - platform: false, - codeHash: false, - allowedAdmins: false, - dnsFilter: false, - city: false, - country: false - }, - [TableTypeEnum.COUNTRIES]: {} - }, - - SORT_FIELDS, - - FILTER_OPERATORS: { - CONTAINS: 'contains', - EQUALS: 'eq', - GREATER_THAN: 'gt', - LESS_THAN: 'lt' - } as const, - - GRID_STYLE: { - HEIGHT: 'calc(100vh - 200px)', - WIDTH: '100%' - } -} as const - -export type FilterOperatorType = - (typeof TABLE_CONFIG.FILTER_OPERATORS)[keyof typeof TABLE_CONFIG.FILTER_OPERATORS] diff --git a/src/components/Table/utils.ts b/src/components/Table/utils.ts deleted file mode 100644 index e1dc45d5..00000000 --- a/src/components/Table/utils.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { GridApi } from '@mui/x-data-grid' -import { TableTypeEnum } from '../../shared/enums/TableTypeEnum' - -type NodeData = { - id: string - weeklyUptime: number - ipAndDns?: { - dns?: string - ip?: string - port?: string - } - location?: { - city?: string - country?: string - } - address: string - eligible: boolean - eligibilityCauseStr?: string - lastCheck: string - network: string - version: string - httpEnabled: boolean - p2pEnabled: boolean - supportedStorage: any - platform: any - codeHash: string - allowedAdmins: string[] - indexer?: Array<{ network: string }> - provider?: Array<{ network: string }> -} - -interface CountryData { - id: string - country: string - totalNodes: number - citiesWithNodes: number -} - -export const getAllNetworks = (indexers: NodeData['indexer']): string => { - return indexers?.map((indexer) => indexer.network).join(', ') || '' -} - -export const formatSupportedStorage = ( - supportedStorage: NodeData['supportedStorage'] -): string => { - const storageTypes = [] - - if (supportedStorage?.url) storageTypes.push('URL') - if (supportedStorage?.arwave) storageTypes.push('Arweave') - if (supportedStorage?.ipfs) storageTypes.push('IPFS') - - return storageTypes.join(', ') -} - -export const formatPlatform = (platform: NodeData['platform']): string => { - if (platform) { - const { cpus, arch, machine, platform: platformName, osType, node } = platform - return `CPUs: ${cpus}, Architecture: ${arch}, Machine: ${machine}, Platform: ${platformName}, OS Type: ${osType}, Node.js: ${node}` - } - return '' -} - -export const formatUptime = (uptimeInSeconds: number): string => { - const days = Math.floor(uptimeInSeconds / (3600 * 24)) - const hours = Math.floor((uptimeInSeconds % (3600 * 24)) / 3600) - const minutes = Math.floor((uptimeInSeconds % 3600) / 60) - - const dayStr = days > 0 ? `${days} day${days > 1 ? 's' : ''} ` : '' - const hourStr = hours > 0 ? `${hours} hour${hours > 1 ? 's' : ''} ` : '' - const minuteStr = minutes > 0 ? `${minutes} minute${minutes > 1 ? 's' : ''}` : '' - - return `${dayStr}${hourStr}${minuteStr}`.trim() -} - -export const formatUptimePercentage = ( - uptimeInSeconds: number, - totalUptime: number | null | undefined -): string => { - const defaultTotalUptime = 7 * 24 * 60 * 60 - - const actualTotalUptime = totalUptime || defaultTotalUptime - - const uptimePercentage = (uptimeInSeconds / actualTotalUptime) * 100 - const percentage = uptimePercentage > 100 ? 100 : uptimePercentage - return `${percentage.toFixed(2)}%` -} - -export const exportToCsv = ( - apiRef: GridApi, - tableType: TableTypeEnum, - totalUptime: number | null -) => { - if (!apiRef) return - - const columns = apiRef.getAllColumns().filter((col) => { - if (tableType === TableTypeEnum.NODES) { - return col.field !== 'viewMore' && col.field !== 'location' - } - return true - }) - - const rows = apiRef.getRowModels() - - const formattedRows = Array.from(rows.values()).map((row) => { - const formattedRow: Record = {} - - columns.forEach((column) => { - const field = column.field - const value = row[field] - - if (tableType === TableTypeEnum.COUNTRIES) { - if (field === 'cityWithMostNodes') { - const cityName = row.cityWithMostNodes || '' - const nodeCount = row.cityWithMostNodesCount || 0 - formattedRow[column.headerName || field] = `${cityName} (${nodeCount})` - } else { - formattedRow[column.headerName || field] = String(value || '') - } - } else { - if (field === 'uptime') { - formattedRow[column.headerName || field] = formatUptimePercentage( - value, - totalUptime - ) - } else if (field === 'network') { - const networks = - row.provider?.map((p: { network: string }) => p.network).join(', ') || '' - formattedRow[column.headerName || field] = networks - } else if (field === 'dnsFilter') { - const ipAndDns = row.ipAndDns as { dns?: string; ip?: string; port?: string } - formattedRow[column.headerName || field] = - `${ipAndDns?.dns || ''} ${ipAndDns?.ip || ''} ${ipAndDns?.port ? ':' + ipAndDns?.port : ''}`.trim() - } else if (field === 'city') { - formattedRow[column.headerName || field] = row.location?.city || '' - } else if (field === 'country') { - formattedRow[column.headerName || field] = row.location?.country || '' - } else if (field === 'platform') { - formattedRow[column.headerName || field] = formatPlatform(value) - } else if (field === 'supportedStorage') { - formattedRow[column.headerName || field] = formatSupportedStorage(value) - } else if (field === 'indexer') { - formattedRow[column.headerName || field] = getAllNetworks(value) - } else if (field === 'lastCheck') { - formattedRow[column.headerName || field] = new Date(value).toLocaleString() - } else if (typeof value === 'boolean') { - formattedRow[column.headerName || field] = value ? 'Yes' : 'No' - } else if (Array.isArray(value)) { - formattedRow[column.headerName || field] = value.join(', ') - } else if (field === 'eligibilityCauseStr') { - formattedRow[column.headerName || field] = value || 'none' - } else { - formattedRow[column.headerName || field] = String(value || '') - } - } - }) - return formattedRow - }) - - const headers = Object.keys(formattedRows[0]) - const csvRows = [ - headers.join(','), - ...formattedRows.map((row) => - headers - .map((header) => { - const value = row[header] - return value.includes(',') || value.includes('"') - ? `"${value.replace(/"/g, '""')}"` - : value - }) - .join(',') - ) - ].join('\n') - - const blob = new Blob(['\ufeff' + csvRows], { type: 'text/csv;charset=utf-8;' }) - const link = document.createElement('a') - link.href = URL.createObjectURL(blob) - link.download = `${tableType}_export_${new Date().toISOString()}.csv` - document.body.appendChild(link) - link.click() - document.body.removeChild(link) - URL.revokeObjectURL(link.href) -} diff --git a/src/components/Toolbar/index.tsx b/src/components/Toolbar/index.tsx deleted file mode 100644 index cb5e56ff..00000000 --- a/src/components/Toolbar/index.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import React from 'react' -import { - GridToolbarContainer, - GridToolbarExport, - GridToolbarColumnsButton, - GridToolbarFilterButton, - GridToolbarDensitySelector, - GridToolbarProps, - GridApi -} from '@mui/x-data-grid' -import { TextField, IconButton, styled, Button } from '@mui/material' -import SearchIcon from '@mui/icons-material/Search' -import ClearIcon from '@mui/icons-material/Clear' -import style from './style.module.css' -import { exportToCsv } from '../Table/utils' -import FileDownloadIcon from '@mui/icons-material/FileDownload' -import { TableTypeEnum } from '../../shared/enums/TableTypeEnum' -const StyledTextField = styled(TextField)({ - '& .MuiOutlinedInput-root': { - backgroundColor: '#CF1FB11A', - borderRadius: '20px', - '& fieldset': { - borderColor: 'transparent' - }, - '&:hover fieldset': { - borderColor: 'transparent' - }, - '&.Mui-focused fieldset': { - borderColor: 'transparent' - } - }, - '& .MuiInputBase-input': { - fontFamily: 'Sharp Sans, sans-serif', - fontSize: '14px', - fontWeight: 400, - lineHeight: '21px', - textAlign: 'left' - } -}) - -interface CustomToolbarProps extends GridToolbarProps { - searchTerm: string - onSearchChange: (value: string) => void - onSearch: () => void - onReset: () => void - tableType: TableTypeEnum - apiRef?: GridApi - totalUptime: number | null -} - -const CustomToolbar: React.FC = ({ - searchTerm, - onSearchChange, - onSearch, - onReset, - apiRef, - tableType, - totalUptime -}) => { - const handleExport = () => { - console.log('Export clicked') - console.log('apiRef available:', !!apiRef) - if (apiRef) { - exportToCsv(apiRef, tableType, totalUptime) - } - } - - const handleKeyPress = (event: React.KeyboardEvent) => { - if (event.key === 'Enter' && searchTerm) { - event.preventDefault() - onSearchChange(searchTerm) - } - } - - return ( - -
- - - - -
- -
- onSearchChange(e.target.value)} - onKeyPress={handleKeyPress} - placeholder="Search..." - variant="outlined" - size="small" - InputProps={{ - endAdornment: ( - <> - - - - {searchTerm && ( - - - - )} - - ) - }} - /> -
-
- ) -} - -export default CustomToolbar diff --git a/src/components/TopCountriesChart/TopCountriesChart .tsx b/src/components/TopCountriesChart/TopCountriesChart .tsx deleted file mode 100644 index a0389e4a..00000000 --- a/src/components/TopCountriesChart/TopCountriesChart .tsx +++ /dev/null @@ -1,94 +0,0 @@ -import React from 'react' -import Link from 'next/link' -import { BarChart, Bar, XAxis, YAxis, ResponsiveContainer, CartesianGrid } from 'recharts' -import styles from './TopCountriesChart.module.css' -import { getRoutes } from '../../config' -import { useCountriesContext } from '@/context/CountriesContext' -import { CountryStatsType } from '@/shared/types/dataTypes' - -const TopCountriesChart: React.FC = () => { - const routes = getRoutes() - const { data: countryStats } = useCountriesContext() - - const topCountries = countryStats.slice(0, 5).map((stat: CountryStatsType) => ({ - country: stat.country, - nodes: stat.totalNodes - })) - - const maxNodes = Math.max(...topCountries.map((country) => country.nodes)) - - const tickInterval = maxNodes > 50000 ? 5000 : 1000 - const roundedMax = Math.ceil(maxNodes / tickInterval) * tickInterval - const tickValues = Array.from({ length: 6 }, (_, i) => Math.round((roundedMax / 5) * i)) - - return ( -
-

Top 5 countries by Ocean Nodes

-
- - - } - domain={[0, roundedMax]} - ticks={tickValues} - /> - - - - - - - - - - - - - - VIEW ALL - -
-
- ) -} - -const CustomXAxisTick = (props: any) => { - const { x, y, payload } = props - return ( - - - {payload.value} - - - - ) -} - -export default TopCountriesChart diff --git a/src/components/TopCountriesChart/TopCountriesChart.module.css b/src/components/TopCountriesChart/TopCountriesChart.module.css deleted file mode 100644 index 5418741d..00000000 --- a/src/components/TopCountriesChart/TopCountriesChart.module.css +++ /dev/null @@ -1,112 +0,0 @@ -.root { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - gap: 16px; - text-align: center; - width: 100%; -} - -.title { - font-size: 50px; - font-weight: 700; - line-height: 62px; - color: white; - margin-bottom: 0; -} - -.description { - font-size: 18px; - font-weight: 400; - line-height: 30px; - color: white; - margin-bottom: 24px; -} - -.container { - background-color: #FFFFFF; - border-radius: 16px; - padding: 24px; - position: relative; - width: 100%; - position: relative; -} - -.containerChart { - background-color: white; - border-radius: 16px; - padding: 24px; - color: #FFFFFF; - margin-top: 24px; -} - -.container h2 { - font-size: 24px; - color: #FFFFFF; - margin-bottom: 8px; -} - -.container p { - font-size: 14px; - color: #A0AEC0; - margin-bottom: 24px; -} - -.viewAll { - background: none; - border: none; - color: #3E60F7; - cursor: pointer; - font-size: 14px; - position: absolute; - top: 24px; - right: 24px; -} - -.dividerContainer { - position: absolute; - top: 41px; - bottom: 20px; - left: 184px; - right: 20px; - display: flex; - flex-direction: column; - justify-content: space-between; - pointer-events: none; - width: 80%; - height: 54%; -} - -.dividerLine { - height: 1px; - background-color: #E0E0E0; - width: 100%; -} - -@media (max-width: 768px) { - .root { - padding: 0.5rem; - } - - .title { - font-size: 2rem; - line-height: 1.2; - } - - .description { - font-size: 0.875rem; - line-height: 1.4; - margin-bottom: 1rem; - } - - .container { - padding: 1rem; - } - - .viewAll { - top: 0.5rem; - right: 0.5rem; - font-size: 0.75rem; - } -} diff --git a/src/components/TotalEligibleCard/TotalEligibleCard.module.css b/src/components/TotalEligibleCard/TotalEligibleCard.module.css deleted file mode 100644 index 35d8820b..00000000 --- a/src/components/TotalEligibleCard/TotalEligibleCard.module.css +++ /dev/null @@ -1,55 +0,0 @@ -.card { - background-color: white; - border-radius: 16px; - padding: 24px; - color: #FFFFFF; - width: 100%; - max-width: 400px; - display: flex; - flex-direction: column; - align-items: center; - min-height: 238px; -} - -.header { - display: flex; - justify-content: space-between; - align-items: center; - margin-bottom: 20px; - width: 100%; -} - -.header h3 { - font-size: 18px; - color: #0E001A; -} - -.viewAll { - background: none; - border: none; - color: #3E60F7; - cursor: pointer; - font-size: 14px; -} - -.total { - font-size: 80px; - font-weight: bold; - color: #CF1FB1; - text-align: center; - display: flex; - justify-content: center; - align-items: center; - height: 100%; -} - -@media (max-width: 768px) { - .card { - padding: 16px; - } - - .total { - font-size: 60px; - min-height: 200px; - } -} diff --git a/src/components/TotalEligibleCard/TotalEligibleCard.tsx b/src/components/TotalEligibleCard/TotalEligibleCard.tsx deleted file mode 100644 index 46280a40..00000000 --- a/src/components/TotalEligibleCard/TotalEligibleCard.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from 'react' -import Link from 'next/link' -import { getRoutes } from '../../config' -import styles from './TotalEligibleCard.module.css' - -interface TotalEligibleCardProps { - total: string -} - -const TotalEligibleCard: React.FC = ({ total }) => { - const routes = getRoutes() - - return ( -
-
-

Total Eligible

- - VIEW ALL - -
-
{total}
-
- ) -} - -export default TotalEligibleCard diff --git a/src/components/avatar/avatar.module.css b/src/components/avatar/avatar.module.css new file mode 100644 index 00000000..2973d089 --- /dev/null +++ b/src/components/avatar/avatar.module.css @@ -0,0 +1,6 @@ +.avatar { + border-radius: 50%; + overflow: hidden; + display: inline-block; + vertical-align: middle; +} diff --git a/src/components/avatar/avatar.tsx b/src/components/avatar/avatar.tsx new file mode 100644 index 00000000..dd6660bb --- /dev/null +++ b/src/components/avatar/avatar.tsx @@ -0,0 +1,39 @@ +import { toDataUrl } from 'myetherwallet-blockies'; + +import Image from 'next/image'; +import styles from './avatar.module.css'; + +export interface AvatarProps { + accountId: string; + className?: string; + size?: 'sm' | 'md' | 'lg' | number; + src?: string; +} + +const Avatar = ({ accountId, className, size = 'md', src }: AvatarProps) => { + const getSize = () => { + switch (size) { + case 'sm': + return 18; + case 'md': + return 32; + case 'lg': + return 64; + default: + return size; + } + }; + + return ( + + ); +}; + +export default Avatar; diff --git a/src/components/button/button.module.css b/src/components/button/button.module.css new file mode 100644 index 00000000..cfd0bea1 --- /dev/null +++ b/src/components/button/button.module.css @@ -0,0 +1,78 @@ +.root { + align-items: center; + background: none; + border: none; + border-radius: 100px; + cursor: pointer; + display: inline-flex; + font-family: var(--font-inter); + font-weight: 600; + justify-content: center; + text-align: center; + white-space: nowrap; + + &:disabled { + cursor: not-allowed; + opacity: 0.5; + } +} + +.size-sm { + font-size: 14px; + gap: 2px; + line-height: 18px; + padding: 4px 12px; +} +.size-md { + font-size: 16px; + gap: 4px; + line-height: 20px; + padding: 6px 18px; +} +.size-lg { + font-size: 20px; + gap: 8px; + line-height: 24px; + padding: 12px 32px; +} + +.color-accent1 { + &.variant-filled { + background: var(--accent1); + color: var(--text-primary); + } + &.variant-outlined { + box-shadow: inset 0 0 0 2px var(--accent1); + color: var(--accent1); + } +} +.color-accent2 { + &.variant-filled { + background: var(--accent2); + color: var(--text-primary); + } + &.variant-outlined { + box-shadow: inset 0 0 0 2px var(--accent2); + color: var(--accent2); + } +} +.color-error { + &.variant-filled { + background: var(--error); + color: var(--text-primary); + } + &.variant-outlined { + box-shadow: inset 0 0 0 2px var(--error); + color: var(--error); + } +} +.color-primary { + &.variant-filled { + background: var(--text-primary); + color: #000; + } + &.variant-outlined { + box-shadow: inset 0 0 0 2px var(--text-primary); + color: var(--text-primary); + } +} diff --git a/src/components/button/button.tsx b/src/components/button/button.tsx new file mode 100644 index 00000000..bc9f8936 --- /dev/null +++ b/src/components/button/button.tsx @@ -0,0 +1,90 @@ +import { CircularProgress } from '@mui/material'; +import classNames from 'classnames'; +import Link from 'next/link'; +import { MouseEventHandler, ReactNode, useState } from 'react'; +import styles from './button.module.css'; + +export type ButtonProps = { + autoLoading?: boolean; + children?: ReactNode; + className?: string; + color?: 'accent1' | 'accent2' | 'error' | 'primary'; + contentAfter?: React.ReactNode; + contentBefore?: React.ReactNode; + disabled?: boolean; + href?: string; + id?: string; + loading?: boolean; + onClick?: MouseEventHandler; + target?: '_blank' | '_self'; + size?: 'sm' | 'md' | 'lg'; + type?: 'button' | 'submit' | 'reset'; + variant?: 'filled' | 'outlined'; +}; + +const Button = ({ + autoLoading, + children, + className, + color = 'primary', + contentAfter, + contentBefore, + disabled, + href, + id, + loading, + onClick, + target, + size = 'md', + type = 'button', + variant = 'filled', +}: ButtonProps) => { + const [innerLoading, setInnerLoading] = useState(false); + + const classes = classNames( + styles.root, + styles[`color-${color}`], + styles[`size-${size}`], + styles[`variant-${variant}`], + className + ); + + const isLoading = loading || innerLoading; + const isDisabled = disabled || isLoading; + + const spinner = isLoading ? : null; + + const handleClick = async (event: React.MouseEvent) => { + if (onClick) { + if (autoLoading) { + setInnerLoading(true); + await onClick(event); + setInnerLoading(false); + } else { + onClick(event); + } + } + }; + + if (href) { + return ( + + {spinner} + {contentBefore} + {children} + {contentAfter} + + ); + } + + return ( + + ); +}; + +export default Button; diff --git a/src/components/button/copy-button.tsx b/src/components/button/copy-button.tsx new file mode 100644 index 00000000..fec1fb0a --- /dev/null +++ b/src/components/button/copy-button.tsx @@ -0,0 +1,34 @@ +import Button, { ButtonProps } from '@/components/button/button'; +import CheckIcon from '@mui/icons-material/Check'; +import ContentCopyIcon from '@mui/icons-material/ContentCopy'; +import { useState } from 'react'; + +type CopyButtonProps = Pick & { + contentToCopy: string; +}; + +const CopyButton = ({ color = 'accent1', contentToCopy, size = 'sm', variant = 'outlined' }: CopyButtonProps) => { + const [copied, setCopied] = useState(false); + + const handleClick = () => { + navigator.clipboard.writeText(contentToCopy); + setCopied(true); + setTimeout(() => { + setCopied(false); + }, 2000); + }; + + return ( + + ); +}; + +export default CopyButton; diff --git a/src/components/button/download-logs-button.tsx b/src/components/button/download-logs-button.tsx new file mode 100644 index 00000000..9806d614 --- /dev/null +++ b/src/components/button/download-logs-button.tsx @@ -0,0 +1,84 @@ +import Button from '@/components/button/button'; +import { useP2P } from '@/contexts/P2PContext'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { ComputeJob } from '@/types/jobs'; +import { generateAuthTokenWithSmartAccount } from '@/utils/generateAuthToken'; +import { useSignMessage, useSmartAccountClient } from '@account-kit/react'; +import DownloadIcon from '@mui/icons-material/Download'; +import JSZip from 'jszip'; +import { useState } from 'react'; +import { toast } from 'react-toastify'; + +interface DownloadLogsButtonProps { + job: ComputeJob; +} + +export const DownloadLogsButton = ({ job }: DownloadLogsButtonProps) => { + const { getComputeResult, isReady } = useP2P(); + const [isDownloading, setIsDownloading] = useState(false); + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + const { signMessageAsync } = useSignMessage({ + client, + }); + const { account } = useOceanAccount(); + + const handleDownload = async () => { + if (!isReady || isDownloading || !account?.address) return; + + try { + const jobId = job.environment.split('-')[0] + '-' + job.jobId; + + const authToken = await generateAuthTokenWithSmartAccount(job.peerId, account.address, signMessageAsync); + + const logFiles = job.results.filter((result: any) => result.filename.includes('.log')); + const logPromises = logFiles.map((logFile: any) => + getComputeResult(job.peerId, jobId, logFile.index, authToken, account.address) + ); + + const downloadedLogs = await Promise.all(logPromises); + setIsDownloading(true); + + const zip = new JSZip(); + + downloadedLogs.forEach((logData, index) => { + if (logData instanceof Uint8Array) { + if (logData.byteLength !== 0) { + zip.file(logFiles[index].filename, logData); + } + } + }); + + const zipBlob = await zip.generateAsync({ type: 'blob' }); + + const url = URL.createObjectURL(zipBlob); + const link = document.createElement('a'); + link.href = url; + link.download = `logs-${job.jobId}.zip`; + + document.body.appendChild(link); + link.click(); + + document.body.removeChild(link); + URL.revokeObjectURL(url); + } catch (e) { + const errorMessage = e instanceof Error ? e.message : 'Failed to download logs'; + toast.error(errorMessage); + } finally { + setIsDownloading(false); + } + }; + + return ( + + ); +}; diff --git a/src/components/button/download-result-button.tsx b/src/components/button/download-result-button.tsx new file mode 100644 index 00000000..a13953b8 --- /dev/null +++ b/src/components/button/download-result-button.tsx @@ -0,0 +1,74 @@ +import Button from '@/components/button/button'; +import { useP2P } from '@/contexts/P2PContext'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { ComputeJob } from '@/types/jobs'; +import { generateAuthTokenWithSmartAccount } from '@/utils/generateAuthToken'; +import { useSignMessage, useSmartAccountClient } from '@account-kit/react'; +import DownloadIcon from '@mui/icons-material/Download'; +import { useState } from 'react'; +import { toast } from 'react-toastify'; + +interface DownloadResultButtonProps { + job: ComputeJob; +} + +export const DownloadResultButton = ({ job }: DownloadResultButtonProps) => { + const { getComputeResult, isReady } = useP2P(); + const [isDownloading, setIsDownloading] = useState(false); + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + const { signMessageAsync } = useSignMessage({ + client, + }); + const { account } = useOceanAccount(); + + const handleDownload = async () => { + if (!isReady || isDownloading || !account?.address) return; + + try { + const jobId = job.environment.split('-')[0] + '-' + job.jobId; + setIsDownloading(true); + const archive = job.results.find((result: any) => result.filename.includes('.tar')); + + const authToken = await generateAuthTokenWithSmartAccount(job.peerId, account.address, signMessageAsync); + + const result = await getComputeResult(job.peerId, jobId, archive?.index, authToken, account.address); + if (result instanceof Uint8Array) { + if (result.byteLength === 0) { + console.log('Received empty response (0 bytes). Skipping download.'); + return; + } + + const blob = new Blob([result as any], { type: 'application/octet-stream' }); + const url = URL.createObjectURL(blob); + const link = document.createElement('a'); + link.href = url; + link.download = `outputs-${job.jobId}.tar`; + + document.body.appendChild(link); + link.click(); + + document.body.removeChild(link); + URL.revokeObjectURL(url); + } + } catch (e) { + const errorMessage = e instanceof Error ? e.message : 'Failed to download result'; + toast.error(errorMessage); + } finally { + setIsDownloading(false); + } + }; + + return ( + + ); +}; diff --git a/src/components/button/info-button.tsx b/src/components/button/info-button.tsx new file mode 100644 index 00000000..0f6305a0 --- /dev/null +++ b/src/components/button/info-button.tsx @@ -0,0 +1,26 @@ +import { useNodesContext } from '@/context/nodes-context'; +import { Node } from '@/types/nodes'; +import { useRouter } from 'next/router'; +import Button from './button'; + +type InfoButtonProps = { + node: Node; +}; + +const InfoButton = ({ node }: InfoButtonProps) => { + const { setSelectedNode } = useNodesContext(); + const router = useRouter(); + + const handleClick = () => { + setSelectedNode(node); + router.push(`/nodes/${node.id || node.nodeId}`); + }; + + return ( + + ); +}; + +export default InfoButton; diff --git a/src/components/button/job-info-button.tsx b/src/components/button/job-info-button.tsx new file mode 100644 index 00000000..d26111b5 --- /dev/null +++ b/src/components/button/job-info-button.tsx @@ -0,0 +1,26 @@ +import { JobInfoModal } from '@/components/modal/job-info-modal'; +import { ComputeJob } from '@/types/jobs'; +import { useState } from 'react'; +import Button from './button'; + +interface JobInfoButtonProps { + job: ComputeJob; +} + +export const JobInfoButton = ({ job }: JobInfoButtonProps) => { + const [open, setOpen] = useState(false); + + const handleOpen = () => setOpen(true); + const handleClose = () => setOpen(false); + + return ( + <> + + + + ); +}; + +export default JobInfoButton; diff --git a/src/components/card/card.module.css b/src/components/card/card.module.css new file mode 100644 index 00000000..d44132bc --- /dev/null +++ b/src/components/card/card.module.css @@ -0,0 +1,111 @@ +/* Directions */ +.direction-column { + display: flex; + flex-direction: column; +} +.direction-row { + display: flex; + flex-direction: row; +} + +/* Paddings */ +.padding-sm { + padding: 24px; +} +.padding-md { + padding: 32px; +} +.padding-lg { + padding: 48px; +} + +/* X paddings */ +.paddingX-sm { + padding-left: 24px; + padding-right: 24px; +} +.paddingX-md { + padding-left: 32px; + padding-right: 32px; +} +.paddingX-lg { + padding-left: 48px; + padding-right: 48px; +} + +/* Y paddings */ +.paddingY-sm { + padding-top: 24px; + padding-bottom: 24px; +} +.paddingY-md { + padding-top: 32px; + padding-bottom: 32px; +} +.paddingY-lg { + padding-top: 48px; + padding-bottom: 48px; +} + +/* Radii */ +.radius-sm { + border-radius: 16px; +} +.radius-md { + border-radius: 24px; +} +.radius-lg { + border-radius: 32px; +} + +/* Spacings */ +.spacing-sm { + gap: 16px; +} +.spacing-md { + gap: 24px; +} +.spacing-lg { + gap: 32px; +} + +/* Variants */ +.variant-glass { + background-color: var(--background-glass); + border: 1px solid var(--border-glass); +} +.variant-glass-shaded { + background-color: var(--background-glass); + box-shadow: var(--inner-shadow-glass); + backdrop-filter: var(--backdrop-filter-glass); +} +.variant-glass-outline { + border: 1px solid var(--border-glass); +} +.variant-success { + background: var(--success-darker); + border: 2px solid var(--success); + box-shadow: 0 8px 80px -20px var(--success); +} +.variant-success-outline { + border: 2px solid var(--success); +} +.variant-warning { + background: var(--warning-darker); + border: 2px solid var(--warning); + box-shadow: 0 8px 80px -20px var(--warning); +} +.variant-warning-outline { + border: 2px solid var(--warning); +} +.variant-error { + background: var(--error-darker); + border: 2px solid var(--error); + box-shadow: 0 8px 80px -20px var(--error); +} +.variant-error-outline { + border: 2px solid var(--error); +} +.variant-accent1-outline { + border: 2px solid var(--accent1); +} diff --git a/src/components/card/card.tsx b/src/components/card/card.tsx new file mode 100644 index 00000000..a2581340 --- /dev/null +++ b/src/components/card/card.tsx @@ -0,0 +1,50 @@ +import cx from 'classnames'; +import { ReactNode } from 'react'; +import styles from './card.module.css'; + +type Size = 'sm' | 'md' | 'lg'; +type Variant = + | 'glass' + | 'glass-shaded' + | 'glass-outline' + | 'success' + | 'success-outline' + | 'warning' + | 'warning-outline' + | 'error' + | 'error-outline' + | 'accent1-outline'; + +type CardProps = { + children: ReactNode; + className?: string; + direction?: 'row' | 'column'; + padding?: Size; + paddingX?: Size; + paddingY?: Size; + radius?: Size; + spacing?: Size; + variant?: Variant; +}; + +const Card = ({ children, className, direction, padding, paddingX, paddingY, radius, spacing, variant }: CardProps) => ( +
+ {children} +
+); + +export default Card; diff --git a/src/components/chart/chart-type.ts b/src/components/chart/chart-type.ts new file mode 100644 index 00000000..5fc29aa7 --- /dev/null +++ b/src/components/chart/chart-type.ts @@ -0,0 +1,7 @@ +export enum ChartTypeEnum { + CPU_ARCH_DISTRIBUTION = 'cpu-arch-distribution', + CPU_CORES_DISTRIBUTION = 'cpu-cores-distribution', + JOBS_PER_EPOCH = 'jobs-per-epoch', + OS_DISTRIBUTION = 'os-distribution', + REVENUE_PER_EPOCH = 'revenue-per-epoch', +} diff --git a/src/components/chart/gauge.module.css b/src/components/chart/gauge.module.css new file mode 100644 index 00000000..94bdc5fc --- /dev/null +++ b/src/components/chart/gauge.module.css @@ -0,0 +1,54 @@ +.root { + align-items: center; + display: flex; + flex-direction: column; + gap: 24px; + + .heading { + text-align: center; + } + + .chartWrapper { + display: flex; + flex-direction: column; + gap: 8px; + height: 100%; + + .chart { + height: 110px; + position: relative; + width: 220px; + + .valueWrapper { + align-items: center; + bottom: -16px; + display: flex; + flex-direction: column; + gap: 2px; + left: 0; + position: absolute; + text-align: center; + width: 100%; + + .value { + font-size: 30px; + font-weight: bold; + line-height: 1; + } + + .label { + font-size: 12px; + color: var(--text-secondary); + } + } + } + + .footer { + color: var(--text-secondary); + display: flex; + font-size: 14px; + gap: 16px; + justify-content: space-between; + } + } +} diff --git a/src/components/chart/gauge.tsx b/src/components/chart/gauge.tsx new file mode 100644 index 00000000..6543a938 --- /dev/null +++ b/src/components/chart/gauge.tsx @@ -0,0 +1,70 @@ +import { formatNumber } from '@/utils/formatters'; +import { useMemo } from 'react'; +import { Cell, Pie, PieChart, ResponsiveContainer } from 'recharts'; +import styles from './gauge.module.css'; + +type GaugeProps = { + label?: string; + max: number; + min: number; + title: string; + value: number; + valueSuffix?: string; +}; + +const Gauge = ({ label, max, min, title, value, valueSuffix }: GaugeProps) => { + const slices = useMemo(() => { + const offsetValue = value - min; + const offsetMax = max - offsetValue; + return [ + { value: offsetValue, color: 'var(--accent1)' }, + { value: offsetMax, color: 'var(--background-glass)' }, + ]; + }, [max, min, value]); + + return ( +
+

{title}

+
+
+ + + + {slices.map((entry, index) => ( + + ))} + + + +
+
+ {formatNumber(value)} + {valueSuffix} +
+ {label ?
{label}
: null} +
+
+
+
+ {formatNumber(min)} + {valueSuffix} +
+
+ {formatNumber(max)} + {valueSuffix} +
+
+
+
+ ); +}; + +export default Gauge; diff --git a/src/components/chart/h-bar-chart.module.css b/src/components/chart/h-bar-chart.module.css new file mode 100644 index 00000000..3450049f --- /dev/null +++ b/src/components/chart/h-bar-chart.module.css @@ -0,0 +1,18 @@ +.root { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 16px; + text-align: center; + width: 100%; +} + +.container { + background-color: #ffffff; + border-radius: 16px; + padding: 24px; + position: relative; + width: 100%; + position: relative; +} diff --git a/src/components/chart/h-bar-chart.tsx b/src/components/chart/h-bar-chart.tsx new file mode 100644 index 00000000..dd882e8d --- /dev/null +++ b/src/components/chart/h-bar-chart.tsx @@ -0,0 +1,39 @@ +import { Bar, BarChart, CartesianGrid, ResponsiveContainer, XAxis, YAxis } from 'recharts'; +import styles from './h-bar-chart.module.css'; + +type HBarChartProps = { + axisKey: string; + barKey: string; + data: any[]; +}; + +const HBarChart = ({ axisKey, barKey, data }: HBarChartProps) => ( +
+ + + + + + + + +
+); + +export default HBarChart; diff --git a/src/components/PieChart/PieChartCard.module.css b/src/components/chart/pie-chart.module.css similarity index 63% rename from src/components/PieChart/PieChartCard.module.css rename to src/components/chart/pie-chart.module.css index 0f05d101..927a82e4 100644 --- a/src/components/PieChart/PieChartCard.module.css +++ b/src/components/chart/pie-chart.module.css @@ -1,25 +1,14 @@ -.card { - background-color: transparent; - border-radius: 16px; - padding: 24px; - color: #FFFFFF; +.root { + color: var(--text-primary); text-align: center; width: 100%; max-width: 300px; transition: all 0.3s ease-in-out; } -.card h3 { - font-size: 18px; - margin-bottom: 20px; - font-weight: 500; - line-height: 24px; - margin-bottom: 0; -} - .tapToSee { font-size: 14px; - color: #A0AEC0; + color: var(--text-secondary); margin-top: 0; font-weight: 400; line-height: 18px; diff --git a/src/components/chart/pie-chart.tsx b/src/components/chart/pie-chart.tsx new file mode 100644 index 00000000..bb1dd805 --- /dev/null +++ b/src/components/chart/pie-chart.tsx @@ -0,0 +1,136 @@ +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import { useCustomTooltip } from '@/components/chart/use-custom-tooltip'; +import React, { useMemo, useState } from 'react'; +import { + Cell, + Pie, + PieChart as RechartsPieChart, + Tooltip as RechartsTooltip, + ResponsiveContainer, + Sector, +} from 'recharts'; +import styles from './pie-chart.module.css'; + +type PieChartItem = { + color: string; + details?: string[]; + name: string; + value: number; +}; + +type PieChartCardProps = { + chartType?: ChartTypeEnum; + data: PieChartItem[]; + title: string; +}; + +const PieChart: React.FC = ({ chartType, data, title }) => { + const { handleMouseMove, handleMouseLeave, CustomRechartsTooltipComponent, renderTooltipPortal } = useCustomTooltip({ + chartType, + labelKey: 'name', + }); + + const [activeIndex, setActiveIndex] = useState(undefined); + const [lockedIndex, setLockedIndex] = useState(undefined); + const [hoverText, setHoverText] = useState('Hover to see details'); + + const totalValue = useMemo(() => data.reduce((sum, entry) => sum + entry.value, 0), [data]); + + const onPieEnter = (_: any, index: number) => { + if (lockedIndex === undefined) { + setActiveIndex(index); + const percentage = ((data[index].value / totalValue) * 100).toFixed(2); + setHoverText(`${data[index].name}: ${percentage}%`); + } + }; + + const onPieLeave = () => { + if (lockedIndex === undefined) { + setActiveIndex(undefined); + setHoverText('Hover to see details'); + } + }; + + const onPieClick = (_: any, index: number) => { + if (lockedIndex === index) { + setLockedIndex(undefined); + setActiveIndex(undefined); + setHoverText('Hover to see details'); + } else { + setLockedIndex(index); + setActiveIndex(index); + const percentage = ((data[index].value / totalValue) * 100).toFixed(2); + setHoverText(`${data[index].name}: ${percentage}%`); + } + }; + + const renderActiveShape = (props: any) => { + const { cx, cy, innerRadius, outerRadius, startAngle, endAngle, fill } = props; + return ( + + + + + + + + + + + + + ); + }; + + return ( +
+

{title}

+ + + + {data.map((entry, index) => ( + + ))} + + } cursor={false} /> + + +
{hoverText}
+ {renderTooltipPortal()} +
+ ); +}; + +export default PieChart; diff --git a/src/components/chart/use-custom-tooltip.tsx b/src/components/chart/use-custom-tooltip.tsx new file mode 100644 index 00000000..f79f1686 --- /dev/null +++ b/src/components/chart/use-custom-tooltip.tsx @@ -0,0 +1,184 @@ +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import React, { useCallback, useEffect, useRef, useState } from 'react'; +import ReactDOM from 'react-dom'; + +type TooltipInfo = { + show: boolean; + x: number; + y: number; + data: any; +}; + +type UseCustomTooltipProps = { + chartType?: ChartTypeEnum; + labelKey: string; +}; + +const RechartsTooltipContent = ({ active, payload, label, cardIdRef, setTooltipInfo, mousePositionRef }: any) => { + const prevActiveRef = useRef(active); + const prevPayloadRef = useRef(payload); + + useEffect(() => { + if ( + prevActiveRef.current !== active || + (active && JSON.stringify(prevPayloadRef.current) !== JSON.stringify(payload)) + ) { + prevActiveRef.current = active; + prevPayloadRef.current = payload; + + if (active && payload && payload.length) { + (window as any).__activeTooltipCard = cardIdRef.current; + const data = payload[0]; + + queueMicrotask(() => { + if ((window as any).__activeTooltipCard === cardIdRef.current) { + setTooltipInfo({ + show: true, + x: mousePositionRef.current.x, + y: mousePositionRef.current.y, + data: { + value: data.value, + payload: data.payload, + }, + }); + } + }); + } else { + if ((window as any).__activeTooltipCard === cardIdRef.current) { + (window as any).__activeTooltipCard = null; + queueMicrotask(() => { + setTooltipInfo((prev: any) => ({ ...prev, show: false })); + }); + } + } + } + }, [active, payload, label, cardIdRef, setTooltipInfo, mousePositionRef]); + + return null; +}; + +export const useCustomTooltip = ({ chartType, labelKey }: UseCustomTooltipProps) => { + const [tooltipInfo, setTooltipInfo] = useState({ + show: false, + x: 0, + y: 0, + data: null, + }); + + const mousePositionRef = useRef({ x: 0, y: 0 }); + const cardIdRef = useRef(`tooltip-card-${Math.random().toString(36).substring(2, 9)}`); + + const handleMouseMove = useCallback((e: React.MouseEvent) => { + mousePositionRef.current = { x: e.clientX, y: e.clientY }; + }, []); + + const handleMouseLeave = useCallback(() => { + if ((window as any).__activeTooltipCard === cardIdRef.current) { + (window as any).__activeTooltipCard = null; + setTooltipInfo((prev) => ({ ...prev, show: false })); + } + }, []); + + const CustomRechartsTooltipComponent = useCallback( + (props: any) => ( + + ), + [cardIdRef, setTooltipInfo, mousePositionRef] + ); + + const renderTooltipPortal = useCallback(() => { + if (!tooltipInfo.show || !tooltipInfo.data) return null; + + const payload = tooltipInfo.data.payload; + const value = tooltipInfo.data.value; + const label = payload[labelKey]; + + let tooltipContent: React.ReactNode; + + switch (chartType) { + case ChartTypeEnum.CPU_ARCH_DISTRIBUTION: + case ChartTypeEnum.CPU_CORES_DISTRIBUTION: + case ChartTypeEnum.OS_DISTRIBUTION: { + tooltipContent = ( +
+

{label}

+

Total: {value} nodes

+ {payload.details && ( +
+ {Array.isArray(payload.details) + ? payload.details.map((detail: string, index: number) => ( +
+

{detail}

+
+ )) + : null} +
+ )} +
+ ); + break; + } + case ChartTypeEnum.JOBS_PER_EPOCH: { + tooltipContent = ( +
+ Epoch {label}: {Number(value).toLocaleString()} jobs +
+ ); + break; + } + case ChartTypeEnum.REVENUE_PER_EPOCH: { + tooltipContent = ( +
+ Epoch {label}: USDC {Number(value).toLocaleString()} +
+ ); + break; + } + default: { + tooltipContent =
Value: {Number(value).toLocaleString()}
; + } + } + + return ReactDOM.createPortal( +
+ {tooltipContent} +
, + document.body + ); + }, [tooltipInfo, chartType, labelKey /*cardTitle*/]); + + return { + handleMouseMove, + handleMouseLeave, + CustomRechartsTooltipComponent, + renderTooltipPortal, + }; +}; diff --git a/src/components/chart/v-bar-chart.module.css b/src/components/chart/v-bar-chart.module.css new file mode 100644 index 00000000..7e163790 --- /dev/null +++ b/src/components/chart/v-bar-chart.module.css @@ -0,0 +1,36 @@ +.chartWrapper { + align-content: start; + align-items: center; + display: grid; + grid-template-rows: auto 110px auto; + gap: 8px; +} + +.chartFooter { + align-items: center; + display: flex; + gap: 16px; + justify-content: space-between; + padding: 0 4px; + + .label { + color: var(--text-secondary); + font-size: 14px; + } + + .currency { + color: var(--text-secondary); + font-size: 12px; + font-weight: 400; + } + + .amount { + font-size: 20px; + font-weight: 600; + } +} + +.heading { + margin-bottom: 16px; + text-align: center; +} diff --git a/src/components/chart/v-bar-chart.tsx b/src/components/chart/v-bar-chart.tsx new file mode 100644 index 00000000..d3a2b0e0 --- /dev/null +++ b/src/components/chart/v-bar-chart.tsx @@ -0,0 +1,55 @@ +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import { useCustomTooltip } from '@/components/chart/use-custom-tooltip'; +import { Bar, BarChart as RechartsBarChart, Tooltip as RechartsTooltip, ResponsiveContainer, XAxis } from 'recharts'; +import styles from './v-bar-chart.module.css'; + +type VBarChartProps = { + axisKey: string; + barKey: string; + chartType?: ChartTypeEnum; + data: any[]; + footer?: { + amount: string; + currency?: string; + label: string; + }; + title: string; +}; + +const VBarChart = ({ axisKey, barKey, chartType, data, footer, title }: VBarChartProps) => { + const { handleMouseMove, handleMouseLeave, CustomRechartsTooltipComponent, renderTooltipPortal } = useCustomTooltip({ + chartType, + labelKey: axisKey, + }); + + return ( +
+

{title}

+
+ + + + + } cursor={false} /> + + + {renderTooltipPortal()} +
+ {footer ? ( +
+
{footer.label}
+ + {footer.currency && {footer.currency} } + {footer.amount} + +
+ ) : null} +
+ ); +}; + +export default VBarChart; diff --git a/src/components/code-block/code-block.module.css b/src/components/code-block/code-block.module.css new file mode 100644 index 00000000..dad2b9c9 --- /dev/null +++ b/src/components/code-block/code-block.module.css @@ -0,0 +1,12 @@ +.root { + align-items: start; + background: var(--background-glass); + border-radius: 16px; + display: flex; + font-family: monospace; + gap: 16px; + justify-content: space-between; + line-height: 2; + padding: 8px 8px 8px 16px; + white-space: pre-wrap; +} diff --git a/src/components/code-block/code-block.tsx b/src/components/code-block/code-block.tsx new file mode 100644 index 00000000..4f47426a --- /dev/null +++ b/src/components/code-block/code-block.tsx @@ -0,0 +1,19 @@ +import CopyButton from '@/components/button/copy-button'; +import styles from './code-block.module.css'; + +type CodeBlockProps = { + code: string; +}; + +export const CodeBlock = ({ code }: CodeBlockProps) => { + const handleCopy = () => { + navigator.clipboard.writeText(code); + }; + + return ( +
+
{code}
+ +
+ ); +}; diff --git a/src/components/container/container.module.css b/src/components/container/container.module.css new file mode 100644 index 00000000..c4f37622 --- /dev/null +++ b/src/components/container/container.module.css @@ -0,0 +1,5 @@ +.root { + width: calc(100% - 40px); + max-width: 1160px; + margin: 0 auto; +} diff --git a/src/components/container/container.tsx b/src/components/container/container.tsx new file mode 100644 index 00000000..a678a6cd --- /dev/null +++ b/src/components/container/container.tsx @@ -0,0 +1,9 @@ +import cx from 'classnames'; +import { ReactNode } from 'react'; +import styles from './container.module.css'; + +const Container = ({ children, className }: { children: ReactNode; className?: string }) => { + return
{children}
; +}; + +export default Container; diff --git a/src/components/environment-card/environment-card.module.css b/src/components/environment-card/environment-card.module.css new file mode 100644 index 00000000..075cd131 --- /dev/null +++ b/src/components/environment-card/environment-card.module.css @@ -0,0 +1,117 @@ +.gridWrapper { + display: flex; + flex-direction: column; + gap: 24px; + + .grid { + display: flex; + flex-direction: column; + gap: 16px 32px; + + @media (min-width: 768px) { + display: grid; + grid-template-columns: repeat(2, 1fr); + + &.compact { + grid-template-columns: repeat(3, 1fr); + } + } + + @media (min-width: 1100px) { + &.specsWithoutGpus, + &.gpuSpecs { + grid-template-columns: repeat(3, 1fr); + } + } + } +} + +.compactGrid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px 32px; + + .label { + font-size: 12px; + } +} + +.link { + color: var(--accent1); + + &:hover { + text-decoration: underline; + } +} + +.label { + align-items: center; + color: var(--text-secondary); + display: flex; + font-size: 14px; + + &.heading, + .heading { + color: var(--text-primary); + font-size: 14px; + font-weight: 600; + } + + &.em, + .em { + color: var(--text-primary); + font-weight: 700; + } + + .icon { + color: var(--accent1); + margin-right: 4px; + } +} + +.balance { + align-items: center; + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px; + + .link { + color: var(--accent1); + cursor: pointer; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } +} + +.footer { + display: flex; + flex-direction: column; + gap: 16px; + + .buttons { + display: flex; + flex-direction: column; + gap: 8px; + + .select { + min-width: 200px; + } + } + + @media (min-width: 768px) { + align-items: center; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + + .buttons { + flex-direction: row; + flex-wrap: wrap; + } + } +} diff --git a/src/components/environment-card/environment-card.tsx b/src/components/environment-card/environment-card.tsx new file mode 100644 index 00000000..f755823c --- /dev/null +++ b/src/components/environment-card/environment-card.tsx @@ -0,0 +1,365 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import GpuLabel from '@/components/gpu-label/gpu-label'; +import useEnvResources from '@/components/hooks/use-env-resources'; +import ProgressBar from '@/components/progress-bar/progress-bar'; +import { USDC_TOKEN_ADDRESS } from '@/constants/tokens'; +import { useRunJobContext } from '@/context/run-job-context'; +import useTokenSymbol from '@/lib/token-symbol'; +import { ComputeEnvironment, EnvNodeInfo } from '@/types/environments'; +import { formatNumber } from '@/utils/formatters'; +import DnsIcon from '@mui/icons-material/Dns'; +import MemoryIcon from '@mui/icons-material/Memory'; +import PlayArrowIcon from '@mui/icons-material/PlayArrow'; +import SdStorageIcon from '@mui/icons-material/SdStorage'; +import classNames from 'classnames'; +import Link from 'next/link'; +import { useRouter } from 'next/router'; +import { useMemo } from 'react'; +import styles from './environment-card.module.css'; + +type EnvironmentCardProps = { + compact?: boolean; + environment: ComputeEnvironment; + nodeInfo: EnvNodeInfo; + showNodeName?: boolean; +}; + +const EnvironmentCard = ({ compact, environment, nodeInfo, showNodeName }: EnvironmentCardProps) => { + const router = useRouter(); + + const { selectEnv, selectToken } = useRunJobContext(); + + // const [selectedTokenAddress, setSelectedTokenAddress] = useState(getEnvSupportedTokens(environment)[0]); + const selectedTokenAddress = USDC_TOKEN_ADDRESS; + const tokenSymbol = useTokenSymbol(selectedTokenAddress); + + const { cpu, cpuFee, disk, diskFee, gpus, gpuFees, ram, ramFee } = useEnvResources({ + environment, + freeCompute: false, + tokenAddress: selectedTokenAddress, + }); + + const startingFee = useMemo(() => { + const minGpuFee = Object.values(gpuFees).reduce((min, fee) => (fee < min ? fee : min), Infinity); + return (cpuFee ?? 0) + (ramFee ?? 0) + (diskFee ?? 0) + (minGpuFee === Infinity ? 0 : minGpuFee); + }, [cpuFee, diskFee, gpuFees, ramFee]); + + const minJobDurationHours = (environment.minJobDuration ?? 0) / 60 / 60; + const maxJobDurationHours = (environment.maxJobDuration ?? 0) / 60 / 60; + + const selectEnvironment = () => { + selectEnv({ + environment, + freeCompute: false, + nodeInfo, + }); + selectToken(selectedTokenAddress, tokenSymbol); + router.push('/run-job/resources'); + }; + + const selectFreeCompute = () => { + selectEnv({ + environment, + freeCompute: true, + nodeInfo, + }); + selectToken(selectedTokenAddress, tokenSymbol); + router.push('/run-job/resources'); + }; + + const getCpuProgressBar = () => { + if (!cpu) { + return null; + } + const max = cpu.max ?? 0; + const inUse = cpu.inUse ?? 0; + const available = max - inUse; + const fee = cpuFee ?? 0; + if (compact) { + return ( +
+
+ + {cpu?.description} +
+
+ {fee} {tokenSymbol}/min +
+
+ + {available}/{max} + +   available +
+
+ ); + } + const percentage = (100 * inUse) / max; + return ( + + CPU - {cpu?.description} + + } + topRightContent={ + + {max} total + + } + bottomLeftContent={ + + {fee} {tokenSymbol}/min + + } + bottomRightContent={ + + {inUse} used + + } + /> + ); + }; + + const getGpuProgressBars = () => { + const mergedGpus = gpus.reduce( + (merged, gpuToCheck) => { + const existingGpu = merged.find( + (gpu) => gpu.description === gpuToCheck.description && gpuFees[gpu.id] === gpuFees[gpuToCheck.id] + ); + if (existingGpu) { + existingGpu.inUse = (existingGpu.inUse ?? 0) + (gpuToCheck.inUse ?? 0); + existingGpu.max += gpuToCheck.max; + } else { + merged.push({ ...gpuToCheck }); + } + return merged; + }, + [] as typeof gpus + ); + return mergedGpus.map((gpu) => { + const max = gpu.max ?? 0; + const inUse = gpu.inUse ?? 0; + const available = max - inUse; + const fee = gpuFees[gpu.id] ?? 0; + if (compact) { + return ( +
+ +
+ {fee} {tokenSymbol}/min +
+
+ + {available}/{max} + +  available +
+
+ ); + } + const percentage = (100 * inUse) / max; + return ( + } + topRightContent={ + + {max} total + + } + bottomLeftContent={ + + {fee} {tokenSymbol}/min + + } + bottomRightContent={ + + {inUse} used + + } + /> + ); + }); + }; + + const getRamProgressBar = () => { + if (!ram) { + return null; + } + const max = ram.max ?? 0; + const inUse = ram.inUse ?? 0; + const available = max - inUse; + const fee = ramFee ?? 0; + if (compact) { + return ( +
+
+ + GB RAM capacity +
+
+ {fee} {tokenSymbol}/min +
+
+ + {available}/{max} + +  available +
+
+ ); + } + const percentage = (100 * inUse) / max; + return ( + + RAM capacity + + } + topRightContent={ + + {max} GB total + + } + bottomLeftContent={ + + {fee} {tokenSymbol}/min + + } + bottomRightContent={ + + {inUse} GB used + + } + /> + ); + }; + + const getDiskProgressBar = () => { + if (!disk) { + return null; + } + const max = disk.max ?? 0; + const inUse = disk.inUse ?? 0; + const available = max - inUse; + const fee = diskFee ?? 0; + if (compact) { + return ( +
+
+ + GB Disk space +
+
+ {fee} {tokenSymbol}/min +
+
+ + {available}/{max} + +  available +
+
+ ); + } + const percentage = (100 * inUse) / max; + return ( + + Disk space + + } + topRightContent={ + + {max} GB total + + } + bottomLeftContent={ + + {fee} {tokenSymbol}/min + + } + bottomRightContent={ + + {inUse} GB used + + } + /> + ); + }; + + return ( + +
+ {compact ? ( +
+ {getGpuProgressBars()} + {getCpuProgressBar()} + {getRamProgressBar()} + {getDiskProgressBar()} +
+ ) : gpus.length === 1 ? ( + <> +

Specs

+
+ {getGpuProgressBars()} + {getCpuProgressBar()} + {getRamProgressBar()} + {getDiskProgressBar()} +
+ + ) : ( + <> +

GPUs

+
{getGpuProgressBars()}
+

Other specs

+
+ {getCpuProgressBar()} + {getRamProgressBar()} + {getDiskProgressBar()} +
+ + )} +
+
+
+
+ Job duration:  + + {formatNumber(minJobDurationHours)} - {formatNumber(maxJobDurationHours)} + +  hours +
+ {showNodeName ? ( +
+ Node:{' '} + + {nodeInfo.friendlyName ?? nodeInfo.id} + +
+ ) : null} +
+
+ {environment.free ? ( + + ) : null} + +
+
+
+ ); +}; + +export default EnvironmentCard; diff --git a/src/components/gpu-label/gpu-label.module.css b/src/components/gpu-label/gpu-label.module.css new file mode 100644 index 00000000..b080b259 --- /dev/null +++ b/src/components/gpu-label/gpu-label.module.css @@ -0,0 +1,9 @@ +.root { + align-items: center; + display: inline-flex; + gap: 8px; + + .icon { + width: auto; + } +} diff --git a/src/components/gpu-label/gpu-label.tsx b/src/components/gpu-label/gpu-label.tsx new file mode 100644 index 00000000..708d86c9 --- /dev/null +++ b/src/components/gpu-label/gpu-label.tsx @@ -0,0 +1,46 @@ +import AmdLogo from '@/assets/icons/gpu-manufacturers/amd.svg'; +import IntelLogo from '@/assets/icons/gpu-manufacturers/intel.svg'; +import NvidiaLogo from '@/assets/icons/gpu-manufacturers/nvidia.svg'; +import classNames from 'classnames'; +import styles from './gpu-label.module.css'; + +type GpuLabelProps = { + className?: string; + gpu?: string; + iconHeight?: number; +}; + +const GpuLabel = ({ className, gpu, iconHeight = 14 }: GpuLabelProps) => { + if (!gpu) { + return null; + } + + const getLogo = () => { + const lowercaseGpu = gpu.toLowerCase(); + + const iconProps = { + className: styles.icon, + style: { height: `${iconHeight}px` }, + }; + + if (lowercaseGpu.startsWith('nvidia')) { + return ; + } + if (lowercaseGpu.startsWith('amd')) { + return ; + } + if (lowercaseGpu.startsWith('intel')) { + return ; + } + return null; + }; + + return ( +
+ {getLogo()} + {gpu} +
+ ); +}; + +export default GpuLabel; diff --git a/src/components/homepage/docs-cta-section.module.css b/src/components/homepage/docs-cta-section.module.css new file mode 100644 index 00000000..fc198568 --- /dev/null +++ b/src/components/homepage/docs-cta-section.module.css @@ -0,0 +1,188 @@ +@keyframes float { + from { + transform: translate3d(0, 0, 0); + } + + 50% { + transform: translate3d(0, -6px, 0); + } + + to { + transform: translate3d(0, 0, 0); + } +} + +.root { + position: relative; + padding: 140px 0 120px; + background: #f8fbff; + color: #021e42; + overflow: hidden; +} + +.root::before { + content: ''; + position: absolute; + inset: 0; + background: url('/build-the-future.svg') no-repeat left center; + background-size: min(680px, 60%); + pointer-events: none; +} + +.root::after { + content: ''; + position: absolute; + inset: 0; + /* background: linear-gradient(115deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.65) 50%, rgba(255, 255, 255, 0)); */ + pointer-events: none; +} + +.container { + position: relative; + z-index: 1; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + gap: 40px; +} + +.title { + font-family: var(--font-orbitron), sans-serif; + font-weight: 700; + font-style: normal; + font-size: clamp(42px, 5vw, 56px); + line-height: clamp(46px, 5.4vw, 60px); + letter-spacing: 0.02em; + text-transform: capitalize; + max-width: 780px; + margin: 0; +} + +.docsButton { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 12px; + padding: 18px 46px; + border-radius: 999px; + background: #009bff; + color: #ffffff; + font-family: var(--font-orbitron), sans-serif; + font-weight: 700; + font-size: 20px; + line-height: 22px; + letter-spacing: 0; + text-transform: capitalize; + vertical-align: middle; + box-shadow: 0 18px 40px rgba(0, 114, 255, 0.35); + transition: + transform 0.2s ease, + box-shadow 0.2s ease; +} + +.docsButton:hover { + transform: translateY(-3px); + box-shadow: 0 22px 48px rgba(0, 114, 255, 0.45); +} + +.docsButton:active { + transform: translateY(0); +} + +.buttonIcon { + font-size: 22px; + line-height: 1; + animation: float 2.6s ease-in-out infinite; +} + +.socialLinks { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; + gap: 28px; +} + +.socialLink { + display: inline-flex; + gap: 12px; + align-items: center; + color: #be00ff; + font-family: var(--font-inter), sans-serif; + font-style: normal; + font-weight: 700; + font-size: 20px; + line-height: 22px; + text-transform: capitalize; + transition: + transform 0.2s ease, + color 0.2s ease; +} + +.socialLink:hover { + transform: translateY(-4px); + color: #f066ff; +} + +.socialLinkIcon { + width: 28px; + height: 28px; + display: inline-block; + background-color: currentColor; +} + +.discordIcon { + -webkit-mask: url('/icons/discord.svg') no-repeat center/contain; + mask: url('/icons/discord.svg') no-repeat center/contain; +} + +.xIcon { + -webkit-mask: url('/icons/x.svg') no-repeat center/contain; + mask: url('/icons/x.svg') no-repeat center/contain; +} + +@media (max-width: 900px) { + .root { + padding: 110px 0 90px; + } + + .root::before { + background-position: top left; + background-size: 320px; + opacity: 0.65; + } + + .container { + gap: 32px; + } + + .docsButton { + padding: 16px 36px; + } +} + +@media (max-width: 600px) { + .root::before { + background-position: top -40px left -40px; + background-size: 280px; + } + + .root::after { + background: linear-gradient( + 125deg, + rgba(255, 255, 255, 0.96), + rgba(255, 255, 255, 0.72) 45%, + rgba(255, 255, 255, 0) + ); + } + + .docsButton { + width: 100%; + max-width: 320px; + } + + .socialLinks { + gap: 20px; + } +} diff --git a/src/components/homepage/docs-cta-section.tsx b/src/components/homepage/docs-cta-section.tsx new file mode 100644 index 00000000..1bd57742 --- /dev/null +++ b/src/components/homepage/docs-cta-section.tsx @@ -0,0 +1,32 @@ +import config, { getRoutes } from '@/config'; +import Link from 'next/link'; +import Container from '../container/container'; +import styles from './docs-cta-section.module.css'; + +const DocsCtaSection = () => { + const routes = getRoutes(); + + return ( +
+ +

Build The Future Of AI With Decentralized Compute

+ + Explore Docs + â–¸ + +
+ + Join Discord + + + + Follow On + + +
+
+
+ ); +}; + +export default DocsCtaSection; diff --git a/src/components/homepage/features.module.css b/src/components/homepage/features.module.css new file mode 100644 index 00000000..30bd6048 --- /dev/null +++ b/src/components/homepage/features.module.css @@ -0,0 +1,117 @@ +.root { + background-color: #040a12; + padding: 60px 50px; + position: relative; + overflow: hidden; +} + +.root::before, +.root::after { + content: ''; + position: absolute; + inset: 0; + pointer-events: none; + background-repeat: no-repeat; + background-size: 70%; + opacity: 0.45; +} + +.root::before { + background-image: url('/circuit-left.svg'); + background-position: left 0; +} + +.root::after { + background-image: url('/circuit-right.svg'); + background-position: right 60%; +} + +.featuresWrapper { + margin-top: 50px; + display: flex; + flex-wrap: wrap; + gap: 20px; +} + +.featureItem { + box-sizing: border-box; + background-color: rgba(0, 153, 255, 0.16); + padding: 24px; + border-radius: 40px; + border: 1px solid rgba(0, 153, 255, 0.16); + backdrop-filter: blur(10px); + display: flex; + align-items: center; + gap: 10px; +} + +.featureItemBlue { + background-color: #009bff; + border-color: #009bff; +} + +.featuresWrapper > *:nth-child(4n + 1) { + flex: 0 0 calc(66% - 20px); +} + +.featuresWrapper > *:nth-child(4n + 2), +.featuresWrapper > *:nth-child(4n + 3) { + flex: 0 0 calc(34% - 20px); +} + +.featuresWrapper > *:nth-child(4n + 4) { + flex: 0 0 calc(66% - 20px); +} + +.featureTextWrapper { + display: flex; + flex-direction: column; + gap: 8px; +} + +@media (max-width: 1100px) { + .root { + padding: 50px 40px; + } + + .featuresWrapper > *:nth-child(4n + 1), + .featuresWrapper > *:nth-child(4n + 2), + .featuresWrapper > *:nth-child(4n + 3), + .featuresWrapper > *:nth-child(4n + 4) { + flex: 1 1 calc(50% - 20px); + } +} + +@media (max-width: 768px) { + .root { + padding: 40px 24px; + } + + .featureItem { + border-radius: 28px; + } + + .featuresWrapper { + gap: 16px; + } + + .featuresWrapper > *:nth-child(4n + 1), + .featuresWrapper > *:nth-child(4n + 2), + .featuresWrapper > *:nth-child(4n + 3), + .featuresWrapper > *:nth-child(4n + 4) { + flex: 1 1 100%; + } +} + +@media (max-width: 480px) { + .root { + padding: 32px 18px; + } + + .featureItem { + padding: 20px; + flex-direction: column; + align-items: flex-start; + gap: 14px; + } +} diff --git a/src/components/homepage/features.tsx b/src/components/homepage/features.tsx new file mode 100644 index 00000000..c4db4630 --- /dev/null +++ b/src/components/homepage/features.tsx @@ -0,0 +1,86 @@ +import BoxIcon from '@/assets/icons/box.svg'; +import CreditCardIcon from '@/assets/icons/credit-card.svg'; +import GlobeIcon from '@/assets/icons/globe.svg'; +import LockIcon from '@/assets/icons/lock.svg'; +import PlayIcon from '@/assets/icons/play.svg'; +import ShieldIcon from '@/assets/icons/shield.svg'; +import SliderIcon from '@/assets/icons/slider.svg'; +import UsersIcon from '@/assets/icons/users.svg'; +import cx from 'classnames'; +import Container from '../container/container'; +import SectionTitle from '../section-title/section-title'; +import styles from './features.module.css'; + +const features: { + title: string; + description: string; + icon: JSX.Element; + isBlue?: boolean; +}[] = [ + { + title: 'Pay-as-you-go', + description: + 'Only pay for the compute you use. You are not billed while idle and you are not locked into a fixed instance.', + icon: , + }, + { + title: 'Ease of use', + description: 'Launch from VS Code. Clear logs and status in one place.', + icon: , + isBlue: true, + }, + { + title: 'Container-Based', + description: 'Bring your own container or use templates. Reproducible runs and consistent results.', + icon: , + isBlue: true, + }, + { + title: 'Maximum flexibility', + description: 'You are not constrained to preset CPU/GPU/RAM bundles. Choose the resources you need.', + icon: , + }, + { + title: 'Security', + description: 'Isolated execution, signed attestations, on-chain provenance for jobs when applicable.', + icon: , + }, + { + title: 'Inclusive by design', + description: 'We support both high-end rigs and smaller operators. Everyone can participate.', + icon: , + isBlue: true, + }, + { + title: 'Privacy-first jobs', + description: 'Run algorithms where data lives. Raw data stays private and never leaves its source.', + icon: , + isBlue: true, + }, + { + title: 'Global GPU/CPU pool', + description: 'Access diverse hardware across the network to match your budget and performance needs.', + icon: , + }, +]; + +export default function FeaturesSection() { + return ( +
+ + +
+ {features.map((item) => ( +
+
{item.icon}
+
+

{item.title}

+

{item.description}

+
+
+ ))} +
+
+
+ ); +} diff --git a/src/components/homepage/footer-section.module.css b/src/components/homepage/footer-section.module.css new file mode 100644 index 00000000..5dcd4875 --- /dev/null +++ b/src/components/homepage/footer-section.module.css @@ -0,0 +1,201 @@ +.root { + position: relative; + padding: 110px 0 60px; + background-color: #030713; + color: #e7f1ff; + overflow: hidden; +} + +.background { + position: absolute; + inset: 0; + background: url('/footer.svg') no-repeat right 40px top 30px; + background-size: min(620px, 65%); + opacity: 0.45; + pointer-events: none; +} + +.container { + position: relative; + display: flex; + flex-direction: column; + gap: 60px; + z-index: 1; +} + +.upperRow { + display: flex; + flex-wrap: wrap; + gap: 48px; + justify-content: space-between; + align-items: flex-start; +} + +.brandColumn { + flex: 1 1 320px; + max-width: 520px; + display: flex; + flex-direction: column; + gap: 20px; +} + +.brandHeading { + display: flex; + align-items: center; + gap: 20px; +} + +.brandTitleGroup { + display: flex; + flex-direction: column; + gap: 4px; +} + +.brandTitle { + font-size: 24px; + font-family: var(--font-orbitron), var(--font-inter), sans-serif; + text-transform: uppercase; + letter-spacing: 0.05em; +} + +.brandSubtitle { + font-size: 14px; + text-transform: uppercase; + color: rgba(231, 241, 255, 0.55); + letter-spacing: 0.18em; +} + +.description { + font-size: 15px; + line-height: 1.7; + color: rgba(231, 241, 255, 0.75); + max-width: 400px; +} + +.copy { + font-size: 13px; + color: rgba(231, 241, 255, 0.6); +} + +.copy a { + color: #4fb2ff; +} + +.pagesColumn { + flex: 0 0 220px; + display: flex; + flex-direction: column; + gap: 24px; + text-transform: uppercase; +} + +.columnTitle { + font-size: 16px; + font-family: var(--font-orbitron), var(--font-inter), sans-serif; + letter-spacing: 0.18em; +} + +.pagesList { + list-style: none; + display: flex; + flex-direction: column; + gap: 12px; + padding: 0; + margin: 0; +} + +.pageLink { + color: rgba(231, 241, 255, 0.75); + font-size: 15px; + font-family: var(--font-inter), sans-serif; + letter-spacing: 0.08em; + transition: + color 0.2s ease, + transform 0.2s ease; +} + +.pageLink:hover { + color: #ffffff; + transform: translateX(4px); +} + +.lowerRow { + display: flex; + flex-wrap: wrap; + gap: 20px; + justify-content: space-between; + align-items: center; + font-size: 13px; + letter-spacing: 0.12em; + text-transform: uppercase; + color: rgba(231, 241, 255, 0.6); +} + +.socialLinks, +.legalLinks { + display: flex; + gap: 24px; + flex-wrap: wrap; +} + +.socialLinks { + flex: 1 1 320px; +} + +.legalLinks { + flex: 0 0 220px; + justify-content: flex-end; + text-align: right; +} + +.socialLinks a, +.legalLink { + color: inherit; + transition: color 0.2s ease; +} + +.socialLinks a:hover, +.legalLink:hover { + color: #ffffff; +} + +@media (max-width: 960px) { + .root { + padding: 90px 0 40px; + } + + .container { + gap: 48px; + } + + .brandHeading { + align-items: flex-start; + } +} + +@media (max-width: 640px) { + .upperRow { + flex-direction: column; + gap: 36px; + } + + .pagesColumn { + flex: 1 1 auto; + } + + .lowerRow { + flex-direction: column; + align-items: flex-start; + gap: 16px; + } + + .socialLinks { + flex: unset; + } + + .legalLinks { + flex: unset; + justify-content: flex-start; + text-align: left; + } +} diff --git a/src/components/homepage/footer-section.tsx b/src/components/homepage/footer-section.tsx new file mode 100644 index 00000000..fc16e3c3 --- /dev/null +++ b/src/components/homepage/footer-section.tsx @@ -0,0 +1,84 @@ +import Logo from '@/assets/logo.svg'; +import Container from '@/components/container/container'; +import config, { getLinks, getRoutes } from '@/config'; +import Link from 'next/link'; +import styles from './footer-section.module.css'; + +const FooterSection = () => { + const currentYear = new Date().getFullYear(); + const links = getLinks(); + const routes = getRoutes(); + + const pageKeys = ['runJob', 'stats', 'docs', 'leaderboard', 'runNode'] as const; + + return ( +
+
+ +
+
+
+ +
+ Ocean Network +
+
+

+ Keep your data, jobs, and infrastructure secure while tapping into a global network of decentralized + compute. +

+

+ © {currentYear} All Rights Reserved. Powered by{' '} + + Ocean Network + + . +

+
+
+ Pages +
    + {pageKeys.map((key) => { + const route = routes[key]; + if (!route) { + return null; + } + + return ( +
  • + + {route.name} + +
  • + ); + })} +
+
+
+ +
+
+ ); +}; + +export default FooterSection; diff --git a/src/components/homepage/hero-section.module.css b/src/components/homepage/hero-section.module.css new file mode 100644 index 00000000..123f7867 --- /dev/null +++ b/src/components/homepage/hero-section.module.css @@ -0,0 +1,128 @@ +.root { + position: relative; + --nav-overlap: 120px; + margin-top: calc(var(--nav-overlap) * -1); + padding: calc(140px + var(--nav-overlap)) 0 120px; + overflow: hidden; +} + +.title { + font-size: 88px; + line-height: 1; + margin: 0; +} + +.title span { + color: #009bff; +} + +.relative { + position: relative; +} + +.titleWrapper { + display: flex; + gap: 15px; + flex-direction: column; + align-items: flex-start; + margin-bottom: 15px; +} + +.subTitle { + font-size: 24px; + max-width: 580px; +} + +.actionsAndTextWrapper { + display: flex; + align-items: flex-end; + justify-content: space-between; + gap: 40px; +} + +.actions { + display: flex; + gap: 10px; + justify-content: flex-start; +} + +.textBadge { + font-size: 70px; + text-align: right; + line-height: 1; + font-family: var(--font-orbitron), var(--font-inter), sans-serif; +} + +.textBadge span { + color: #009bff; +} + +@media (max-width: 1200px) { + .title { + font-size: 72px; + } + + .textBadge { + font-size: 60px; + } +} + +@media (max-width: 992px) { + .root { + --nav-overlap: 100px; + padding: calc(110px + var(--nav-overlap)) 0 90px; + } + + .title { + font-size: 64px; + } + + .subTitle { + font-size: 22px; + } + + .textBadge { + font-size: 52px; + } +} + +@media (max-width: 768px) { + .root { + --nav-overlap: 90px; + padding: calc(100px + var(--nav-overlap)) 0 80px; + } + + .actionsAndTextWrapper { + flex-direction: column; + align-items: flex-start; + gap: 30px; + } + + .actions { + flex-wrap: wrap; + } + + .textBadge { + text-align: left; + } +} + +@media (max-width: 640px) { + .title { + font-size: 48px; + } + + .subTitle { + font-size: 18px; + } + + .actions { + width: 100%; + flex-direction: column; + gap: 12px; + } + + .textBadge { + font-size: 42px; + } +} diff --git a/src/components/homepage/hero-section.tsx b/src/components/homepage/hero-section.tsx new file mode 100644 index 00000000..e97ccd9b --- /dev/null +++ b/src/components/homepage/hero-section.tsx @@ -0,0 +1,36 @@ +import Button from '../button/button'; +import Container from '../container/container'; +import styles from './hero-section.module.css'; +import LogoSlider from './logo-slider'; + +export default function HeroSection() { + return ( +
+ +
+

+ Global
+ Compute
+ Power +

+
+ Keep control of your data, jobs & infrastructure on a decentralized compute network. +
+
+
+
+ + +
+
+ ONE
+ NETWORK +
+
+
+ +
+ ); +} diff --git a/src/components/Pages/Homepage/style.module.css b/src/components/homepage/homepage.module.css similarity index 98% rename from src/components/Pages/Homepage/style.module.css rename to src/components/homepage/homepage.module.css index 163fc8bf..e0f3687b 100644 --- a/src/components/Pages/Homepage/style.module.css +++ b/src/components/homepage/homepage.module.css @@ -1,7 +1,6 @@ .root { display: flex; flex-direction: column; - gap: 100px; } @media (max-width: 768px) { diff --git a/src/components/homepage/homepage.tsx b/src/components/homepage/homepage.tsx new file mode 100644 index 00000000..b69b2ee2 --- /dev/null +++ b/src/components/homepage/homepage.tsx @@ -0,0 +1,18 @@ +import DocsCtaSection from '@/components/homepage/docs-cta-section'; +import FeaturesSection from './features'; +import HeroSection from './hero-section'; +import styles from './homepage.module.css'; +import HowItWorksSection from './how-it-works'; +import LeaderboardSection from './leaderboard'; + +export default function HomePage() { + return ( +
+ + + + + +
+ ); +} diff --git a/src/components/homepage/how-it-works.module.css b/src/components/homepage/how-it-works.module.css new file mode 100644 index 00000000..aaeb8f2a --- /dev/null +++ b/src/components/homepage/how-it-works.module.css @@ -0,0 +1,139 @@ +.root { + background-color: #040a12; + padding: 60px 50px; + position: relative; + z-index: 2; +} + +.twoSections { + display: flex; + gap: 50px; + justify-content: center; + margin-top: 50px; +} + +.featuresWrapper { + display: flex; + flex-direction: column; + gap: 40px; + flex: 1; +} + +.animation { + position: relative; + width: 568px; + height: 538px; + overflow: hidden; + border-radius: 32px; +} + +.animation img { + width: 100%; + height: auto; + display: block; + border-radius: 32px; +} + +.animation video { + width: 100%; + height: 100%; + display: block; + border-radius: 32px; + object-fit: cover; + object-position: 50% 30%; +} + +.featureItem { + display: flex; + gap: 16px; + align-items: flex-start; + color: rgba(255, 255, 255, 0.4); + transition: 0.2s all ease-in-out; +} + +.featureItem:hover { + color: rgba(255, 255, 255, 1); +} + +.featureItemActive { + color: rgba(255, 255, 255, 1); +} + +.featureItem:hover .indexNumber { + color: #be00ff; +} + +.featureItemActive .indexNumber { + color: #be00ff; +} + +.indexNumber { + font-family: var(--font-orbitron), var(--font-inter), sans-serif; + font-size: 18px; + transition: 0.2s all ease-in-out; + font-weight: bold; +} + +.featureTextWrapper { + display: flex; + flex-direction: column; + gap: 3px; +} + +@media (max-width: 1100px) { + .root { + padding: 50px 40px; + } + + .twoSections { + gap: 32px; + } +} + +@media (max-width: 900px) { + .twoSections { + flex-direction: column; + align-items: stretch; + } + + .animation { + align-self: center; + width: 90vw; + max-width: 568px; + height: calc(90vw * 538 / 568); + } +} + +@media (max-width: 768px) { + .root { + padding: 40px 24px; + } + + .featuresWrapper { + gap: 28px; + } + + .featureItem { + gap: 12px; + } + + .animation { + width: 92vw; + max-width: 520px; + height: calc(92vw * 538 / 568); + } +} + +@media (max-width: 480px) { + .root { + padding: 32px 18px; + } + + .twoSections { + margin-top: 36px; + } + + .indexNumber { + font-size: 16px; + } +} diff --git a/src/components/homepage/how-it-works.tsx b/src/components/homepage/how-it-works.tsx new file mode 100644 index 00000000..5724628c --- /dev/null +++ b/src/components/homepage/how-it-works.tsx @@ -0,0 +1,70 @@ +import { useVideoScroll } from '../../hooks/useVideoScroll'; +import Container from '../container/container'; +import SectionTitle from '../section-title/section-title'; +import styles from './how-it-works.module.css'; + +const itemsList: { + title: string; + description: string; +}[] = [ + { + title: 'Select Environment', + description: 'Use the Smart Compute Wizard to filter by GPU/CPU, RAM, storage, location, and price.', + }, + { + title: 'Define Resources', + description: 'Pick container or template, set params and limits.', + }, + { + title: 'Fund the Job', + description: 'Allocate funds in escrow. See a clear cost estimate before launch.', + }, + { + title: 'Maximum flexibility', + description: 'You are not constrained to preset CPU/GPU/RAM bundles. Choose the resources you need.', + }, + { + title: 'Run Job', + description: 'Execution on Ocean Nodes with live status and logs.', + }, + { + title: 'Get Results', + description: 'Outputs are returned. Raw data remains private.', + }, +]; + +const videoSrc = '/globe_how-it-works.mp4'; +const posterSrc = '/banner-how-it-works.png'; + +export default function HowItWorksSection() { + const { sectionRef, videoRef, activeIndex } = useVideoScroll({ + numSteps: itemsList.length, + }); + + return ( +
+ + +
+
+ {itemsList.map((item, index) => ( +
+
0{index + 1}
+
+

{item.title}

+

{item.description}

+
+
+ ))} +
+
+
+
+
+
+ ); +} diff --git a/src/components/homepage/leaderboard.module.css b/src/components/homepage/leaderboard.module.css new file mode 100644 index 00000000..81ef65c6 --- /dev/null +++ b/src/components/homepage/leaderboard.module.css @@ -0,0 +1,151 @@ +.loader { + display: flex; + justify-content: center; + align-items: center; + height: 100px; + font-size: 1.2rem; + color: #888; +} + +.root { + padding: 60px 50px; + background-color: var(--black-900); + position: relative; + overflow: hidden; +} + +.root::before { + content: ''; + position: absolute; + inset: 0; + background: url('/circuit.svg') center/cover no-repeat; + opacity: 0.25; + pointer-events: none; +} + +.relative { + position: relative; +} + +.leaderboardWrapper { + margin-top: 50px; + display: flex; + flex-direction: column; + align-items: center; + gap: 10px; + position: relative; + z-index: 1; +} + +.tableScroll { + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +.tableLine { + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); + padding: 25px 0; + align-items: center; + gap: 12px; + width: 100%; + min-width: 600px; +} + +.tableHeader { + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.08em; + font-size: 13px; + color: rgba(225, 241, 255, 0.75); +} + +.tableCell { + font-size: 15px; + color: rgba(225, 241, 255, 0.9); +} + +.tableValue { + display: inline-block; +} + +.tableLine:not(:last-child) { + border-bottom: 1px solid rgba(0, 153, 255, 0.4); +} + +.leaderboardFooter { + margin-top: 32px; + display: flex; + justify-content: center; +} + +.viewButton { + display: inline-flex; + flex-direction: row; + align-items: center; + justify-content: center; + gap: 8px; + padding: 16px 32px; + min-width: 218px; + font-family: var(--font-inter), sans-serif; + font-weight: 700; + font-size: 20px; + line-height: 22px; + letter-spacing: 0; + text-transform: capitalize; + vertical-align: middle; + background: #ffffff; + color: #030713; + border-radius: 999px; + text-decoration: none; + transition: + transform 0.2s ease, + box-shadow 0.2s ease; +} + +.viewButton:hover { + transform: translateY(-2px); + box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25); +} + +@media (max-width: 1100px) { + .root { + padding: 50px 40px; + } + + .leaderboardWrapper { + padding: 32px; + } +} + +@media (max-width: 768px) { + .root { + padding: 40px 24px; + } + + .leaderboardWrapper { + padding: 28px 22px; + } +} + +@media (max-width: 480px) { + .root { + padding: 32px 18px; + } + + .leaderboardWrapper { + border-radius: 28px; + padding: 24px 18px; + } + + .tableLine { + gap: 12px 16px; + } + + .viewButton { + width: 100%; + text-align: center; + justify-content: center; + } +} diff --git a/src/components/homepage/leaderboard.tsx b/src/components/homepage/leaderboard.tsx new file mode 100644 index 00000000..d6c8747e --- /dev/null +++ b/src/components/homepage/leaderboard.tsx @@ -0,0 +1,149 @@ +import Card from '@/components/card/card'; +import { getApiRoute, getRoutes } from '@/config'; +import { Node } from '@/types'; +import axios from 'axios'; +import Link from 'next/link'; +import { useCallback, useEffect, useMemo, useState } from 'react'; +import Container from '../container/container'; +import SectionTitle from '../section-title/section-title'; +import styles from './leaderboard.module.css'; + +type LeaderboardItem = { + nodeId: string; + gpuCpu: string; + benchScore: number; + jobsCompleted: number; + revenue: string; +}; + +const columns: { key: keyof LeaderboardItem; label: string }[] = [ + { key: 'nodeId', label: 'Node ID' }, + { key: 'gpuCpu', label: 'GPU/CPU' }, + { key: 'benchScore', label: 'Bench Score' }, + { key: 'jobsCompleted', label: 'Jobs Completed' }, + { key: 'revenue', label: 'Revenue' }, +]; + +export default function LeaderboardSection() { + const routes = getRoutes(); + const [topNodes, setTopNodes] = useState([]); + const [isLoading, setIsLoading] = useState(true); + + async function fetchNodeJobStats(nodeId: string) { + const result = await axios.get(`${getApiRoute('nodeStats')}/${nodeId}/stats`); + + return { ...result.data, nodeId }; + } + + const fetchData = useCallback(async () => { + setIsLoading(true); + try { + const response = await axios.get( + `${getApiRoute('nodes')}?page=0&size=3&sort={"latestBenchmarkResults.gpuScore":"desc"}` + ); + const sanitizedData = response.data.nodes.map((element: any) => element._source); + + const promises = []; + for (const node of sanitizedData) { + promises.push(fetchNodeJobStats(node.id)); + } + const results = await Promise.all(promises); + results.forEach((result) => { + const currentNodeIndex = sanitizedData.findIndex((item: Node) => item.id === result.nodeId); + sanitizedData[currentNodeIndex] = { + ...sanitizedData[currentNodeIndex], + totalJobs: result.totalJobs, + totalRevenue: result.totalRevenue, + }; + }); + + setTopNodes(sanitizedData); + } catch (error) { + console.log(error); + setIsLoading(false); + } finally { + setIsLoading(false); + } + }, []); + + useEffect(() => { + let mounted = true; + const controller = new AbortController(); + + const fetchAllData = async () => { + if (!mounted) return; + try { + await fetchData(); + } catch (error) { + console.error('Error fetching initial leaderboard data:', error); + } finally { + if (mounted) { + // setOverallDashboardLoading(false); + } + } + }; + + fetchAllData(); + + return () => { + mounted = false; + controller.abort(); + }; + }, [fetchData]); + + function formatNodeGPUCPU(node: Node) { + if (node.gpus) { + return node.gpus.map((gpu) => `${gpu.vendor} ${gpu.name}`).join(', '); + } else if (node.cpus) { + return node.cpus.map((cpu) => cpu.model).join(', '); + } + return '-'; + } + + const itemsList: LeaderboardItem[] = useMemo( + () => + topNodes.map((node) => ({ + nodeId: node.friendlyName ?? node.id ?? '-', + gpuCpu: formatNodeGPUCPU(node), + benchScore: node.latestBenchmarkResults.gpuScore, + jobsCompleted: node.totalJobs, + revenue: `USDC ${node.totalRevenue.toFixed(2)}`, + })), + [topNodes] + ); + + return ( +
+ + + +
+ {columns.map((column) => ( +
+ {column.label} +
+ ))} +
+ {isLoading ? ( +
Loading...
+ ) : ( + itemsList.map((item, index) => ( +
+ {columns.map((column) => ( +
+ {item[column.key]} +
+ ))} +
+ )) + )} +
+
+ + View Full Leaderboard + +
+
+
+ ); +} diff --git a/src/components/homepage/logo-slider.module.css b/src/components/homepage/logo-slider.module.css new file mode 100644 index 00000000..4a9548dd --- /dev/null +++ b/src/components/homepage/logo-slider.module.css @@ -0,0 +1,112 @@ +.root { + position: relative; + overflow: hidden; + -webkit-mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent); + mask-image: linear-gradient(to right, transparent, #000 10%, #000 90%, transparent); + margin: 120px 0 50px; +} + +.marquee { + --gap: 2rem; + --duration: 20s; +} + +.track { + display: inline-flex; + align-items: center; + gap: var(--gap); + white-space: nowrap; + will-change: transform; + animation: scroll var(--duration) linear infinite; +} + +@keyframes scroll { + from { + transform: translateX(0); + } + to { + transform: translateX(-50%); + } +} + +.sliderItem { + display: inline-flex; + align-items: center; + gap: 0.75rem; + padding: 0.5rem 1rem; +} + +.logoWrapper { + display: grid; + place-items: center; + width: 80px; + height: 80px; + flex: 0 0 auto; +} + +.logoImage { + width: 80px; + height: 80px; + object-fit: cover; + border-radius: 9999px; + background-color: white; +} + +.name { + font-size: 20px; + font-weight: bold; + white-space: nowrap; +} + +/* .root:hover .track { + animation-play-state: paused; +} */ + +@media (prefers-reduced-motion: reduce) { + .track { + animation: none; + } +} + +@media (max-width: 900px) { + .root { + margin: 90px 0 40px; + -webkit-mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); + mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent); + } + + .marquee { + --gap: 1.5rem; + } + + .logoWrapper, + .logoImage { + width: 64px; + height: 64px; + } + + .name { + font-size: 18px; + } +} + +@media (max-width: 600px) { + .root { + margin: 70px 0 30px; + } + + .marquee { + --gap: 1.25rem; + --duration: 24s; + } + + .logoWrapper, + .logoImage { + width: 52px; + height: 52px; + } + + .name { + font-size: 16px; + } +} diff --git a/src/components/homepage/logo-slider.tsx b/src/components/homepage/logo-slider.tsx new file mode 100644 index 00000000..a3677209 --- /dev/null +++ b/src/components/homepage/logo-slider.tsx @@ -0,0 +1,38 @@ +import Image from 'next/image'; +import styles from './logo-slider.module.css'; + +const sliderItems = [ + { src: '/banner-video.jpg', name: 'Collaborator 1' }, + { src: '/banner-video.jpg', name: 'Collaborator 2' }, + { src: '/banner-video.jpg', name: 'Collaborator 3' }, + { src: '/banner-video.jpg', name: 'Collaborator 4' }, + { src: '/banner-video.jpg', name: 'Collaborator 5' }, + { src: '/banner-video.jpg', name: 'Collaborator 6' }, + { src: '/banner-video.jpg', name: 'Collaborator 7' }, + { src: '/banner-video.jpg', name: 'Collaborator 8' }, + { src: '/banner-video.jpg', name: 'Collaborator 9' }, + { src: '/banner-video.jpg', name: 'Collaborator 10' }, +]; + +export default function LogoSlider() { + const items = [...sliderItems, ...sliderItems]; + + const durationSec = Math.max(12, sliderItems.length * 6); + + return ( +
+
+
+ {items.map((item, idx) => ( +
+
+ +
+
{item.name}
+
+ ))} +
+
+
+ ); +} diff --git a/src/components/hooks/use-env-resources.ts b/src/components/hooks/use-env-resources.ts new file mode 100644 index 00000000..c894b699 --- /dev/null +++ b/src/components/hooks/use-env-resources.ts @@ -0,0 +1,134 @@ +import { CHAIN_ID } from '@/constants/chains'; +import { ComputeEnvironment, ComputeResource } from '@/types/environments'; +import { useMemo } from 'react'; + +type UseEnvResources = { + cpu?: ComputeResource; + cpuFee?: number; + disk?: ComputeResource; + diskFee?: number; + gpus: ComputeResource[]; + gpuFees: Record; + ram?: ComputeResource; + ramFee?: number; + supportedTokens: string[]; +}; + +const useEnvResources = ({ + environment, + freeCompute, + tokenAddress, +}: { + environment: ComputeEnvironment; + freeCompute: boolean; + tokenAddress: string; +}): UseEnvResources => { + const { fees, supportedTokens } = useMemo(() => { + try { + const fees = environment.fees[CHAIN_ID]; + if (!fees) { + return { fees: [], supportedTokens: [] }; + } + const supportedTokens = fees.map((fee) => fee.feeToken); + return { fees, supportedTokens }; + } catch (error) { + console.error('Error processing fees:', error); + return { fees: [], supportedTokens: [] }; + } + }, [environment.fees]); + + const selectedTokenFees = useMemo(() => fees.find((fee) => fee.feeToken === tokenAddress), [fees, tokenAddress]); + + const { cpu, disk, gpus, ram } = useMemo(() => { + try { + let cpu = environment.resources?.find((res) => res.type === 'cpu' || res.id === 'cpu'); + let disk = environment.resources?.find((res) => res.type === 'disk' || res.id === 'disk'); + let gpus = environment.resources?.filter((res) => res.type === 'gpu' || res.id === 'gpu') ?? []; + let ram = environment.resources?.find((res) => res.type === 'ram' || res.id === 'ram'); + if (freeCompute) { + // only keep resources that are available for free compute + // and update their max / inUse values + const freeResources = environment.free?.resources ?? []; + if (cpu) { + const freeCpu = freeResources.find((res) => res.id === cpu!.id); + cpu = freeCpu ? { ...cpu, ...freeCpu } : undefined; + } + if (disk) { + const freeDisk = freeResources.find((res) => res.id === disk!.id); + disk = freeDisk ? { ...disk, ...freeDisk } : undefined; + } + if (ram) { + const freeRam = freeResources.find((res) => res.id === ram!.id); + ram = freeRam ? { ...ram, ...freeRam } : undefined; + } + if (gpus.length > 0) { + const newGpus = []; + for (const gpu of gpus) { + const freeGpu = freeResources.find((res) => res.id === gpu.id); + if (freeGpu) { + newGpus.push({ ...gpu, ...freeGpu }); + } + } + gpus = newGpus; + } + } + return { cpu, disk, gpus, ram }; + } catch (error) { + console.error('Error processing resources:', error); + return { cpu: undefined, disk: undefined, gpus: [], ram: undefined }; + } + }, [environment.free?.resources, environment.resources, freeCompute]); + + const { cpuFee, diskFee, ramFee } = useMemo(() => { + try { + if (freeCompute) { + return { cpuFee: 0, diskFee: 0, ramFee: 0 }; + } + const cpuId = cpu?.id; + const diskId = disk?.id; + const ramId = ram?.id; + const cpuFee = selectedTokenFees?.prices.find((price) => price.id === cpuId)?.price; + const diskFee = selectedTokenFees?.prices.find((price) => price.id === diskId)?.price; + const ramFee = selectedTokenFees?.prices.find((price) => price.id === ramId)?.price; + return { cpuFee, diskFee, ramFee }; + } catch (error) { + console.error('Error processing fees:', error); + return { cpuFee: undefined, diskFee: undefined, ramFee: undefined }; + } + }, [cpu?.id, disk?.id, freeCompute, ram?.id, selectedTokenFees?.prices]); + + const gpuFees = useMemo(() => { + try { + if (freeCompute) { + return {}; + } + const fees: Record = {}; + if (selectedTokenFees) { + const gpuIds = gpus.map((gpu) => gpu.id); + selectedTokenFees.prices + .filter((fee) => gpuIds.includes(fee.id)) + .forEach((fee) => { + fees[fee.id] = fee.price; + }); + } + return fees; + } catch (error) { + console.error('Error processing gpu fees:', error); + return {}; + } + }, [freeCompute, selectedTokenFees, gpus]); + + return { + cpu, + cpuFee, + disk, + diskFee, + gpus, + gpuFees, + ram, + ramFee, + supportedTokens, + }; +}; + +export default useEnvResources; diff --git a/src/components/input/input-wrapper.tsx b/src/components/input/input-wrapper.tsx new file mode 100644 index 00000000..89b8a170 --- /dev/null +++ b/src/components/input/input-wrapper.tsx @@ -0,0 +1,62 @@ +import { styled } from '@mui/material'; + +const StyledRoot = styled('div')<{ disabled?: boolean }>(({ disabled }) => ({ + display: 'flex', + flexDirection: 'column', + gap: 4, + opacity: disabled ? 0.5 : 1, +})); + +const StyledLabelWrapper = styled('div')({ + alignItems: 'end', + display: 'flex', + justifyContent: 'space-between', + padding: '0 16px', +}); + +const StyledLabel = styled('label')({ + fontSize: 14, + fontWeight: 600, + color: 'var(--text-primary)', +}); + +const StyledHint = styled('div')({ + fontSize: 14, + color: 'var(--text-secondary)', +}); + +const StyledFooterHint = styled(StyledHint)({ + padding: '0 16px', +}); + +const StyledErrorText = styled(StyledFooterHint)({ + color: 'var(--error)', +}); + +type InputWrapperProps = { + children: React.ReactNode; + className?: string; + disabled?: boolean; + errorText?: string | string[]; + hint?: string; + label?: string; + topRight?: React.ReactNode; +}; + +const InputWrapper = ({ children, className, disabled, errorText, hint, label, topRight }: InputWrapperProps) => ( + + {label || topRight ? ( + + {label} + {topRight ? {topRight} : null} + + ) : null} + {children} + {hint ? {hint} : null} + {errorText ? ( + {Array.isArray(errorText) ? errorText.join(' | ') : errorText} + ) : null} + +); + +export default InputWrapper; diff --git a/src/components/input/input.tsx b/src/components/input/input.tsx new file mode 100644 index 00000000..ee4ce5d0 --- /dev/null +++ b/src/components/input/input.tsx @@ -0,0 +1,93 @@ +import InputWrapper from '@/components/input/input-wrapper'; +import { styled, TextField } from '@mui/material'; + +const StyledTextField = styled(TextField)<{ custom_size?: 'sm' | 'md'; has_error?: boolean }>( + ({ custom_size, disabled, has_error }) => ({ + background: disabled ? 'transparent' : 'var(--background-glass)', + border: `1px solid var(${has_error ? '--error' : '--border-glass'})`, + borderRadius: 24, + lineHeight: '18px', + + fieldset: { + border: 'none', + }, + + '& .Mui-disabled': { + '-webkit-text-fill-color': 'var(--text-primary)', + }, + + '& .MuiInputBase-root': { + color: 'var(--text-secondary)', + fontFamily: 'var(--font-inter), sans-serif', + }, + + '& .MuiInputBase-input': { + color: 'var(--text-primary)', + fontSize: 16, + lineHeight: '18px', + minHeight: 0, + padding: custom_size === 'sm' ? '4px 16px' : '12px 16px', + }, + }) +); + +type InputProps = { + className?: string; + disabled?: boolean; + endAdornment?: React.ReactNode; + errorText?: string; + hint?: string; + label?: string; + name?: string; + onBlur?: (e: React.FocusEvent) => void; + onChange?: (e: React.ChangeEvent) => void; + placeholder?: string; + size?: 'sm' | 'md'; + startAdornment?: React.ReactNode; + topRight?: React.ReactNode; + type: 'text' | 'password' | 'email' | 'number'; + value?: string | number; +}; + +const Input = ({ + className, + disabled, + endAdornment, + errorText, + hint, + label, + name, + onBlur, + onChange, + placeholder, + size = 'md', + startAdornment, + topRight, + type, + value, +}: InputProps) => ( + + + +); + +export default Input; diff --git a/src/components/input/select.tsx b/src/components/input/select.tsx new file mode 100644 index 00000000..167925b3 --- /dev/null +++ b/src/components/input/select.tsx @@ -0,0 +1,144 @@ +import InputWrapper from '@/components/input/input-wrapper'; +import { Checkbox, ListItemText, Select as MaterialSelect, MenuItem, selectClasses, styled } from '@mui/material'; +import { useMemo } from 'react'; + +const StyledMultipleValueContainer = styled('div')({ + display: 'flex', + flexWrap: 'wrap', + gap: 4, +}); + +const StyledSelect = styled(MaterialSelect)<{ custom_size?: 'sm' | 'md'; has_error?: boolean }>( + ({ custom_size, has_error }) => ({ + background: 'var(--background-glass)', + border: `1px solid var(${has_error ? '--error' : '--border-glass'})`, + borderRadius: 24, + color: 'var(--text-primary)', + fontFamily: 'var(--font-inter), sans-serif', + fontSize: 16, + lineHeight: '18px', + + fieldset: { + border: 'none', + }, + + [`& .${selectClasses.select}`]: { + padding: custom_size === 'sm' ? '4px 16px' : '12px 16px', + minHeight: 0, + + '& > .MuiListItemText-root': { + marginBottom: 0, + marginTop: 0, + + '& > .MuiListItemText-primary': { + lineHeight: custom_size === 'sm' ? '22px' : '24px', + }, + }, + }, + + [`& .${selectClasses.icon}`]: { + color: 'var(--text-secondary)', + position: 'relative', + }, + }) +); + +export type SelectOption = { + label: string; + value: T; +}; + +type SelectProps = { + className?: string; + endAdornment?: React.ReactNode; + errorText?: string | string[]; + fullWidth?: boolean; + hint?: string; + label?: string; + name?: string; + MenuProps?: any; + onBlur?: (e: React.FocusEvent) => void; + options?: SelectOption[]; + renderOption?: (option: SelectOption) => React.ReactNode; + renderSelectedValue?: (label: string) => React.ReactNode; + size?: 'sm' | 'md'; + topRight?: React.ReactNode; +} & ( + | { + multiple?: false; + onChange?: (e: any) => void; + value?: T; + } + | { + multiple: true; + onChange?: (e: any) => void; + value?: T[]; + } +); + +const Select = ({ + className, + endAdornment, + errorText, + hint, + label, + multiple, + name, + MenuProps, + onBlur, + onChange, + options, + renderOption, + renderSelectedValue, + size = 'md', + topRight, + value, +}: SelectProps) => { + const memoizedRenderValue = useMemo<((value: any) => React.ReactNode) | undefined>(() => { + if (multiple) { + const MultiRenderValue = (value: T[]) => ( + + {options + ?.filter((option) => value.includes(option.value)) + .map((option) => ( +
+ {renderSelectedValue?.(option.label) ?? option.label} +
+ ))} +
+ ); + (MultiRenderValue as any).displayName = 'SelectMultiRenderValue'; + return MultiRenderValue as (value: any) => React.ReactNode; + } + return undefined; + }, [multiple, options, renderSelectedValue]); + + return ( + + + {options?.map((option) => ( + + {multiple ? ( + + ) : null} + + + ))} + + + ); +}; + +export default Select; diff --git a/src/components/leaderboard/leaderboard-page.tsx b/src/components/leaderboard/leaderboard-page.tsx new file mode 100644 index 00000000..ba32f98e --- /dev/null +++ b/src/components/leaderboard/leaderboard-page.tsx @@ -0,0 +1,31 @@ +import Card from '@/components/card/card'; +import Container from '@/components/container/container'; +import SectionTitle from '@/components/section-title/section-title'; +import JobsRevenueStats from '@/components/stats/jobs-revenue-stats'; +import { Table } from '@/components/table/table'; +import { TableTypeEnum } from '@/components/table/table-type'; +import { useLeaderboardTableContext } from '@/context/table/leaderboard-table-context'; +import { AnyNode } from '@/types/nodes'; + +const LeaderboardPage = () => { + const leaderboardTableContext = useLeaderboardTableContext(); + + return ( + + +
+ + + + context={leaderboardTableContext} + paginationType="context" + showToolbar + tableType={TableTypeEnum.NODES_LEADERBOARD} + /> + +
+
+ ); +}; + +export default LeaderboardPage; diff --git a/src/components/modal/job-info-modal.tsx b/src/components/modal/job-info-modal.tsx new file mode 100644 index 00000000..2a5cbd29 --- /dev/null +++ b/src/components/modal/job-info-modal.tsx @@ -0,0 +1,63 @@ +import { DownloadLogsButton } from '@/components/button/download-logs-button'; +import { DownloadResultButton } from '@/components/button/download-result-button'; +import EnvironmentCard from '@/components/environment-card/environment-card'; +import Modal from '@/components/modal/modal'; +import { useProfileContext } from '@/context/profile-context'; +import { ComputeJob } from '@/types/jobs'; +import { Stack } from '@mui/material'; +import classNames from 'classnames'; +import { useEffect } from 'react'; +import styles from './modal.module.css'; + +interface JobInfoModalProps { + job: ComputeJob | null; + open: boolean; + onClose: () => void; +} + +export const JobInfoModal = ({ job, open, onClose }: JobInfoModalProps) => { + const { fetchNodeEnv, environment, nodeInfo } = useProfileContext(); + + useEffect(() => { + if (open && job?.environment) { + fetchNodeEnv(job.peerId, job.environment); + } + }, [open, fetchNodeEnv, job]); + + if (!job) return null; + + return ( + +
+
+ +
+
Job ID
+
{job.jobId}
+
+ + {environment && ( +
+
+ Environment +
+ +
+ )} + + + + + +
+
+
+
+ ); +}; diff --git a/src/components/modal/modal.module.css b/src/components/modal/modal.module.css new file mode 100644 index 00000000..fea51954 --- /dev/null +++ b/src/components/modal/modal.module.css @@ -0,0 +1,43 @@ +/* Header */ +.header { + align-items: start; + display: flex; + gap: 24px; + justify-content: space-between; +} + +/* Title */ +.title { + font-size: 20px; + font-weight: 600; + margin: 0; +} + +/* Close Button */ +.closeButton { + align-items: center; + background: transparent; + border: none; + border-radius: 8px; + color: var(--text-secondary); + cursor: pointer; + display: flex; + justify-content: center; + padding: 4px; + position: relative; + right: -8px; + top: -8px; + transition: + color 0.2s, + background-color 0.2s; + + .icon { + height: 16px; + width: 16px; + } +} + +.closeButton:hover { + color: var(--text-primary); + background-color: var(--background-glass); +} diff --git a/src/components/modal/modal.tsx b/src/components/modal/modal.tsx new file mode 100644 index 00000000..48e9d9f1 --- /dev/null +++ b/src/components/modal/modal.tsx @@ -0,0 +1,47 @@ +import CloseIcon from '@mui/icons-material/Close'; +import { Breakpoint, Dialog, styled } from '@mui/material'; +import { ReactNode } from 'react'; +import styles from './modal.module.css'; + +const StyledDialog = styled(Dialog)({ + '& .MuiModal-backdrop': { + backdropFilter: 'var(--backdrop-filter-overlay)', + }, + + '& .MuiDialog-paper': { + background: 'var(--background-modal)', + borderRadius: 24, + boxShadow: 'var(--shadow-dialog), var(--inner-shadow-glass)', + color: 'var(--text-primary)', + display: 'flex', + flexDirection: 'column', + gap: 24, + padding: 24, + }, +}); + +type ModalProps = { + children: ReactNode; + fullWidth?: boolean; + hideCloseButton?: boolean; + isOpen: boolean; + onClose: () => void; + title?: string; + width?: Breakpoint; +}; + +const Modal = ({ children, fullWidth, hideCloseButton, isOpen, onClose, title, width }: ModalProps) => ( + +
+ {title &&

{title}

} + {hideCloseButton ? null : ( + + )} +
+ {children} +
+); + +export default Modal; diff --git a/src/components/node-details/balance.module.css b/src/components/node-details/balance.module.css new file mode 100644 index 00000000..21ee0b21 --- /dev/null +++ b/src/components/node-details/balance.module.css @@ -0,0 +1,35 @@ +.root { + display: flex; + flex-direction: column; + gap: 48px; + + .content { + display: flex; + flex-direction: column; + gap: 24px; + + .heading { + text-align: center; + } + + .list { + display: flex; + flex-direction: column; + gap: 8px; + + .listItem { + align-items: center; + display: flex; + font-size: 18px; + justify-content: space-between; + } + } + } + + .buttons { + align-items: center; + display: flex; + flex-direction: column; + gap: 8px; + } +} diff --git a/src/components/node-details/balance.tsx b/src/components/node-details/balance.tsx new file mode 100644 index 00000000..2ca3cc41 --- /dev/null +++ b/src/components/node-details/balance.tsx @@ -0,0 +1,88 @@ +import { useEffect, useMemo, useState } from 'react'; + +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import GasFeeModal from '@/components/node-details/gas-fee-modal'; +import WithdrawModal from '@/components/node-details/withdraw-modal'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { NodeBalance } from '@/types/nodes'; +import { formatNumber } from '@/utils/formatters'; +import DownloadIcon from '@mui/icons-material/Download'; +import styles from './balance.module.css'; + +interface BalanceProps { + admins: string[]; + peerId: string; +} + +export const Balance = ({ admins, peerId }: BalanceProps) => { + const { account, ocean } = useOceanAccount(); + + const [balances, setBalances] = useState([]); + const [loadingBalance, setLoadingBalance] = useState(false); + const [isGasFeeModalOpen, setIsGasFeeModalOpen] = useState(false); + const [isWithdrawModalOpen, setIsWithdrawModalOpen] = useState(false); + + const isAdmin = useMemo(() => admins.includes(account?.address as string), [admins, account]); + + useEffect(() => { + if (ocean && peerId) { + setLoadingBalance(true); + + ocean.getNodeBalance(peerId).then((res) => { + res.length === 0 ? setBalances([]) : setBalances(res); + setLoadingBalance(false); + }); + } + }, [ocean, peerId]); + + return ( + +
+

Node balance

+
+ {!ocean ? ( +
Connect your wallet to see node balance
+ ) : loadingBalance ? ( +
Fetching data...
+ ) : balances.length >= 1 ? ( + balances.map((balance, index) => ( +
+
{balance.token}
+ {balance.amount && {formatNumber(balance.amount)}} +
+ )) + ) : ( +
No balance
+ )} +
+
+
+ {isAdmin ? ( + <> + + + + ) : null} + setIsGasFeeModalOpen(false)} /> + setIsWithdrawModalOpen(false)} /> +
+
+ ); +}; diff --git a/src/components/node-details/benchmark-jobs.tsx b/src/components/node-details/benchmark-jobs.tsx new file mode 100644 index 00000000..6ce79441 --- /dev/null +++ b/src/components/node-details/benchmark-jobs.tsx @@ -0,0 +1,41 @@ +import Card from '@/components/card/card'; +import { Table } from '@/components/table/table'; +import { TableTypeEnum } from '@/components/table/table-type'; +import { + BenchmarkJobsHistoryTableProvider, + useBenchmarkJobsHistoryTableContext, +} from '@/context/table/benchmark-jobs-history-table-context'; +import { Job } from '@/types/jobs'; +import { useParams } from 'next/navigation'; + +const BenchmarkJobsContent = () => { + const benchmarkJobsHistoryTableContext = useBenchmarkJobsHistoryTableContext(); + + return ( + +

Benchmark jobs history

+ + context={benchmarkJobsHistoryTableContext} + paginationType="context" + showToolbar + tableType={TableTypeEnum.BENCHMARK_JOBS} + /> +
+ ); +}; + +const BenchmarkJobs = () => { + const params = useParams<{ nodeId: string }>(); + + if (!params?.nodeId) { + return null; + } + + return ( + + + + ); +}; + +export default BenchmarkJobs; diff --git a/src/components/node-details/config-modal.module.css b/src/components/node-details/config-modal.module.css new file mode 100644 index 00000000..f2f2663f --- /dev/null +++ b/src/components/node-details/config-modal.module.css @@ -0,0 +1,29 @@ +.modalContent { + display: flex; + flex-direction: column; + gap: 24px; + + .buttons { + display: flex; + flex-wrap: wrap; + flex-direction: row; + gap: 8px; + justify-content: flex-end; + } + + .editorWrapper { + border-radius: 16px; + border: 1px solid var(--border-glass); + max-height: calc(100vh - 300px); + overflow-y: auto; + } + + .fetching { + display: flex; + justify-content: center; + align-items: center; + padding: 40px; + color: var(--text-secondary); + font-style: italic; + } +} diff --git a/src/components/node-details/config-modal.tsx b/src/components/node-details/config-modal.tsx new file mode 100644 index 00000000..3e373df6 --- /dev/null +++ b/src/components/node-details/config-modal.tsx @@ -0,0 +1,66 @@ +import Button from '@/components/button/button'; +import Modal from '@/components/modal/modal'; +import { githubDarkTheme, JsonEditor } from 'json-edit-react'; +import { Dispatch, SetStateAction } from 'react'; +import styles from './config-modal.module.css'; + +type ConfigModalProps = { + isOpen: boolean; + fetchingConfig: boolean; + pushingConfig: boolean; + config: Record; + editedConfig: Record; + setEditedConfig: Dispatch>>; + handlePushConfig: (config: Record) => Promise; + onClose: () => void; +}; + +const ConfigModal = ({ + isOpen, + fetchingConfig, + pushingConfig, + config, + editedConfig, + setEditedConfig, + handlePushConfig, + onClose, +}: ConfigModalProps) => { + return ( + +
+ {fetchingConfig && (!config || Object.keys(config).length === 0) ? ( +
Fetching config...
+ ) : ( +
+
+ typeof value === 'object' && value !== null && Object.keys(value).length === 0} + data={editedConfig} + onUpdate={({ newData }) => setEditedConfig(newData as Record)} + theme={githubDarkTheme} + minWidth="100%" + /> +
+
+ + +
+
+ )} +
+
+ ); +}; + +export default ConfigModal; diff --git a/src/components/node-details/eligibility.module.css b/src/components/node-details/eligibility.module.css new file mode 100644 index 00000000..2a3b6b18 --- /dev/null +++ b/src/components/node-details/eligibility.module.css @@ -0,0 +1,22 @@ +.root { + align-items: center; + display: grid; + gap: 8px; + grid-template-columns: auto 1fr; + + .icon { + color: var(--text-secondary); + font-size: 28px; + } + + .content { + display: flex; + flex-direction: column; + gap: 8px; + grid-column: 2 / span 1; + } + + .button { + align-self: end; + } +} diff --git a/src/components/node-details/eligibility.tsx b/src/components/node-details/eligibility.tsx new file mode 100644 index 00000000..5d502c3a --- /dev/null +++ b/src/components/node-details/eligibility.tsx @@ -0,0 +1,52 @@ +import Card from '@/components/card/card'; +import { NodeBanInfo, NodeEligibility } from '@/types/nodes'; +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; +import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'; +import HighlightOffIcon from '@mui/icons-material/HighlightOff'; +import styles from './eligibility.module.css'; + +type EligibilityProps = { + eligibility: NodeEligibility; + eligibilityCauseStr?: string; + banInfo?: NodeBanInfo; +}; + +const Eligibility = ({ eligibility, eligibilityCauseStr, banInfo }: EligibilityProps) => { + switch (eligibility) { + case NodeEligibility.ELIGIBLE: + return ( + + +

Eligible

+
This node is active and can receive rewards
+
+ ); + case NodeEligibility.NON_ELIGIBLE: + return ( + + +

Not eligible

+
+ This node is active, but does not meet the criteria for receiving rewards + Reason: {eligibilityCauseStr ?? '-'} +
+
+ ); + case NodeEligibility.BANNED: + return ( + + +

Banned

+
+
+ This node is excluded from all operations and rewards +
+ Reason: {banInfo?.reason ?? 'Unknown'} +
+
+
+ ); + } +}; + +export default Eligibility; diff --git a/src/components/node-details/environments.module.css b/src/components/node-details/environments.module.css new file mode 100644 index 00000000..c8136595 --- /dev/null +++ b/src/components/node-details/environments.module.css @@ -0,0 +1,5 @@ +.list { + display: flex; + flex-direction: column; + gap: 16px; +} diff --git a/src/components/node-details/environments.tsx b/src/components/node-details/environments.tsx new file mode 100644 index 00000000..0cf5f28e --- /dev/null +++ b/src/components/node-details/environments.tsx @@ -0,0 +1,28 @@ +import Card from '@/components/card/card'; +import EnvironmentCard from '@/components/environment-card/environment-card'; +import { useP2P } from '@/contexts/P2PContext'; +import { EnvNodeInfo } from '@/types/environments'; +import styles from './environments.module.css'; + +type EnvironmentsProps = { + nodeInfo: EnvNodeInfo; +}; + +const Environments = ({ nodeInfo }: EnvironmentsProps) => { + const { isReady, envs } = useP2P(); + + return ( + +

Environments

+
+ {!isReady ? ( +
Fetching data...
+ ) : ( + envs.map((env) => ) + )} +
+
+ ); +}; + +export default Environments; diff --git a/src/components/node-details/gas-fee-modal.tsx b/src/components/node-details/gas-fee-modal.tsx new file mode 100644 index 00000000..e87c76bb --- /dev/null +++ b/src/components/node-details/gas-fee-modal.tsx @@ -0,0 +1,90 @@ +import Button from '@/components/button/button'; +import Input from '@/components/input/input'; +import Modal from '@/components/modal/modal'; +import { ETH_SEPOLIA_ADDRESS } from '@/constants/tokens'; +import { useDepositTokens, UseDepositTokensReturn } from '@/lib/use-deposit-tokens'; +import { useFormik } from 'formik'; +import * as Yup from 'yup'; + +type GasFeeModalProps = { + isOpen: boolean; + onClose: () => void; +}; + +type GasFeeModalFormValues = { + amount: number | ''; +}; + +const GasFeeModalContent = ({ + depositTokens, + onClose, +}: Pick & { depositTokens: UseDepositTokensReturn }) => { + const formik = useFormik({ + initialValues: { + amount: '', + }, + onSubmit: (values) => { + if (values.amount !== '') { + depositTokens.handleDeposit({ + tokenAddress: ETH_SEPOLIA_ADDRESS, + amount: values.amount.toString(), + }); + } + }, + validationSchema: Yup.object({ + amount: Yup.number().required('Amount is required').min(0, 'Amount must be greater than 0'), + // .not(0, 'Amount must be greater than 0'), + }), + }); + + return ( +
+ +
+ + +
+ + ); +}; + +const GasFeeModal = ({ isOpen, onClose }: GasFeeModalProps) => { + const depositTokens = useDepositTokens({ + onSuccess: onClose, + }); + return ( + + + + ); +}; + +export default GasFeeModal; diff --git a/src/components/node-details/jobs-revenue-stats.module.css b/src/components/node-details/jobs-revenue-stats.module.css new file mode 100644 index 00000000..3c160e78 --- /dev/null +++ b/src/components/node-details/jobs-revenue-stats.module.css @@ -0,0 +1,5 @@ +.root { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 48px; +} diff --git a/src/components/node-details/jobs-revenue-stats.tsx b/src/components/node-details/jobs-revenue-stats.tsx new file mode 100644 index 00000000..67ca3b1e --- /dev/null +++ b/src/components/node-details/jobs-revenue-stats.tsx @@ -0,0 +1,79 @@ +import Card from '@/components/card/card'; +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import Gauge from '@/components/chart/gauge'; +import VBarChart from '@/components/chart/v-bar-chart'; +import { useNodesContext } from '@/context/nodes-context'; +import { useP2P } from '@/contexts/P2PContext'; +import { formatNumber } from '@/utils/formatters'; +import { useEffect, useMemo } from 'react'; +import styles from './jobs-revenue-stats.module.css'; + +const JobsRevenueStats = () => { + const { + benchmarkValues, + jobsPerEpoch, + revenuePerEpoch, + totalJobs, + totalRevenue, + fetchNodeBenchmarkMinMaxLast, + fetchNodeStats, + } = useNodesContext(); + const { envs } = useP2P(); + + useEffect(() => { + fetchNodeStats(); + }, [fetchNodeStats]); + + useEffect(() => { + fetchNodeBenchmarkMinMaxLast(); + }, [fetchNodeBenchmarkMinMaxLast]); + + const runningAndTotalJobs = useMemo(() => { + let totalRunningJobs = 0; + let totalJobs = 0; + for (const env of envs) { + totalRunningJobs += (env.runningJobs ?? 0) + (env.runningFreeJobs ?? 0); + totalJobs += (env.queuedJobs ?? 0) + totalRunningJobs; + } + + return [totalJobs, totalRunningJobs]; + }, [envs]); + + return ( + + + + + + + ); +}; + +export default JobsRevenueStats; diff --git a/src/components/node-details/node-details-page.tsx b/src/components/node-details/node-details-page.tsx new file mode 100644 index 00000000..db2afd1e --- /dev/null +++ b/src/components/node-details/node-details-page.tsx @@ -0,0 +1,71 @@ +import Container from '@/components/container/container'; +import BenchmarkJobs from '@/components/node-details/benchmark-jobs'; +import Environments from '@/components/node-details/environments'; +import JobsRevenueStats from '@/components/node-details/jobs-revenue-stats'; +import NodeInfo from '@/components/node-details/node-info'; +import UnbanRequests from '@/components/node-details/unban-requests'; +import SectionTitle from '@/components/section-title/section-title'; +import { useNodesContext } from '@/context/nodes-context'; +import { useUnbanRequestsContext } from '@/context/unban-requests-context'; +import { useP2P } from '@/contexts/P2PContext'; +import { useParams } from 'next/navigation'; +import { useEffect } from 'react'; + +const NodeDetailsPage = () => { + const { selectedNode, fetchNode } = useNodesContext(); + const { isReady, getEnvs } = useP2P(); + const { unbanRequests, fetchUnbanRequests } = useUnbanRequestsContext(); + const params = useParams<{ nodeId: string }>(); + + useEffect(() => { + if (!selectedNode && params?.nodeId) { + fetchNode(params?.nodeId); + } + }, [selectedNode, params?.nodeId, fetchNode]); + + useEffect(() => { + if (selectedNode?.id && isReady) { + getEnvs(selectedNode.id); + } + }, [selectedNode?.id, isReady, getEnvs]); + + useEffect(() => { + if (selectedNode?.id) { + fetchUnbanRequests(selectedNode.id); + } + }, [selectedNode?.id, fetchUnbanRequests]); + + if (!selectedNode) { + return ( + + + + ); + } + + return ( + + +
+ + + + + {selectedNode.eligibilityCauseStr !== 'Banned' && unbanRequests?.length === 0 ? null : ( + + )} +
+
+ ); +}; + +export default NodeDetailsPage; diff --git a/src/components/node-details/node-info.module.css b/src/components/node-details/node-info.module.css new file mode 100644 index 00000000..000f6a96 --- /dev/null +++ b/src/components/node-details/node-info.module.css @@ -0,0 +1,63 @@ +.root { + display: flex; + flex-direction: column; + gap: 32px; + + @media (min-width: 992px) { + display: grid; + grid-template-columns: 1fr 380px; + } + + .infoWrapper { + display: flex; + flex-direction: column; + gap: 32px; + justify-content: space-between; + min-width: 0; + + .infoContent { + display: flex; + flex-direction: column; + gap: 32px; + + .title { + font-size: 32px; + text-overflow: ellipsis; + overflow: hidden; + } + + .grid { + display: grid; + grid-template-columns: auto 1fr; + column-gap: 12px; + row-gap: 8px; + } + + .buttons { + display: flex; + gap: 8px; + } + } + + .infoFooter { + display: flex; + flex-direction: column; + gap: 24px; + } + } + + .statusWrapper { + display: flex; + flex-direction: column; + gap: 16px; + } +} + +.hash { + color: var(--text-secondary); + font-size: 14px; +} + +.icon { + color: var(--accent1); +} diff --git a/src/components/node-details/node-info.tsx b/src/components/node-details/node-info.tsx new file mode 100644 index 00000000..216bb15e --- /dev/null +++ b/src/components/node-details/node-info.tsx @@ -0,0 +1,184 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import { Balance } from '@/components/node-details/balance'; +import Eligibility from '@/components/node-details/eligibility'; +import { useP2P } from '@/contexts/P2PContext'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { Node, NodeEligibility } from '@/types/nodes'; +import { useAuthModal, useSignMessage, useSmartAccountClient } from '@account-kit/react'; +import DnsIcon from '@mui/icons-material/Dns'; +import LocationPinIcon from '@mui/icons-material/LocationPin'; +import PublicIcon from '@mui/icons-material/Public'; +import UploadIcon from '@mui/icons-material/Upload'; +import { useEffect, useMemo, useState } from 'react'; +import { toast } from 'react-toastify'; +import ConfigModal from './config-modal'; +import styles from './node-info.module.css'; + +type NodeInfoProps = { + node: Node; +}; + +const NodeInfo = ({ node }: NodeInfoProps) => { + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + const { signMessageAsync } = useSignMessage({ + client, + }); + const { openAuthModal } = useAuthModal(); + const { account, ocean } = useOceanAccount(); + const { config, fetchConfig, pushConfig } = useP2P(); + + const [fetchingConfig, setFetchingConfig] = useState(false); + const [pushingConfig, setPushingConfig] = useState(false); + const [isEditConfigDialogOpen, setIsEditConfigDialogOpen] = useState(false); + const [editedConfig, setEditedConfig] = useState>({}); + + const isAdmin = useMemo( + () => node.allowedAdmins?.includes(account?.address as string), + [node.allowedAdmins, account] + ); + + useEffect(() => { + if (config) { + setEditedConfig(config); + } + }, [config]); + + async function handleFetchConfig() { + if (!account.isConnected) { + openAuthModal(); + return; + } + if (!ocean || !node?.id) { + return; + } + const timestamp = Date.now() + 5 * 60 * 1000; // 5 minutes expiry + const signedMessage = await signMessageAsync({ + message: timestamp.toString(), + }); + + setFetchingConfig(true); + try { + await fetchConfig(node.id, signedMessage, timestamp, account.address as string); + } catch (error) { + console.error('Error fetching node config :', error); + } finally { + setFetchingConfig(false); + } + } + + async function handlePushConfig(config: Record) { + let success = false; + if (!account.isConnected) { + openAuthModal(); + return; + } + if (!ocean || !node?.id) { + return; + } + const timestamp = Date.now() + 5 * 60 * 1000; // 5 minutes expiry + const signedMessage = await signMessageAsync({ + message: timestamp.toString(), + }); + + setPushingConfig(true); + try { + await pushConfig(node.id, signedMessage, timestamp, config, account.address as string); + success = true; + } catch (error) { + console.error('Error pushing node config :', error); + } finally { + setPushingConfig(false); + if (success) { + toast.success('Successfully pushed new config!'); + setIsEditConfigDialogOpen(false); + } else { + toast.error('Failed to push new config'); + } + } + } + + function handleOpenEditConfigModal() { + if (!config || Object.keys(config).length === 0) { + handleFetchConfig(); + } + + setIsEditConfigDialogOpen(true); + } + + function handleCloseModal() { + setIsEditConfigDialogOpen(false); + } + + return ( + +
+
+
+

{node.friendlyName ?? node.id}

+
{node.id}
+
+
+ +
{`${node.location?.ip} / ${node.ipAndDns?.dns}`}
+ { + <> + + {node.platform?.osType ?
{node.platform?.osType}
:
Unknown
} + + } + + +
+ {node.location?.city}, {node.location?.country} +
+
+ {isAdmin ? ( +
+ + +
+ ) : null} +
+
+
+ Admins: + {node.allowedAdmins?.map((admin) => ( +
+ {admin} +
+ ))} +
+
{node.version && Ocean Node v{node.version}}
+
+
+
+ + +
+
+ ); +}; + +export default NodeInfo; diff --git a/src/components/Toolbar/style.module.css b/src/components/node-details/unban-requests.module.css similarity index 59% rename from src/components/Toolbar/style.module.css rename to src/components/node-details/unban-requests.module.css index ba6c7770..e0fea914 100644 --- a/src/components/Toolbar/style.module.css +++ b/src/components/node-details/unban-requests.module.css @@ -1,12 +1,7 @@ -.root { +.header { + align-items: center; display: flex; flex-direction: row; - align-items: center; + gap: 16px; justify-content: space-between; - padding: 8px; -} - -.buttons { - display: flex; - gap: 50px; } diff --git a/src/components/node-details/unban-requests.tsx b/src/components/node-details/unban-requests.tsx new file mode 100644 index 00000000..15a4b3e9 --- /dev/null +++ b/src/components/node-details/unban-requests.tsx @@ -0,0 +1,72 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import { Table } from '@/components/table/table'; +import { TableTypeEnum } from '@/components/table/table-type'; +import { useUnbanRequestsContext } from '@/context/unban-requests-context'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { Node } from '@/types'; +import { UnbanRequest } from '@/types/unban-requests'; +import { useAuthModal, useSignMessage, useSmartAccountClient } from '@account-kit/react'; +import { useMemo, useState } from 'react'; +import styles from './unban-requests.module.css'; + +type UnbanRequestsProps = { + node: Node; +}; + +const UnbanRequests = ({ node }: UnbanRequestsProps) => { + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + const { signMessageAsync } = useSignMessage({ + client, + }); + const { openAuthModal } = useAuthModal(); + const { account, ocean } = useOceanAccount(); + const { unbanRequests, fetchUnbanRequests, requestNodeUnban } = useUnbanRequestsContext(); + + const [loading, setLoading] = useState(false); + + const isAdmin = useMemo( + () => node.allowedAdmins?.includes(account?.address as string), + [node.allowedAdmins, account] + ); + + const handleRequestUnban = async () => { + if (!account.isConnected) { + openAuthModal(); + return; + } + if (!ocean || !node?.id) { + return; + } + setLoading(true); + try { + const timestamp = Date.now() + 5 * 60 * 1000; // 5 minutes expiry + const signedMessage = await signMessageAsync({ + message: timestamp.toString(), + }); + + await requestNodeUnban(node.id, signedMessage as string, timestamp, account.address as string); + await fetchUnbanRequests(node.id); + } catch (error) { + console.error('Error requesting unban:', error); + } finally { + setLoading(false); + } + }; + + return ( + +
+

Unban requests

+ {isAdmin && ( + + )} +
+ data={unbanRequests} paginationType="none" tableType={TableTypeEnum.UNBAN_REQUESTS} /> +
+ ); +}; + +export default UnbanRequests; diff --git a/src/components/node-details/withdraw-modal.tsx b/src/components/node-details/withdraw-modal.tsx new file mode 100644 index 00000000..5ae246e9 --- /dev/null +++ b/src/components/node-details/withdraw-modal.tsx @@ -0,0 +1,187 @@ +import Button from '@/components/button/button'; +import Input from '@/components/input/input'; +import Select from '@/components/input/select'; +import Modal from '@/components/modal/modal'; +import { useWithdrawTokens, UseWithdrawTokensReturn } from '@/lib/use-withdraw-tokens'; +import { NodeBalance } from '@/types/nodes'; +import { useFormik } from 'formik'; +import * as Yup from 'yup'; +import styles from './balance.module.css'; + +interface WithdrawModalProps { + balances: NodeBalance[]; + isOpen: boolean; + onClose: () => void; +} + +type WithdrawModalFormValues = { + amounts: Record; + tokens: string[]; +}; + +const WithdrawModalContent = ({ + balances, + onClose, + withdrawTokens, +}: WithdrawModalProps & { withdrawTokens: UseWithdrawTokensReturn }) => { + const formik = useFormik({ + initialValues: { + amounts: {}, + tokens: [], + }, + onSubmit: (values) => { + const tokenAddresses = values.tokens + .map((token) => balances.find((b) => b.token === token)?.address) + .filter((addr): addr is string => !!addr); + const amounts = values.tokens.map((token) => values.amounts[token] ?? '0'); + if (tokenAddresses.length > 0 && amounts.every((amt) => parseFloat(amt) > 0)) { + withdrawTokens.handleWithdraw({ + tokenAddresses, + amounts, + }); + } + }, + validationSchema: Yup.object({ + tokens: Yup.array().min(1, 'Select at least one token'), + amounts: Yup.object().test( + 'amounts-validation', + 'Invalid amounts', + (amounts: Record, context) => { + const tokens = (context.parent.tokens as string[]) || []; + if (tokens.length === 0) { + return true; + } + const errors: Yup.ValidationError[] = []; + for (const token of tokens) { + const amount = amounts?.[token]; + if (!amount || isNaN(Number(amount)) || Number(amount) <= 0) { + errors.push( + context.createError({ + path: `amounts.${token}`, + message: `${token} amount required`, + }) + ); + } + } + if (errors.length > 0) { + return new Yup.ValidationError(errors, amounts, 'amounts'); + } + return true; + } + ), + }), + }); + + const setMaxAmount = (token: string) => { + const balance = balances.find((b) => b.token === token)?.amount; + if (balance) { + formik.setFieldValue(`amounts.${token}`, balance); + } + }; + + /** + * Handles token selection change + * When a token is removed from the selection, the corresponding amount is also removed + */ + const handleTokensChange = (newTokens: string[]) => { + formik.setFieldValue('tokens', newTokens); + const newAmounts = { ...formik.values.amounts }; + // Remove amounts for deselected tokens + Object.keys(newAmounts).forEach((token) => { + if (!newTokens.includes(token)) { + newAmounts[token] = ''; + } + }); + // Initialize amounts for newly selected tokens + newTokens.forEach((token) => { + if (!(token in newAmounts)) { + newAmounts[token] = ''; + } + }); + formik.setFieldValue('amounts', newAmounts); + }; + + return ( +
+ setMaxAmount(token)} type="button" variant="outlined"> + Set max + + } + key={token} + label={`${token} amount`} + name={`amounts.${token}`} + onBlur={formik.handleBlur} + onChange={formik.handleChange} + topRight={`Max ${maxAmount}`} + type="number" + value={formik.values.amounts[token] ?? ''} + /> + ); + })} +
+ + +
+ + ); +}; + +const WithdrawModal = ({ balances, isOpen, onClose }: WithdrawModalProps) => { + const withdrawTokens = useWithdrawTokens({ + onSuccess: onClose, + }); + return ( + + + + ); +}; + +export default WithdrawModal; diff --git a/src/components/profile/consumer-jobs.tsx b/src/components/profile/consumer-jobs.tsx new file mode 100644 index 00000000..9b34e451 --- /dev/null +++ b/src/components/profile/consumer-jobs.tsx @@ -0,0 +1,22 @@ +import Card from '@/components/card/card'; +import { Table } from '@/components/table/table'; +import { TableTypeEnum } from '@/components/table/table-type'; +import { useMyJobsTableContext } from '@/context/table/my-jobs-table-context'; +import { Job } from '@/types/jobs'; + +const ConsumerJobs = () => { + return ( + +

My jobs

+ + context={useMyJobsTableContext()} + autoHeight + showToolbar + paginationType="context" + tableType={TableTypeEnum.MY_JOBS} + /> +
+ ); +}; + +export default ConsumerJobs; diff --git a/src/components/profile/consumer-stats.module.css b/src/components/profile/consumer-stats.module.css new file mode 100644 index 00000000..3c160e78 --- /dev/null +++ b/src/components/profile/consumer-stats.module.css @@ -0,0 +1,5 @@ +.root { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 48px; +} diff --git a/src/components/profile/consumer-stats.tsx b/src/components/profile/consumer-stats.tsx new file mode 100644 index 00000000..746f1097 --- /dev/null +++ b/src/components/profile/consumer-stats.tsx @@ -0,0 +1,65 @@ +import Card from '@/components/card/card'; +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import Gauge from '@/components/chart/gauge'; +import VBarChart from '@/components/chart/v-bar-chart'; +import { useProfileContext } from '@/context/profile-context'; +import { formatNumber } from '@/utils/formatters'; +import { useEffect } from 'react'; +import styles from './consumer-stats.module.css'; + +const ConsumerStats = () => { + const { + totalJobs, + totalPaidAmount, + consumerStatsPerEpoch, + successfullJobs, + fetchConsumerStats, + fetchJobsSuccessRate, + } = useProfileContext(); + + useEffect(() => { + fetchConsumerStats(); + }, [fetchConsumerStats]); + + useEffect(() => { + fetchJobsSuccessRate(); + }, [fetchJobsSuccessRate]); + + return ( + + + + 0 ? Number(((successfullJobs / totalJobs) * 100).toFixed(1)) : 0} + valueSuffix="%" + /> + + ); +}; + +export default ConsumerStats; diff --git a/src/components/profile/consumer.profile-page.tsx b/src/components/profile/consumer.profile-page.tsx new file mode 100644 index 00000000..cb563d49 --- /dev/null +++ b/src/components/profile/consumer.profile-page.tsx @@ -0,0 +1,24 @@ +import Container from '@/components/container/container'; +import ConsumerJobs from '@/components/profile/consumer-jobs'; +import ConsumerStats from '@/components/profile/consumer-stats'; +import ProfileHeader from '@/components/profile/profile-header'; +import SectionTitle from '@/components/section-title/section-title'; + +const ConsumerProfilePage = () => { + return ( + + +
+ + + +
+
+ ); +}; + +export default ConsumerProfilePage; diff --git a/src/components/profile/owner-nodes.module.css b/src/components/profile/owner-nodes.module.css new file mode 100644 index 00000000..e0fea914 --- /dev/null +++ b/src/components/profile/owner-nodes.module.css @@ -0,0 +1,7 @@ +.header { + align-items: center; + display: flex; + flex-direction: row; + gap: 16px; + justify-content: space-between; +} diff --git a/src/components/profile/owner-nodes.tsx b/src/components/profile/owner-nodes.tsx new file mode 100644 index 00000000..dc6cee84 --- /dev/null +++ b/src/components/profile/owner-nodes.tsx @@ -0,0 +1,29 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import { Table } from '@/components/table/table'; +import { TableTypeEnum } from '@/components/table/table-type'; +import { useMyNodesTableContext } from '@/context/table/my-nodes-table-context'; +import { AnyNode } from '@/types/nodes'; +import styles from './owner-nodes.module.css'; + +const OwnerNodes = () => { + return ( + +
+

My nodes

+ +
+ + context={useMyNodesTableContext()} + autoHeight + paginationType="context" + showToolbar + tableType={TableTypeEnum.MY_NODES} + /> +
+ ); +}; + +export default OwnerNodes; diff --git a/src/components/profile/owner-profile-page.tsx b/src/components/profile/owner-profile-page.tsx new file mode 100644 index 00000000..b938ecb8 --- /dev/null +++ b/src/components/profile/owner-profile-page.tsx @@ -0,0 +1,24 @@ +import Container from '@/components/container/container'; +import OwnerNodes from '@/components/profile/owner-nodes'; +import OwnerStats from '@/components/profile/owner-stats'; +import ProfileHeader from '@/components/profile/profile-header'; +import SectionTitle from '@/components/section-title/section-title'; + +const OwnerProfilePage = () => { + return ( + + +
+ + + +
+
+ ); +}; + +export default OwnerProfilePage; diff --git a/src/components/profile/owner-stats.module.css b/src/components/profile/owner-stats.module.css new file mode 100644 index 00000000..3c160e78 --- /dev/null +++ b/src/components/profile/owner-stats.module.css @@ -0,0 +1,5 @@ +.root { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 48px; +} diff --git a/src/components/profile/owner-stats.tsx b/src/components/profile/owner-stats.tsx new file mode 100644 index 00000000..bcf3f36a --- /dev/null +++ b/src/components/profile/owner-stats.tsx @@ -0,0 +1,68 @@ +import Card from '@/components/card/card'; +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import Gauge from '@/components/chart/gauge'; +import VBarChart from '@/components/chart/v-bar-chart'; +import { useProfileContext } from '@/context/profile-context'; +import { formatNumber } from '@/utils/formatters'; +import { useEffect } from 'react'; +import styles from './owner-stats.module.css'; + +const OwnerStats = () => { + const { + totalNetworkRevenue, + totalBenchmarkRevenue, + totalNetworkJobs, + totalBenchmarkJobs, + ownerStatsPerEpoch, + eligibleNodes, + totalNodes, + fetchOwnerStats, + fetchActiveNodes, + } = useProfileContext(); + + useEffect(() => { + fetchActiveNodes(); + }, [fetchActiveNodes]); + + useEffect(() => { + fetchOwnerStats(); + }, [fetchOwnerStats]); + + return ( + + + + 0 ? Number(((eligibleNodes / totalNodes) * 100).toFixed(1)) : 0} + valueSuffix="%" + /> + + ); +}; + +export default OwnerStats; diff --git a/src/components/profile/profile-header.module.css b/src/components/profile/profile-header.module.css new file mode 100644 index 00000000..a7fd0a59 --- /dev/null +++ b/src/components/profile/profile-header.module.css @@ -0,0 +1,21 @@ +.tabBar { + align-self: center; +} + +.root { + align-items: center; + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 24px; + + .name { + font-size: 28px; + } + + .address { + font-size: 14px; + color: var(--text-secondary); + word-break: break-word; + } +} diff --git a/src/components/profile/profile-header.tsx b/src/components/profile/profile-header.tsx new file mode 100644 index 00000000..37de3577 --- /dev/null +++ b/src/components/profile/profile-header.tsx @@ -0,0 +1,59 @@ +import Avatar from '@/components/avatar/avatar'; +import Card from '@/components/card/card'; +import TabBar from '@/components/tab-bar/tab-bar'; +import { useProfileContext } from '@/context/profile-context'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { formatWalletAddress } from '@/utils/formatters'; +import { useMemo } from 'react'; +import styles from './profile-header.module.css'; + +type ProfileHeaderProps = { + role: 'owner' | 'consumer'; +}; + +const ProfileHeader = ({ role }: ProfileHeaderProps) => { + const { account } = useOceanAccount(); + const { ensName, ensProfile } = useProfileContext(); + + const accountName = useMemo(() => { + if (account.status === 'connected' && account.address) { + if (ensName) { + return ensName; + } + if (account.address) { + return formatWalletAddress(account.address); + } + } + return 'Not connected'; + }, [account, ensName]); + + return ( + <> + + + {account.address ? : null} +
+

{accountName}

+
{account?.address}
+
+
+ + ); +}; + +export default ProfileHeader; diff --git a/src/components/progress-bar/progress-bar.module.css b/src/components/progress-bar/progress-bar.module.css new file mode 100644 index 00000000..91c31df1 --- /dev/null +++ b/src/components/progress-bar/progress-bar.module.css @@ -0,0 +1,14 @@ +.root { + display: flex; + flex-direction: column; + gap: 4px; + + .row { + align-items: center; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + gap: 8px; + } +} diff --git a/src/components/progress-bar/progress-bar.tsx b/src/components/progress-bar/progress-bar.tsx new file mode 100644 index 00000000..2ec6e4ec --- /dev/null +++ b/src/components/progress-bar/progress-bar.tsx @@ -0,0 +1,51 @@ +import { LinearProgress, styled } from '@mui/material'; +import classNames from 'classnames'; +import styles from './progress-bar.module.css'; + +const StyledLinearProgress = styled(LinearProgress)({ + background: 'var(--background-glass)', + border: '2px solid var(--background-glass)', + borderRadius: 8, + height: 16, + '& .MuiLinearProgress-bar': { + borderRadius: 8, + }, +}); + +type ProgressBarProps = { + className?: string; + topLeftContent?: React.ReactNode; + topRightContent?: React.ReactNode; + bottomLeftContent?: React.ReactNode; + bottomRightContent?: React.ReactNode; + value: number; +}; + +const ProgressBar = ({ + className, + topLeftContent, + topRightContent, + bottomLeftContent, + bottomRightContent, + value, +}: ProgressBarProps) => { + return ( +
+ {topLeftContent || topRightContent ? ( +
+
{topLeftContent}
+
{topRightContent}
+
+ ) : null} + + {bottomLeftContent || bottomRightContent ? ( +
+
{bottomLeftContent}
+
{bottomRightContent}
+
+ ) : null} +
+ ); +}; + +export default ProgressBar; diff --git a/src/components/run-job/environments-page.tsx b/src/components/run-job/environments-page.tsx new file mode 100644 index 00000000..ee854355 --- /dev/null +++ b/src/components/run-job/environments-page.tsx @@ -0,0 +1,23 @@ +import Container from '@/components/container/container'; +import SelectEnvironment from '@/components/run-job/select-environment'; +import SectionTitle from '@/components/section-title/section-title'; +import { getRunJobSteps, RunJobStep } from '@/components/stepper/get-steps'; +import Stepper from '@/components/stepper/stepper'; + +const EnvironmentsPage = () => { + return ( + + currentStep="environment" steps={getRunJobSteps(false)} />} + /> +
+ +
+
+ ); +}; + +export default EnvironmentsPage; diff --git a/src/components/run-job/payment-authorize.module.css b/src/components/run-job/payment-authorize.module.css new file mode 100644 index 00000000..0f0c75b5 --- /dev/null +++ b/src/components/run-job/payment-authorize.module.css @@ -0,0 +1,21 @@ +.root { + display: flex; + flex-direction: column; + gap: 32px; + + .inputs { + display: flex; + flex-direction: column; + gap: 16px; + + @media (min-width: 576px) { + display: grid; + grid-template-columns: repeat(2, 1fr); + } + + @media (min-width: 992px) { + display: grid; + grid-template-columns: repeat(3, 1fr); + } + } +} diff --git a/src/components/run-job/payment-authorize.tsx b/src/components/run-job/payment-authorize.tsx new file mode 100644 index 00000000..55cadd77 --- /dev/null +++ b/src/components/run-job/payment-authorize.tsx @@ -0,0 +1,116 @@ +import Button from '@/components/button/button'; +import Input from '@/components/input/input'; +import { SelectedToken } from '@/context/run-job-context'; +import { useAuthorizeTokens } from '@/lib/use-authorize-tokens'; +import { ComputeEnvironment, EnvResourcesSelection } from '@/types/environments'; +import { useFormik } from 'formik'; +import * as Yup from 'yup'; +import styles from './payment-authorize.module.css'; + +type AuthorizeFormValues = { + // amountToAuthorize: number; + maxLockedAmount: number; + maxLockCount: number; + maxLockSeconds: number; +}; + +type PaymentAuthorizeProps = { + // authorizations: any; + loadPaymentInfo: () => void; + selectedEnv: ComputeEnvironment; + selectedResources: EnvResourcesSelection; + selectedToken: SelectedToken; + totalCost: number; +}; + +const PaymentAuthorize = ({ + // authorizations, + loadPaymentInfo, + selectedEnv, + selectedResources, + selectedToken, + totalCost, +}: PaymentAuthorizeProps) => { + const { handleAuthorize, isAuthorizing } = useAuthorizeTokens({ onSuccess: loadPaymentInfo }); + + const formik = useFormik({ + enableReinitialize: true, + initialValues: { + // amountToAuthorize: totalCost - (authorizations?.currentLockedAmount ?? 0), + maxLockedAmount: totalCost, + maxLockCount: 10, + maxLockSeconds: selectedResources.maxJobDurationHours * 60 * 60, + }, + onSubmit: async (values) => { + handleAuthorize({ + tokenAddress: selectedToken.address, + spender: selectedEnv.consumerAddress, + maxLockedAmount: values.maxLockedAmount.toString(), + maxLockSeconds: values.maxLockSeconds.toString(), + maxLockCount: values.maxLockCount.toString(), + }); + }, + validateOnMount: true, + validationSchema: Yup.object({}), + }); + + return ( +
+
+ {/* */} + + + +
+ + + ); +}; + +export default PaymentAuthorize; diff --git a/src/components/run-job/payment-deposit.module.css b/src/components/run-job/payment-deposit.module.css new file mode 100644 index 00000000..a8bfd788 --- /dev/null +++ b/src/components/run-job/payment-deposit.module.css @@ -0,0 +1,5 @@ +.root { + display: flex; + flex-direction: column; + gap: 32px; +} diff --git a/src/components/run-job/payment-deposit.tsx b/src/components/run-job/payment-deposit.tsx new file mode 100644 index 00000000..d1a78ea6 --- /dev/null +++ b/src/components/run-job/payment-deposit.tsx @@ -0,0 +1,59 @@ +import Button from '@/components/button/button'; +import Input from '@/components/input/input'; +import { SelectedToken } from '@/context/run-job-context'; +import { useDepositTokens } from '@/lib/use-deposit-tokens'; +import { useFormik } from 'formik'; +import * as Yup from 'yup'; +import styles from './payment-deposit.module.css'; + +type DepositFormValues = { + amount: number; +}; + +type PaymentDepositProps = { + escrowBalance: number; + loadPaymentInfo: () => void; + selectedToken: SelectedToken; + totalCost: number; +}; + +const PaymentDeposit = ({ escrowBalance, loadPaymentInfo, selectedToken, totalCost }: PaymentDepositProps) => { + const { handleDeposit, isDepositing } = useDepositTokens({ onSuccess: loadPaymentInfo }); + + const formik = useFormik({ + enableReinitialize: true, + initialValues: { + amount: totalCost - escrowBalance, + }, + onSubmit: async (values) => { + handleDeposit({ + tokenAddress: selectedToken.address, + amount: values.amount.toString(), + }); + }, + validateOnMount: true, + validationSchema: Yup.object({ + amount: Yup.number().required('Required').min(0, 'Invalid amount'), + }), + }); + + return ( +
+ + + + ); +}; + +export default PaymentDeposit; diff --git a/src/components/run-job/payment-page.tsx b/src/components/run-job/payment-page.tsx new file mode 100644 index 00000000..ca075719 --- /dev/null +++ b/src/components/run-job/payment-page.tsx @@ -0,0 +1,43 @@ +import Container from '@/components/container/container'; +import Payment from '@/components/run-job/payment'; +import SectionTitle from '@/components/section-title/section-title'; +import { getRunJobSteps, RunJobStep } from '@/components/stepper/get-steps'; +import Stepper from '@/components/stepper/stepper'; +import { useRunJobContext } from '@/context/run-job-context'; +import { useRouter } from 'next/router'; +import { useEffect } from 'react'; + +const PaymentPage = () => { + const router = useRouter(); + + const { estimatedTotalCost, freeCompute, selectedEnv, selectedResources, selectedToken } = useRunJobContext(); + + useEffect(() => { + if (!selectedToken) { + router.replace('/run-job/environments'); + } + }, [router, selectedToken]); + + return ( + + currentStep="payment" steps={getRunJobSteps(freeCompute)} />} + /> + {selectedEnv && selectedResources && selectedToken ? ( +
+ +
+ ) : null} +
+ ); +}; + +export default PaymentPage; diff --git a/src/components/run-job/payment-summary.module.css b/src/components/run-job/payment-summary.module.css new file mode 100644 index 00000000..1e4ebf09 --- /dev/null +++ b/src/components/run-job/payment-summary.module.css @@ -0,0 +1,45 @@ +.cost { + display: flex; + flex-direction: column; + gap: 12px; + padding: 12px 24px; + + @media (min-width: 768px) { + align-items: center; + display: grid; + grid-template-columns: 1fr auto; + } + + .valueWithChip { + align-items: end; + display: flex; + flex-direction: column; + } + + .values { + text-align: right; + + .token { + color: var(--text-secondary); + font-size: 14px; + } + + .amount { + font-size: 32px; + font-weight: 700; + } + } + + .sm { + color: var(--text-secondary); + font-size: 16px; + + .token { + font-size: 12px; + } + + .amount { + font-size: 20px; + } + } +} diff --git a/src/components/run-job/payment-summary.tsx b/src/components/run-job/payment-summary.tsx new file mode 100644 index 00000000..3d5ebc49 --- /dev/null +++ b/src/components/run-job/payment-summary.tsx @@ -0,0 +1,78 @@ +import Card from '@/components/card/card'; +import { Authorizations } from '@/types/payment'; +import { formatNumber } from '@/utils/formatters'; +import classNames from 'classnames'; +import styles from './payment-summary.module.css'; + +type PaymentSummaryProps = { + authorizations: Authorizations | null; + escrowBalance: number | null; + tokenSymbol: string; + totalCost: number; + walletBalance: number; +}; + +const PaymentSummary = ({ + authorizations, + escrowBalance, + tokenSymbol, + totalCost, + walletBalance, +}: PaymentSummaryProps) => { + const insufficientAutorized = (Number(authorizations?.maxLockedAmount) ?? 0) < totalCost; + const insufficientEscrow = escrowBalance !== null && escrowBalance < totalCost; + + return ( + + {/* Estimated total cost */} +

Estimated total cost

+
+ {tokenSymbol} +   + {formatNumber(totalCost)} +
+ {/* User available funds in escrow */} +

User available funds in escrow

+
+
+ {tokenSymbol} +   + + {formatNumber(escrowBalance ?? 0)} + +
+ {insufficientEscrow ?
Insufficient funds
: null} +
+ {/* Current locked amount */} +

Current locked amount

+
+
+ {tokenSymbol} +   + {formatNumber(authorizations?.currentLockedAmount ?? 0)} +
+
+ {/* Max locked amount */} +

Max locked amount

+
+
+ {tokenSymbol} +   + + {formatNumber(authorizations?.maxLockedAmount ?? 0)} + +
+ {insufficientAutorized ?
Insufficient allowance
: null} +
+ {/* User available funds in wallet */} +

User available funds in wallet

+
+ {tokenSymbol} +   + {formatNumber(walletBalance)} +
+
+ ); +}; + +export default PaymentSummary; diff --git a/src/components/run-job/payment.tsx b/src/components/run-job/payment.tsx new file mode 100644 index 00000000..ac45f390 --- /dev/null +++ b/src/components/run-job/payment.tsx @@ -0,0 +1,112 @@ +import Card from '@/components/card/card'; +import PaymentAuthorize from '@/components/run-job/payment-authorize'; +import PaymentDeposit from '@/components/run-job/payment-deposit'; +import PaymentSummary from '@/components/run-job/payment-summary'; +import { SelectedToken } from '@/context/run-job-context'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { ComputeEnvironment, EnvResourcesSelection } from '@/types/environments'; +import { Authorizations } from '@/types/payment'; +import { CircularProgress } from '@mui/material'; +import { useRouter } from 'next/router'; +import { useCallback, useEffect, useMemo, useState } from 'react'; + +type PaymentProps = { + selectedEnv: ComputeEnvironment; + selectedResources: EnvResourcesSelection; + selectedToken: SelectedToken; + totalCost: number; +}; + +const Payment = ({ selectedEnv, selectedResources, selectedToken, totalCost }: PaymentProps) => { + const router = useRouter(); + + const { account, ocean } = useOceanAccount(); + + const [authorizations, setAuthorizations] = useState(null); + const [escrowBalance, setEscrowBalance] = useState(null); + const [walletBalance, setWalletBalance] = useState(null); + + const [loadingAuthorizations, setLoadingAuthorizations] = useState(false); + const [loadingUserFunds, setLoadingUserFunds] = useState(false); + + const step: 'authorize' | 'deposit' = useMemo(() => { + if ((escrowBalance ?? 0) >= totalCost) { + return 'authorize'; + } + return 'deposit'; + }, [escrowBalance, totalCost]); + + const loadPaymentInfo = useCallback(() => { + if (ocean && account?.address) { + setLoadingAuthorizations(true); + ocean + .getAuthorizations(selectedToken.address, account.address, selectedEnv.consumerAddress) + .then((authorizations) => { + setAuthorizations(authorizations); + setLoadingAuthorizations(false); + }); + ocean.getBalance(selectedToken.address, account.address).then((balance) => { + setWalletBalance(Number(balance)); + }); + setLoadingUserFunds(true); + ocean.getUserFunds(selectedToken.address, account.address).then((balance) => { + setEscrowBalance(Number(balance)); + setLoadingUserFunds(false); + }); + } + }, [ocean, account.address, selectedToken.address, selectedEnv.consumerAddress]); + + useEffect(() => { + loadPaymentInfo(); + }, [loadPaymentInfo]); + + useEffect(() => { + const sufficientEscrow = (escrowBalance ?? 0) >= totalCost; + const suffficientAuthorized = (Number(authorizations?.maxLockedAmount) ?? 0) >= totalCost; + const enoughLockSeconds = (Number(authorizations?.maxLockSeconds) ?? 0) >= selectedResources.maxJobDurationHours; + if (sufficientEscrow && suffficientAuthorized && enoughLockSeconds) { + router.push('/run-job/summary'); + } + }, [ + authorizations?.maxLockSeconds, + authorizations?.maxLockedAmount, + escrowBalance, + router, + selectedResources.maxJobDurationHours, + totalCost, + ]); + + return loadingAuthorizations || loadingUserFunds ? ( + + ) : ( + +

Payment

+ + {step === 'deposit' ? ( + + ) : step === 'authorize' ? ( + + ) : null} +
+ ); +}; + +export default Payment; diff --git a/src/components/run-job/resources-page.tsx b/src/components/run-job/resources-page.tsx new file mode 100644 index 00000000..7d83ea95 --- /dev/null +++ b/src/components/run-job/resources-page.tsx @@ -0,0 +1,38 @@ +import Container from '@/components/container/container'; +import SelectResources from '@/components/run-job/select-resources'; +import SectionTitle from '@/components/section-title/section-title'; +import { getRunJobSteps, RunJobStep } from '@/components/stepper/get-steps'; +import Stepper from '@/components/stepper/stepper'; +import { useRunJobContext } from '@/context/run-job-context'; +import { useRouter } from 'next/router'; +import { useEffect } from 'react'; + +const ResourcesPage = () => { + const router = useRouter(); + + const { freeCompute, selectedEnv, selectedToken } = useRunJobContext(); + + useEffect(() => { + if (!selectedEnv || !selectedToken) { + router.replace('/run-job/environments'); + } + }, [router, selectedEnv, selectedToken]); + + return ( + + currentStep="resources" steps={getRunJobSteps(freeCompute)} />} + /> + {selectedEnv && selectedToken ? ( +
+ +
+ ) : null} +
+ ); +}; + +export default ResourcesPage; diff --git a/src/components/run-job/select-environment.module.css b/src/components/run-job/select-environment.module.css new file mode 100644 index 00000000..b826e0a0 --- /dev/null +++ b/src/components/run-job/select-environment.module.css @@ -0,0 +1,40 @@ +.extraFilters { + display: flex; + flex-direction: column; + gap: 24px; + + @media (min-width: 576px) { + display: grid; + grid-template-columns: repeat(2, 1fr); + } + + @media (min-width: 992px) { + grid-template-columns: repeat(4, 1fr); + } +} + +.footer { + align-items: end; + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px; + justify-content: space-between; + + .sortSelect { + min-width: 250px; + } + + .buttons { + align-items: center; + display: flex; + flex-direction: row; + gap: 8px; + } +} + +.list { + display: flex; + flex-direction: column; + gap: 16px; +} diff --git a/src/components/run-job/select-environment.tsx b/src/components/run-job/select-environment.tsx new file mode 100644 index 00000000..37384ae2 --- /dev/null +++ b/src/components/run-job/select-environment.tsx @@ -0,0 +1,200 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import EnvironmentCard from '@/components/environment-card/environment-card'; +import GpuLabel from '@/components/gpu-label/gpu-label'; +import Input from '@/components/input/input'; +import Select from '@/components/input/select'; +import { RawFilters, useRunJobEnvsContext } from '@/context/run-job-envs-context'; +import FilterAltIcon from '@mui/icons-material/FilterAlt'; +import { Collapse } from '@mui/material'; +import { useFormik } from 'formik'; +import { useEffect, useMemo, useState } from 'react'; +import styles from './select-environment.module.css'; + +const sortOptions = [ + { label: 'No sorting', value: '' }, + { label: 'Price ascending', value: JSON.stringify({ price: 'asc' }) }, + { label: 'Price descending', value: JSON.stringify({ price: 'desc' }) }, +]; + +type FilterFormValues = { + gpuName: string[]; + fromMaxJobDuration: number | ''; + minimumCPU: number | ''; + minimumRAM: number | ''; + minimumStorage: number | ''; + feeToken: string; + sortBy: string; +}; + +const SelectEnvironment = () => { + const { fetchGpus, filters, gpus, loading, loadMoreEnvs, nodeEnvs, paginationResponse, setFilters, setSort, sort } = + useRunJobEnvsContext(); + + const [expanded, setExpanded] = useState(!!filters); + + useEffect(() => { + fetchGpus(); + }, [fetchGpus]); + + const gpuOptions = useMemo(() => gpus.map((gpu) => ({ value: gpu.gpuName, label: gpu.gpuName })), [gpus]); + + const formik = useFormik({ + initialValues: { + gpuName: filters.gpuName ?? [], + fromMaxJobDuration: filters.fromMaxJobDuration ?? '', + minimumCPU: filters.minimumCPU ?? '', + minimumRAM: filters.minimumRAM ?? '', + minimumStorage: filters.minimumStorage ?? '', + feeToken: '', + sortBy: sort ?? '', + }, + onSubmit: async (values) => { + const filters: RawFilters = { gpuName: values.gpuName }; + if (values.fromMaxJobDuration !== '') { + filters.fromMaxJobDuration = Number(values.fromMaxJobDuration); + } + if (values.minimumCPU !== '') { + filters.minimumCPU = Number(values.minimumCPU); + } + if (values.minimumRAM !== '') { + filters.minimumRAM = Number(values.minimumRAM); + } + if (values.minimumStorage !== '') { + filters.minimumStorage = Number(values.minimumStorage); + } + if (values.gpuName.length > 0) { + filters.gpuName = values.gpuName; + } + setFilters(filters); + setSort(values.sortBy); + }, + }); + + const toggleFilters = () => { + if (expanded) { + formik.setValues({ + ...formik.values, + fromMaxJobDuration: '', + minimumCPU: '', + minimumRAM: '', + minimumStorage: '', + feeToken: '', + }); + } + setExpanded(!expanded); + }; + + return ( + +

Environments

+
+ + + + + + {/* +
+ + +
+
+ + +
+ {nodeEnvs.map((node) => + node.computeEnvironments.environments.map((env) => ( + + )) + )} + {paginationResponse && paginationResponse.currentPage < paginationResponse.totalPages && ( + + )} +
+ + ); +}; + +export default SelectEnvironment; diff --git a/src/components/run-job/select-resources.module.css b/src/components/run-job/select-resources.module.css new file mode 100644 index 00000000..85d25252 --- /dev/null +++ b/src/components/run-job/select-resources.module.css @@ -0,0 +1,76 @@ +.form { + display: flex; + flex-direction: column; + gap: 24px; + + .selectRow { + display: flex; + flex-direction: column; + gap: 24px; + } + + .inputsGrid { + display: flex; + flex-direction: column; + gap: 24px; + } + + .button { + align-self: end; + } + + @media (min-width: 768px) { + .selectRow { + display: grid; + grid-template-columns: 1fr 1fr; + } + + .inputsGrid { + display: grid; + grid-template-columns: 1fr 1fr; + } + } + + @media (min-width: 992px) { + .selectRow { + grid-template-columns: 2fr 1fr; + } + } + + @media (min-width: 1200px) { + .selectRow { + grid-template-columns: 3fr 1fr; + } + } +} + +.cost { + align-items: center; + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 32px; + justify-content: space-between; + padding: 12px 24px; + + .values { + display: flex; + flex-grow: 1; + flex-direction: column; + align-items: end; + + .token { + color: var(--text-secondary); + font-size: 14px; + } + + .amount { + font-size: 32px; + font-weight: 700; + } + + .reimbursment { + color: var(--success); + } + } +} diff --git a/src/components/run-job/select-resources.tsx b/src/components/run-job/select-resources.tsx new file mode 100644 index 00000000..e180591c --- /dev/null +++ b/src/components/run-job/select-resources.tsx @@ -0,0 +1,267 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import GpuLabel from '@/components/gpu-label/gpu-label'; +import useEnvResources from '@/components/hooks/use-env-resources'; +import Input from '@/components/input/input'; +import Select from '@/components/input/select'; +import Slider from '@/components/slider/slider'; +import { SelectedToken, useRunJobContext } from '@/context/run-job-context'; +import { ComputeEnvironment } from '@/types/environments'; +import { formatNumber } from '@/utils/formatters'; +import { useAuthModal, useSignerStatus } from '@account-kit/react'; +import { useFormik } from 'formik'; +import { useRouter } from 'next/router'; +import { useMemo } from 'react'; +import * as Yup from 'yup'; +import styles from './select-resources.module.css'; + +type SelectResourcesProps = { + environment: ComputeEnvironment; + freeCompute: boolean; + token: SelectedToken; +}; + +type ResourcesFormValues = { + cpuCores: number; + diskSpace: number; + gpus: string[]; + maxJobDurationHours: number; + ram: number; +}; + +const SelectResources = ({ environment, freeCompute, token }: SelectResourcesProps) => { + const { openAuthModal } = useAuthModal(); + const router = useRouter(); + const { isAuthenticating, isDisconnected } = useSignerStatus(); + + const { setEstimatedTotalCost, setSelectedResources } = useRunJobContext(); + + const { cpu, cpuFee, disk, diskFee, gpus, gpuFees, ram, ramFee } = useEnvResources({ + environment, + freeCompute, + tokenAddress: token.address, + }); + + const minAllowedCpuCores = cpu?.min ?? 1; + const minAllowedDiskSpace = disk?.min ?? 0; + const minAllowedJobDurationHours = environment.minJobDuration ?? 0; + const minAllowedRam = ram?.min ?? 0; + + const maxAllowedCpuCores = cpu?.max ?? minAllowedCpuCores; + const maxAllowedDiskSpace = disk?.max ?? minAllowedDiskSpace; + const maxAllowedJobDurationHours = (environment.maxJobDuration ?? minAllowedJobDurationHours) / 60 / 60; + const maxAllowedRam = ram?.max ?? minAllowedRam; + + const formik = useFormik({ + initialValues: { + cpuCores: minAllowedCpuCores, + diskSpace: minAllowedDiskSpace, + gpus: [], + maxJobDurationHours: minAllowedJobDurationHours, + ram: minAllowedRam, + }, + onSubmit: (values) => { + if (isDisconnected) { + openAuthModal(); + return; + } + setEstimatedTotalCost(estimatedTotalCost); + setSelectedResources({ + cpuCores: values.cpuCores, + cpuId: cpu?.id ?? 'cpu', + diskSpace: values.diskSpace, + diskId: disk?.id ?? 'disk', + gpus: gpus + .filter((gpu) => values.gpus.includes(gpu.id)) + .map((gpu) => ({ id: gpu.id, description: gpu.description })), + maxJobDurationHours: values.maxJobDurationHours, + ram: values.ram, + ramId: ram?.id ?? 'ram', + }); + if (estimatedTotalCost > 0 && !freeCompute) { + router.push('/run-job/payment'); + } else { + router.push('/run-job/summary'); + } + }, + validateOnMount: true, + validationSchema: Yup.object({ + cpuCores: Yup.number() + .required('Required') + .min(minAllowedCpuCores, 'Limits exceeded') + .max(maxAllowedCpuCores, 'Limits exceeded') + .integer('Invalid format'), + diskSpace: Yup.number() + .required('Required') + .min(minAllowedDiskSpace, 'Limits exceeded') + .max(maxAllowedDiskSpace, 'Limits exceeded'), + gpus: Yup.array().of(Yup.string()), + maxJobDurationHours: Yup.number() + .required('Required') + .min(minAllowedJobDurationHours, 'Limits exceeded') + .max(maxAllowedJobDurationHours, 'Limits exceeded'), + ram: Yup.number() + .required('Required') + .min(minAllowedRam, 'Limits exceeded') + .max(maxAllowedRam, 'Limits exceeded'), + }), + }); + + const estimatedTotalCost = useMemo(() => { + if (freeCompute) { + return 0; + } + const timeInMinutes = Number(formik.values.maxJobDurationHours) * 60; + const cpuCost = Number(formik.values.cpuCores) * (cpuFee ?? 0) * timeInMinutes; + const ramCost = Number(formik.values.ram) * (ramFee ?? 0) * timeInMinutes; + const diskCost = Number(formik.values.diskSpace) * (diskFee ?? 0) * timeInMinutes; + const gpuCost = formik.values.gpus.reduce((total, gpuId) => { + const fee = gpuFees[gpuId] ?? 0; + return total + fee * timeInMinutes; + }, 0); + return cpuCost + ramCost + diskCost + gpuCost; + }, [ + cpuFee, + diskFee, + formik.values.cpuCores, + formik.values.diskSpace, + formik.values.gpus, + formik.values.maxJobDurationHours, + formik.values.ram, + freeCompute, + gpuFees, + ramFee, + ]); + + const selectAllGpus = () => { + formik.setFieldValue( + 'gpus', + gpus.map((gpu) => gpu.id) + ); + }; + + const setMaxDiskSpace = () => { + formik.setFieldValue('diskSpace', maxAllowedDiskSpace); + }; + + const setMaxJobDurationHours = () => { + formik.setFieldValue('maxJobDurationHours', maxAllowedJobDurationHours); + }; + + return ( + +

Select resources

+
+ + Set max + + } + errorText={formik.touched.diskSpace && formik.errors.diskSpace ? formik.errors.diskSpace : undefined} + hint={freeCompute ? 'Free' : `${diskFee ?? 0} ${token.symbol}/GB`} + label="Disk space" + name="diskSpace" + onBlur={formik.handleBlur} + onChange={formik.handleChange} + startAdornment="GB" + topRight={`${minAllowedDiskSpace}-${maxAllowedDiskSpace}`} + type="number" + value={formik.values.diskSpace} + /> + + Set max + + } + errorText={ + formik.touched.maxJobDurationHours && formik.errors.maxJobDurationHours + ? formik.errors.maxJobDurationHours + : undefined + } + label="Max job duration" + name="maxJobDurationHours" + onBlur={formik.handleBlur} + onChange={formik.handleChange} + startAdornment="hours" + topRight={`${minAllowedJobDurationHours}-${maxAllowedJobDurationHours}`} + type="number" + value={formik.values.maxJobDurationHours} + /> + + {formik.isValid && !freeCompute ? ( + +

Estimated total cost

+
+
+ {token.symbol} +   + {formatNumber(estimatedTotalCost)} +
+
+ If your job finishes early, the unconsumed tokens remain in escrow +
+
+
+ ) : null} + + +
+ ); +}; + +export default SelectResources; diff --git a/src/components/run-job/summary-page.tsx b/src/components/run-job/summary-page.tsx new file mode 100644 index 00000000..b16a0320 --- /dev/null +++ b/src/components/run-job/summary-page.tsx @@ -0,0 +1,45 @@ +import Container from '@/components/container/container'; +import Summary from '@/components/run-job/summary'; +import SectionTitle from '@/components/section-title/section-title'; +import { getRunJobSteps, RunJobStep } from '@/components/stepper/get-steps'; +import Stepper from '@/components/stepper/stepper'; +import { useRunJobContext } from '@/context/run-job-context'; +import { useRouter } from 'next/router'; +import { useEffect } from 'react'; + +const SummaryPage = () => { + const router = useRouter(); + + const { estimatedTotalCost, freeCompute, nodeInfo, selectedEnv, selectedResources, selectedToken } = + useRunJobContext(); + + useEffect(() => { + if (!selectedEnv || !selectedResources) { + router.replace('/run-job/environments'); + } + }, [router, selectedEnv, selectedResources]); + + return ( + + currentStep="finish" steps={getRunJobSteps(freeCompute)} />} + /> + {nodeInfo && selectedEnv && selectedResources && selectedToken ? ( +
+ +
+ ) : null} +
+ ); +}; + +export default SummaryPage; diff --git a/src/components/run-job/summary.module.css b/src/components/run-job/summary.module.css new file mode 100644 index 00000000..c4292375 --- /dev/null +++ b/src/components/run-job/summary.module.css @@ -0,0 +1,41 @@ +.grid { + display: flex; + flex-direction: column; + gap: 8px 32px; + + .label { + font-weight: 700; + color: var(--text-secondary); + } + + .gpus { + display: flex; + gap: 12px; + } + + @media (min-width: 768px) { + display: grid; + grid-template-columns: auto 1fr; + } +} + +.footer { + align-items: center; + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px; + + .buttons { + display: flex; + flex-direction: column; + flex: 1; + gap: 16px; + + @media (min-width: 576px) { + align-items: center; + flex-direction: row; + justify-content: end; + } + } +} diff --git a/src/components/run-job/summary.tsx b/src/components/run-job/summary.tsx new file mode 100644 index 00000000..41069bad --- /dev/null +++ b/src/components/run-job/summary.tsx @@ -0,0 +1,219 @@ +import VscodeLogoWhite from '@/assets/icons/ide/vscode-white.svg'; +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import GpuLabel from '@/components/gpu-label/gpu-label'; +import useEnvResources from '@/components/hooks/use-env-resources'; +import { SelectedToken } from '@/context/run-job-context'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { ComputeEnvironment, EnvNodeInfo, EnvResourcesSelection } from '@/types/environments'; +import { Ide } from '@/types/ide'; +import { useSignMessage, useSmartAccountClient } from '@account-kit/react'; +import { ListItemIcon, Menu, MenuItem } from '@mui/material'; +import classNames from 'classnames'; +import { useState } from 'react'; +import { toast } from 'react-toastify'; +import styles from './summary.module.css'; + +type SummaryProps = { + estimatedTotalCost: number; + freeCompute: boolean; + nodeInfo: EnvNodeInfo; + selectedEnv: ComputeEnvironment; + selectedResources: EnvResourcesSelection; + token: SelectedToken; +}; + +const Summary = ({ + estimatedTotalCost, + freeCompute, + nodeInfo, + selectedEnv, + selectedResources, + token, +}: SummaryProps) => { + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + const { signMessageAsync } = useSignMessage({ + client, + }); + + const { account, ocean } = useOceanAccount(); + + const { gpus } = useEnvResources({ + environment: selectedEnv, + freeCompute, + tokenAddress: token.address, + }); + + const [anchorEl, setAnchorEl] = useState(null); + const [authToken, setAuthToken] = useState(null); + + const generateToken = async () => { + if (!account.address || !ocean) { + return; + } + try { + const nonce = await ocean.getNonce(account.address, nodeInfo.id); + const incrementedNonce = nonce + 1; + const signedMessage = await signMessageAsync({ + message: account.address + incrementedNonce, + }); + const token = await ocean.generateAuthToken(account.address, incrementedNonce, signedMessage, nodeInfo.id); + setAuthToken(token); + } catch (error) { + console.error('Failed to generate auth token:', error); + toast.error('Failed to generate auth token'); + } + }; + + const openIde = async (uriScheme: string) => { + if (!authToken || !account.address || !ocean) { + return; + } + const resources = [ + { + id: selectedResources.cpuId, + amount: selectedResources.cpuCores, + }, + { + id: selectedResources.ramId, + amount: selectedResources.ram, + }, + { + id: selectedResources.diskId, + amount: selectedResources.diskSpace, + }, + ...gpus.map((availableGpu) => ({ + id: availableGpu.id, + amount: selectedResources.gpus.find((selectedGpu) => selectedGpu.id === availableGpu.id) ? 1 : 0, + })), + ]; + const isFreeCompute = estimatedTotalCost === 0; + ocean.updateConfiguration( + authToken, + account.address, + nodeInfo.id, + isFreeCompute, + selectedEnv.id, + token.address, + selectedResources.maxJobDurationHours * 60 * 60, + resources, + uriScheme + ); + }; + + const handleOpenIdeMenu = () => { + setAnchorEl(document.getElementById('choose-editor-button')); + }; + + const handleCloseIdeMenu = () => { + setAnchorEl(null); + }; + + return ( + +

Your selection

+
+ {nodeInfo.friendlyName ? ( + <> +
Node:
+
{nodeInfo.friendlyName}
+ + ) : null} +
Peer ID:
+
{nodeInfo.id}
+
Environment:
+
{selectedEnv.consumerAddress}
+
Fee token address:
+
{token.address}
+
Job duration:
+
+ {selectedResources!.maxJobDurationHours} hours ({selectedResources!.maxJobDurationHours * 60 * 60} seconds) +
+
GPU:
+
+ {selectedResources.gpus.length + ? selectedResources.gpus.map((gpu) => ) + : '-'} +
+
CPU cores:
+
{selectedResources!.cpuCores}
+
RAM:
+
{selectedResources!.ram} GB
+
Disk space:
+
{selectedResources!.diskSpace} GB
+
Total cost:
+
{freeCompute ? 'Free' : `${estimatedTotalCost} ${token.symbol}`}
+
+ {authToken ? ( +
+
Continue on our VSCode extension, or select your editor of choice
+
+ + + {Object.values(Ide).map((ide) => ( + { + openIde(ide.uriScheme); + handleCloseIdeMenu(); + }} + > + {ide.icon} + {ide.name} + + ))} + + +
+
+ ) : ( +
+
Continue on our VSCode extension, or select your editor of choice
+
+ +
+
+ )} +
+ ); +}; + +export default Summary; diff --git a/src/components/run-node/configure-page.tsx b/src/components/run-node/configure-page.tsx new file mode 100644 index 00000000..9360f40e --- /dev/null +++ b/src/components/run-node/configure-page.tsx @@ -0,0 +1,38 @@ +import Container from '@/components/container/container'; +import NodeConfig from '@/components/run-node/node-config'; +import SectionTitle from '@/components/section-title/section-title'; +import { getRunNodeSteps, RunNodeStep } from '@/components/stepper/get-steps'; +import Stepper from '@/components/stepper/stepper'; +import { useRunNodeContext } from '@/context/run-node-context'; +import { useRouter } from 'next/router'; +import { useEffect } from 'react'; + +const ConfigurePage = () => { + const router = useRouter(); + + const { peerId } = useRunNodeContext(); + + useEffect(() => { + if (!peerId) { + router.replace('/run-node/setup'); + } + }, [peerId, router]); + + return ( + + currentStep="configure" steps={getRunNodeSteps()} />} + /> + {peerId ? ( +
+ +
+ ) : null} +
+ ); +}; + +export default ConfigurePage; diff --git a/src/components/run-node/node-config.module.css b/src/components/run-node/node-config.module.css new file mode 100644 index 00000000..9e7f5993 --- /dev/null +++ b/src/components/run-node/node-config.module.css @@ -0,0 +1,19 @@ +.editorWrapper { + border-radius: 16px; + border: 1px solid var(--border-glass); + max-height: calc(100vh - 300px); + overflow-y: auto; +} + +.buttons { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px; + justify-content: flex-end; +} + +.errorsList { + list-style-type: disc; + padding-left: 14px; +} diff --git a/src/components/run-node/node-config.tsx b/src/components/run-node/node-config.tsx new file mode 100644 index 00000000..df5eda9f --- /dev/null +++ b/src/components/run-node/node-config.tsx @@ -0,0 +1,78 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import NodePreview from '@/components/run-node/node-preview'; +import { useRunNodeContext } from '@/context/run-node-context'; +import { githubDarkTheme, JsonEditor } from 'json-edit-react'; +import { useEffect, useState } from 'react'; +import styles from './node-config.module.css'; + +const NodeConfig = () => { + const { configErrors, loadingPushConfig, loadingFetchConfig, nodeConfig, pushConfig } = useRunNodeContext(); + + const [editedConfig, setEditedConfig] = useState(nodeConfig ?? {}); + + useEffect(() => { + setEditedConfig(nodeConfig ?? {}); + }, [nodeConfig]); + + return ( + + {loadingFetchConfig ? ( + 'Loading config...' + ) : ( + <> +
+ setEditedConfig(newData as Record)} + theme={githubDarkTheme} + /> +
+ {editedConfig ? : null} + {configErrors.length > 0 ? ( + +

Format errors

+
    + {configErrors.map((error, index) => ( +
  • {error}
  • + ))} +
+
+ ) : null} + + )} +
+ + +
+
+ ); +}; + +export default NodeConfig; diff --git a/src/components/run-node/node-connection.module.css b/src/components/run-node/node-connection.module.css new file mode 100644 index 00000000..96a0f184 --- /dev/null +++ b/src/components/run-node/node-connection.module.css @@ -0,0 +1,11 @@ +.header { + align-items: center; + display: flex; + gap: 8px; +} + +.form { + display: flex; + flex-direction: column; + gap: 16px; +} diff --git a/src/components/run-node/node-connection.tsx b/src/components/run-node/node-connection.tsx new file mode 100644 index 00000000..3e3ad6a4 --- /dev/null +++ b/src/components/run-node/node-connection.tsx @@ -0,0 +1,86 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import Input from '@/components/input/input'; +import { useRunNodeContext } from '@/context/run-node-context'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { useAuthModal } from '@account-kit/react'; +import LinkIcon from '@mui/icons-material/Link'; +import classNames from 'classnames'; +import { useFormik } from 'formik'; +import * as Yup from 'yup'; +import styles from './node-connection.module.css'; + +type ConnectFormValues = { + nodeId: string; +}; + +const NodeConnection = () => { + const { openAuthModal } = useAuthModal(); + + const { account } = useOceanAccount(); + + const { clearRunNodeSelection, connectToNode, peerId } = useRunNodeContext(); + + const isConnected = !!peerId; + + const formik = useFormik({ + initialValues: { + nodeId: '', + }, + validationSchema: Yup.object().shape({ + nodeId: Yup.string().required('Node ID is required'), + }), + onSubmit: async (values) => { + if (!account.isConnected) { + openAuthModal(); + return; + } + await connectToNode(values.nodeId); + }, + }); + + return ( + +
+

Connect to your node

+
+ {isConnected ? 'Connected' : 'Not connected'} +
+
+ {isConnected ? ( + <> +
+ Currently connected to node ID: {peerId} +
+ + + ) : ( + <> +
Enter the ID of your node to connect and configure it
+ + + + )} +
+ ); +}; + +export default NodeConnection; diff --git a/src/components/run-node/node-preview.module.css b/src/components/run-node/node-preview.module.css new file mode 100644 index 00000000..ce864cca --- /dev/null +++ b/src/components/run-node/node-preview.module.css @@ -0,0 +1,37 @@ +.grid { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 16px 32px; +} + +.label { + align-items: center; + color: var(--text-secondary); + display: flex; + font-size: 14px; + + &.heading, + .heading { + color: var(--text-primary); + font-size: 14px; + font-weight: 600; + } + + &.em, + .em { + color: var(--text-primary); + font-weight: 700; + } + + .icon { + color: var(--accent1); + margin-right: 4px; + } +} + +.envWrapper { + display: flex; + flex-direction: column; + gap: 8px; +} diff --git a/src/components/run-node/node-preview.tsx b/src/components/run-node/node-preview.tsx new file mode 100644 index 00000000..ef131cbd --- /dev/null +++ b/src/components/run-node/node-preview.tsx @@ -0,0 +1,169 @@ +import Card from '@/components/card/card'; +import GpuLabel from '@/components/gpu-label/gpu-label'; +import useEnvResources from '@/components/hooks/use-env-resources'; +import { USDC_TOKEN_ADDRESS } from '@/constants/tokens'; +import { ComputeEnvironment } from '@/types/environments'; +import DnsIcon from '@mui/icons-material/Dns'; +import MemoryIcon from '@mui/icons-material/Memory'; +import SdStorageIcon from '@mui/icons-material/SdStorage'; +import classNames from 'classnames'; +import styles from './node-preview.module.css'; + +type NodePreviewProps = { + nodeConfig: Record; +}; + +const NodePreview = ({ nodeConfig }: NodePreviewProps) => { + return ( + +

Preview configuration

+ {nodeConfig.dockerComputeEnvironments?.length > 0 ? ( + nodeConfig.dockerComputeEnvironments?.map((env: ComputeEnvironment, index: number) => ( + 1} + /> + )) + ) : ( +

No valid compute environments to display

+ )} +
+ ); +}; + +const NodeEnvPreview = ({ + environment, + index, + showEnvName, +}: { + environment: ComputeEnvironment; + index: number; + showEnvName?: boolean; +}) => { + const { cpu, cpuFee, disk, diskFee, gpus, gpuFees, ram, ramFee } = useEnvResources({ + environment, + freeCompute: false, + tokenAddress: USDC_TOKEN_ADDRESS, + }); + + // TODO + const tokenSymbol = 'USDC'; + + const renderCpu = () => { + if (!cpu) { + return null; + } + const max = cpu.max ?? cpu.total ?? 0; + const fee = cpuFee ?? 0; + return ( +
+
+ + {cpu?.description} +
+
+ {fee} {tokenSymbol}/min +
+
+ 1 - {max} +   available +
+
+ ); + }; + + const renderGpus = () => { + const mergedGpus = gpus.reduce( + (merged, gpuToCheck) => { + const existingGpu = merged.find( + (gpu) => gpu.description === gpuToCheck.description && gpuFees[gpu.id] === gpuFees[gpuToCheck.id] + ); + if (existingGpu) { + existingGpu.inUse = (existingGpu.inUse ?? 0) + (gpuToCheck.inUse ?? 0); + existingGpu.max += gpuToCheck.max; + } else { + merged.push({ ...gpuToCheck }); + } + return merged; + }, + [] as typeof gpus + ); + return mergedGpus.map((gpu) => { + const max = gpu.max ?? gpu.total ?? 0; + const fee = gpuFees[gpu.id] ?? 0; + return ( +
+ +
+ {fee} {tokenSymbol}/min +
+
+ 0 - {max} +  available +
+
+ ); + }); + }; + + const renderRam = () => { + if (!ram) { + return null; + } + const max = ram.max ?? ram.total ?? 0; + const fee = ramFee ?? 0; + return ( +
+
+ + GB RAM capacity +
+
+ {fee} {tokenSymbol}/min +
+
+ 0 - {max} +  available +
+
+ ); + }; + + const renderDisk = () => { + if (!disk) { + return null; + } + const max = disk.max ?? disk.total ?? 0; + const fee = diskFee ?? 0; + return ( +
+
+ + GB Disk space +
+
+ {fee} {tokenSymbol}/min +
+
+ 0 - {max} +  available +
+
+ ); + }; + return ( +
+ {showEnvName ?

Environment {index}

: null} +
+ {renderGpus()} + {renderCpu()} + {renderRam()} + {renderDisk()} +
+
+ ); +}; + +export default NodePreview; diff --git a/src/components/run-node/node-setup.module.css b/src/components/run-node/node-setup.module.css new file mode 100644 index 00000000..c265828b --- /dev/null +++ b/src/components/run-node/node-setup.module.css @@ -0,0 +1,5 @@ +.section { + display: flex; + flex-direction: column; + gap: 8px; +} diff --git a/src/components/run-node/node-setup.tsx b/src/components/run-node/node-setup.tsx new file mode 100644 index 00000000..7df284cd --- /dev/null +++ b/src/components/run-node/node-setup.tsx @@ -0,0 +1,54 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import { CodeBlock } from '@/components/code-block/code-block'; +import NodeConnection from '@/components/run-node/node-connection'; +import { useRunNodeContext } from '@/context/run-node-context'; +import { useRouter } from 'next/router'; +import styles from './node-setup.module.css'; + +const NodeSetup = () => { + const router = useRouter(); + + const { fetchConfig, peerId } = useRunNodeContext(); + + const goToConfig = async () => { + await fetchConfig(); + router.push('/run-node/configure'); + }; + + return ( + +

Set up Ocean Node via Docker

+
Before starting, make sure the system requirements are met
+
+ Docker Engine and Docker Compose are recommended for hosting a node eligible for incentives +
+ You can explore other options in the Ocean Node readme +
+
+
1. Download the setup script
+ +
+
+
2. Run the setup script and provide the required info
+ +
+
+
3. Run Ocean Node
+ +
+
+
4. Confirm that Docker containers are running
+ +
+ + {peerId ? ( + + ) : null} +
+ ); +}; + +export default NodeSetup; diff --git a/src/components/run-node/setup-page.tsx b/src/components/run-node/setup-page.tsx new file mode 100644 index 00000000..315f7389 --- /dev/null +++ b/src/components/run-node/setup-page.tsx @@ -0,0 +1,23 @@ +import Container from '@/components/container/container'; +import NodeSetup from '@/components/run-node/node-setup'; +import SectionTitle from '@/components/section-title/section-title'; +import { getRunNodeSteps, RunNodeStep } from '@/components/stepper/get-steps'; +import Stepper from '@/components/stepper/stepper'; + +const SetupPage = () => { + return ( + + currentStep="setup" steps={getRunNodeSteps()} />} + /> +
+ +
+
+ ); +}; + +export default SetupPage; diff --git a/src/components/section-title/section-title.module.css b/src/components/section-title/section-title.module.css new file mode 100644 index 00000000..049947e7 --- /dev/null +++ b/src/components/section-title/section-title.module.css @@ -0,0 +1,17 @@ +.root { + text-align: center; + display: flex; + flex-direction: column; + align-items: center; + gap: 16px; +} + +.title { + margin: 0; + color: #009bff; + font-size: 40px; +} + +.subTitle { + font-size: 20px; +} diff --git a/src/components/section-title/section-title.tsx b/src/components/section-title/section-title.tsx new file mode 100644 index 00000000..6d9f1842 --- /dev/null +++ b/src/components/section-title/section-title.tsx @@ -0,0 +1,21 @@ +import cx from 'classnames'; +import styles from './section-title.module.css'; + +type SectionTitleProps = { + title: string; + subTitle?: string; + className?: string; + contentBetween?: React.ReactNode; +}; + +const SectionTitle = ({ title, subTitle, className, contentBetween }: SectionTitleProps) => { + return ( +
+

{title}

+ {contentBetween} + {subTitle &&

{subTitle}

} +
+ ); +}; + +export default SectionTitle; diff --git a/src/components/shared/NetworkSelector.tsx b/src/components/shared/NetworkSelector.tsx deleted file mode 100644 index bd056115..00000000 --- a/src/components/shared/NetworkSelector.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import { Select, MenuItem, InputLabel, FormControl } from '@mui/material' -import { useAdminContext } from '@/context/AdminProvider' - -interface NetworkSelectorProps { - chainId?: string - setChainId: (chainId: string) => void -} - -export default function NetworkSelector({ chainId, setChainId }: NetworkSelectorProps) { - const { networks } = useAdminContext() - - return ( - - Network - - - ) -} diff --git a/src/components/slider/slider.tsx b/src/components/slider/slider.tsx new file mode 100644 index 00000000..f7dcec57 --- /dev/null +++ b/src/components/slider/slider.tsx @@ -0,0 +1,62 @@ +import InputWrapper from '@/components/input/input-wrapper'; +import { Slider as MaterialSlider, styled } from '@mui/material'; + +const StyledSliderWrapper = styled('div')(() => ({ + padding: '0 12px', +})); + +type SliderProps = { + className?: string; + errorText?: string; + hint?: string; + label?: string; + marks?: boolean; + max?: number; + min?: number; + name?: string; + onBlur?: (e: React.FocusEvent) => void; + onChange?: (e: Event, value: number) => void; + placeholder?: string; + size?: 'sm' | 'md'; + startAdornment?: React.ReactNode; + step?: number; + topRight?: React.ReactNode; + value?: number; + valueLabelFormat?: (value: number) => string; +}; + +const Slider = ({ + className, + errorText, + hint, + label, + marks, + max, + min, + name, + onBlur, + onChange, + step, + topRight, + value, + valueLabelFormat, +}: SliderProps) => ( + + + + + +); + +export default Slider; diff --git a/src/components/stats/jobs-revenue-stats.module.css b/src/components/stats/jobs-revenue-stats.module.css new file mode 100644 index 00000000..88771453 --- /dev/null +++ b/src/components/stats/jobs-revenue-stats.module.css @@ -0,0 +1,31 @@ +.root { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 48px; +} + +.revenueWrapper { + align-content: start; + align-items: center; + display: grid; + grid-template-rows: auto 110px; + gap: 24px; + + .heading { + text-align: center; + } + + .revenue { + text-align: center; + + .token { + color: var(--text-secondary); + font-size: 14px; + } + + .amount { + font-size: 48px; + font-weight: 600; + } + } +} diff --git a/src/components/stats/jobs-revenue-stats.tsx b/src/components/stats/jobs-revenue-stats.tsx new file mode 100644 index 00000000..1b2471b7 --- /dev/null +++ b/src/components/stats/jobs-revenue-stats.tsx @@ -0,0 +1,46 @@ +import Card from '@/components/card/card'; +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import VBarChart from '@/components/chart/v-bar-chart'; +import { useStatsContext } from '@/context/stats-context'; +import { formatNumber } from '@/utils/formatters'; +import { useEffect } from 'react'; +import styles from './jobs-revenue-stats.module.css'; + +const JobsRevenueStats = () => { + const { jobsPerEpoch, revenuePerEpoch, totalJobs, totalRevenue, fetchAnalyticsGlobalStats } = useStatsContext(); + + useEffect(() => { + fetchAnalyticsGlobalStats(); + }, [fetchAnalyticsGlobalStats]); + + return ( + +
+

Total revenue

+
+ USDC {formatNumber(totalRevenue)} +
+
+ + +
+ ); +}; + +export default JobsRevenueStats; diff --git a/src/components/stats/stats-page.tsx b/src/components/stats/stats-page.tsx new file mode 100644 index 00000000..101599c4 --- /dev/null +++ b/src/components/stats/stats-page.tsx @@ -0,0 +1,26 @@ +import Container from '@/components/container/container'; +import SectionTitle from '@/components/section-title/section-title'; +import JobsRevenueStats from '@/components/stats/jobs-revenue-stats'; +import NodeSpecStats from '@/components/stats/system-stats'; +import TopGpuModels from '@/components/stats/top-gpu-models'; +import TopNodes from '@/components/stats/top-nodes'; + +const StatsPage = () => { + return ( + + +
+ + + + +
+
+ ); +}; + +export default StatsPage; diff --git a/src/components/stats/system-stats.module.css b/src/components/stats/system-stats.module.css new file mode 100644 index 00000000..a0e2454d --- /dev/null +++ b/src/components/stats/system-stats.module.css @@ -0,0 +1,8 @@ +.root { + column-gap: 16px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; + row-gap: 32px; +} diff --git a/src/components/stats/system-stats.tsx b/src/components/stats/system-stats.tsx new file mode 100644 index 00000000..92a1471f --- /dev/null +++ b/src/components/stats/system-stats.tsx @@ -0,0 +1,105 @@ +import Card from '@/components/card/card'; +import { ChartTypeEnum } from '@/components/chart/chart-type'; +import PieChart from '@/components/chart/pie-chart'; +import { useStatsContext } from '@/context/stats-context'; +import { SystemStatsData } from '@/types/stats'; +import { useEffect } from 'react'; +import styles from './system-stats.module.css'; + +const brandColors = { + primary: ['#009bff', '#0084dc', '#006eb9', '#005896', '#004273', '#002c50'], + other: '#ffffff', +}; + +interface ChartDataItem { + name: string; + value: number; + color: string; + details?: string[]; +} + +const processChartData = (data: Record, maxSlices: number): ChartDataItem[] => { + if (!data) return []; + + const sortedEntries = Object.entries(data).sort(([, a], [, b]) => b - a); + + const mainEntries = sortedEntries.slice(0, maxSlices); + const otherEntries = sortedEntries.slice(maxSlices); + const otherCount = otherEntries.reduce((sum, [, count]) => sum + count, 0); + + const result = mainEntries.map( + ([key, count], index): ChartDataItem => ({ + name: key, + value: count, + color: brandColors.primary[index], + }) + ); + + if (otherCount > 0) { + result.push({ + name: 'Other', + value: otherCount, + color: brandColors.other, + details: otherEntries.map(([key, count]) => `${key}: ${count} nodes`), + }); + } + + return result; +}; + +const processCpuData = (stats: SystemStatsData): ChartDataItem[] => { + if (!stats?.cpuCounts) return []; + const data = processChartData(stats.cpuCounts, 5); + return data.map((item) => ({ + ...item, + name: item.name === 'Other' ? item.name : `${item.name} CPU${item.name !== '1' ? 's' : ''}`, + details: item.details?.map((detail) => { + const [count, nodes] = detail.split(':'); + return `${count} CPU${count !== '1' ? 's' : ''}:${nodes}`; + }), + })); +}; + +const processOsData = (stats: SystemStatsData): ChartDataItem[] => { + if (!stats?.operatingSystems) return []; + return processChartData(stats.operatingSystems, 3); +}; + +const processCpuArchData = (stats: SystemStatsData): ChartDataItem[] => { + if (!stats?.cpuArchitectures) return []; + const data = processChartData(stats.cpuArchitectures, 3); + + return data.map((item) => ({ + ...item, + name: item.name.toUpperCase(), + details: item.details?.map((detail) => detail.toUpperCase()), + })); +}; + +const SystemStats = () => { + const { fetchSystemStats, systemStats } = useStatsContext(); + + useEffect(() => { + if (!systemStats.cpuCounts || Object.keys(systemStats.cpuCounts).length === 0) { + fetchSystemStats(); + } + }, [fetchSystemStats, systemStats.cpuCounts]); + + return ( + + + + + + ); +}; + +export default SystemStats; diff --git a/src/components/stats/top-gpu-models.tsx b/src/components/stats/top-gpu-models.tsx new file mode 100644 index 00000000..f56ab8c4 --- /dev/null +++ b/src/components/stats/top-gpu-models.tsx @@ -0,0 +1,21 @@ +import Card from '@/components/card/card'; +import HBarChart from '@/components/chart/h-bar-chart'; +import { useStatsContext } from '@/context/stats-context'; +import { useEffect } from 'react'; + +const TopGpuModels = () => { + const { topGpuModels, fetchTopGpus } = useStatsContext(); + + useEffect(() => { + fetchTopGpus(); + }, [fetchTopGpus]); + + return ( + +

Top GPUs by popularity

+ +
+ ); +}; + +export default TopGpuModels; diff --git a/src/components/stats/top-nodes.tsx b/src/components/stats/top-nodes.tsx new file mode 100644 index 00000000..0479fa4b --- /dev/null +++ b/src/components/stats/top-nodes.tsx @@ -0,0 +1,45 @@ +import Card from '@/components/card/card'; +import { Table } from '@/components/table/table'; +import { TableTypeEnum } from '@/components/table/table-type'; +import { useStatsContext } from '@/context/stats-context'; +import { Node } from '@/types/nodes'; +import { useEffect } from 'react'; + +const TopNodes = () => { + const { topNodesByJobs, topNodesByRevenue, fetchTopNodesByRevenue, fetchTopNodesByJobCount } = useStatsContext(); + + useEffect(() => { + fetchTopNodesByRevenue(); + }, [fetchTopNodesByRevenue]); + + useEffect(() => { + fetchTopNodesByJobCount(); + }, [fetchTopNodesByJobCount]); + + return ( + <> + +

Top nodes by revenue

+ + autoHeight + data={topNodesByRevenue.map((item, idx) => ({ index: idx + 1, ...item }))} + paginationType="none" + tableType={TableTypeEnum.NODES_TOP_REVENUE} + getRowId={(row) => row.nodeId} + /> +
+ +

Top nodes by number of jobs

+ + autoHeight + data={topNodesByJobs.map((item, idx) => ({ index: idx + 1, ...item }))} + paginationType="none" + tableType={TableTypeEnum.NODES_TOP_JOBS} + getRowId={(row) => row.nodeId} + /> +
+ + ); +}; + +export default TopNodes; diff --git a/src/components/stepper/get-steps.tsx b/src/components/stepper/get-steps.tsx new file mode 100644 index 00000000..014ab5bb --- /dev/null +++ b/src/components/stepper/get-steps.tsx @@ -0,0 +1,15 @@ +import { Step } from '@/components/stepper/stepper'; + +export type RunJobStep = 'environment' | 'resources' | 'payment' | 'finish'; +export const getRunJobSteps = (freeCompute: boolean): Step[] => [ + { key: 'environment', label: 'Environment' }, + { key: 'resources', label: 'Resources' }, + { key: 'payment', label: 'Payment', hidden: freeCompute }, + { key: 'finish', label: 'Finish' }, +]; + +export type RunNodeStep = 'setup' | 'configure'; +export const getRunNodeSteps = (): Step[] => [ + { key: 'setup', label: 'Set up' }, + { key: 'configure', label: 'Configure' }, +]; diff --git a/src/components/stepper/stepper.module.css b/src/components/stepper/stepper.module.css new file mode 100644 index 00000000..ffa6d940 --- /dev/null +++ b/src/components/stepper/stepper.module.css @@ -0,0 +1,50 @@ +.root { + border-radius: 24px; + display: flex; + flex-direction: column; + font-size: 16px; + font-weight: 500; + gap: 8px; + min-width: 250px; + padding: 8px; + + .separator { + color: var(--border-glass); + transform: rotate(90deg); + + &.active { + color: var(--success); + } + } + + .step { + align-items: center; + background: var(--background-glass); + border: 2px solid transparent; + border-radius: 18px; + color: var(--text-primary); + display: flex; + gap: 8px; + justify-content: center; + padding: 8px 18px; + + &.active { + background: var(--accent1); + } + + &.complete { + background: none; + border-color: var(--success); + color: var(--success); + } + } + + @media (min-width: 992px) { + align-items: center; + flex-direction: row; + + .separator { + transform: rotate(0deg); + } + } +} diff --git a/src/components/stepper/stepper.tsx b/src/components/stepper/stepper.tsx new file mode 100644 index 00000000..b0c8b819 --- /dev/null +++ b/src/components/stepper/stepper.tsx @@ -0,0 +1,49 @@ +import Card from '@/components/card/card'; +import CheckCircleOutlineIcon from '@mui/icons-material/CheckCircleOutline'; +import classNames from 'classnames'; +import { useMemo } from 'react'; +import styles from './stepper.module.css'; + +export type Step = { + hidden?: boolean; + key: T; + label: string; +}; + +type StepperProps = { + currentStep: T; + steps: Step[]; +}; + +const Stepper = ({ currentStep, steps }: StepperProps) => { + const visibleSteps = useMemo(() => steps.filter((step) => !step.hidden), [steps]); + + const currentStepIndex = useMemo( + () => visibleSteps.findIndex((step) => step.key === currentStep), + [currentStep, visibleSteps] + ); + + const renderStep = (step: Step, index: number) => { + const isActive = currentStepIndex === index; + const isComplete = currentStepIndex > index; + return ( + <> + {index > 0 ? ( +
—
+ ) : null} +
+ {isComplete ? : null} + {step.label} +
+ + ); + }; + + return ( + + {visibleSteps.map((step, index) => renderStep(step, index))} + + ); +}; + +export default Stepper; diff --git a/src/components/tab-bar/tab-bar.module.css b/src/components/tab-bar/tab-bar.module.css new file mode 100644 index 00000000..309ef60c --- /dev/null +++ b/src/components/tab-bar/tab-bar.module.css @@ -0,0 +1,27 @@ +.root { + display: inline-flex; + flex-direction: row; + flex-wrap: wrap; + gap: 8px; + padding: 8px; + + .tab { + border-radius: 32px; + font-size: 16px; + font-weight: 600; + padding: 8px 18px; + + &:not(.tabActive) { + cursor: pointer; + + &:hover { + background-color: var(--background-glass); + } + } + } + + .tabActive { + background-color: var(--accent1); + color: var(--text-primary); + } +} diff --git a/src/components/tab-bar/tab-bar.tsx b/src/components/tab-bar/tab-bar.tsx new file mode 100644 index 00000000..973d712e --- /dev/null +++ b/src/components/tab-bar/tab-bar.tsx @@ -0,0 +1,46 @@ +import Card from '@/components/card/card'; +import classNames from 'classnames'; +import { useRouter } from 'next/router'; +import styles from './tab-bar.module.css'; + +type Tab = { + href?: string; + key: string; + label: React.ReactNode; + onClick?: () => void; +}; + +type TabBarProps = { + activeKey: string; + className?: string; + tabs: Tab[]; +}; + +const TabBar = ({ activeKey, className, tabs }: TabBarProps) => { + const router = useRouter(); + + const handleTabClick = (tab: Tab) => { + if (tab.onClick) { + tab.onClick(); + } + if (tab.href) { + router.push(tab.href); + } + }; + + return ( + + {tabs.map((tab) => ( +
handleTabClick(tab)} + > + {tab.label} +
+ ))} +
+ ); +}; + +export default TabBar; diff --git a/src/components/table/columns.tsx b/src/components/table/columns.tsx new file mode 100644 index 00000000..5e8c3c60 --- /dev/null +++ b/src/components/table/columns.tsx @@ -0,0 +1,357 @@ +import InfoButton from '@/components/button/info-button'; +import JobInfoButton from '@/components/button/job-info-button'; +import { ComputeJob } from '@/types/jobs'; +import { GPUPopularity, Node } from '@/types/nodes'; +import { UnbanRequest } from '@/types/unban-requests'; +import { formatNumber } from '@/utils/formatters'; +import CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined'; +import ErrorOutlineOutlinedIcon from '@mui/icons-material/ErrorOutlineOutlined'; +import HighlightOffOutlinedIcon from '@mui/icons-material/HighlightOffOutlined'; +import { getGridNumericOperators, getGridStringOperators, GridColDef, GridRenderCellParams } from '@mui/x-data-grid'; +import classNames from 'classnames'; + +function getEligibleCheckbox(eligible = false, eligibilityCauseStr?: string) { + if (eligible) { + return ( + <> + + Eligible + + ); + } else { + switch (eligibilityCauseStr) { + case 'Invalid status response': + return ( + <> + + Not eligible + + ); + + case 'Banned': + return ( + <> + + Banned + + ); + + case 'No peer data': + return ( + <> + + Not eligible + + ); + + default: + return ( + <> + + Not eligible + + ); + } + } +} + +function getUnbanAttemptResult(result: string) { + switch (result) { + case 'Pending': + return ( + <> + + Pending + + ); + + default: + return ( + <> + + Failed + + ); + } +} + +function getUnbanAttemptStatus(status: string) { + return ( + + {status} + + ); +} + +export const nodesLeaderboardColumns: GridColDef[] = [ + { + align: 'center', + field: 'index', + filterable: false, + headerAlign: 'center', + headerName: 'Index', + sortable: false, + }, + { + field: 'friendlyName', + filterable: true, + flex: 1, + headerName: 'Name', + sortable: false, + filterOperators: getGridStringOperators().filter( + (operator) => operator.value === 'contains' || operator.value === 'startsWith' || operator.value === 'equals' + ), + }, + { + field: 'gpus', + filterable: false, + flex: 1, + headerName: 'GPUs', + sortable: false, + renderCell: (params) => params.value?.map((gpu: GPUPopularity) => `${gpu.vendor} ${gpu.name}`).join(', ') ?? '-', + }, + { + field: 'latestBenchmarkResults.totalScore', + filterable: false, + flex: 1, + headerName: 'Total Score', + sortable: false, + valueGetter: (_value, row) => row.latestBenchmarkResults?.totalScore || 0, + filterOperators: getGridNumericOperators().filter( + (operator) => operator.value === '=' || operator.value === '>' || operator.value === '<' + ), + }, + { + field: 'location.region', + filterable: true, + flex: 1, + headerName: 'Region', + valueGetter: (_value, row) => row.location?.region, + sortable: false, + filterOperators: getGridStringOperators().filter( + (operator) => operator.value === 'contains' || operator.value === 'startsWith' || operator.value === 'equals' + ), + }, + { + field: 'eligible', + filterable: true, + flex: 1, + headerName: 'Reward eligibility', + sortable: false, + renderCell: (params: GridRenderCellParams) => ( +
+ {getEligibleCheckbox(params.row.eligible, params.row.eligibilityCauseStr)} +
+ ), + filterOperators: getGridStringOperators().filter((operator) => operator.value === 'equals'), + }, + { + align: 'right', + field: 'actions', + filterable: false, + headerAlign: 'center', + headerName: 'Actions', + sortable: false, + renderCell: (params) => { + return ; + }, + }, +]; + +export const jobsColumns: GridColDef[] = [ + { + align: 'center', + field: 'index', + filterable: false, + headerAlign: 'center', + headerName: 'Index', + sortable: false, + }, + { + field: 'statusText', + filterable: false, + flex: 1, + headerName: 'Status', + sortable: false, + }, + { + field: 'startTime', + filterable: true, + flex: 1, + headerName: 'Start Time', + sortable: false, + filterOperators: getGridNumericOperators().filter( + (operator) => operator.value === '=' || operator.value === '>' || operator.value === '<' + ), + }, + { + field: 'nodeFriendlyName', + filterable: true, + flex: 1, + headerName: 'Node Name', + sortable: false, + }, + { + field: 'amountPaid', + filterable: true, + flex: 1, + headerName: 'Amount Paid', + sortable: false, + valueGetter: (_value, row) => row.paymentInfo?.cost, + filterOperators: getGridNumericOperators().filter( + (operator) => operator.value === '=' || operator.value === '>' || operator.value === '<' + ), + }, + { + field: 'duration', + filterable: true, + flex: 1, + headerName: 'Duration', + sortable: false, + filterOperators: getGridNumericOperators().filter( + (operator) => operator.value === '=' || operator.value === '>' || operator.value === '<' + ), + }, + { + align: 'right', + field: 'actions', + filterable: false, + headerAlign: 'center', + headerName: 'Actions', + sortable: false, + renderCell: (params: GridRenderCellParams) => { + return ; + }, + }, +]; + +export const unbanRequestsColumns: GridColDef[] = [ + { + align: 'center', + field: 'index', + filterable: false, + headerAlign: 'center', + headerName: 'Index', + sortable: false, + }, + { + field: 'status', + filterable: false, + flex: 1, + headerName: 'Status', + sortable: false, + renderCell: (params: GridRenderCellParams) => getUnbanAttemptStatus(params.row.status), + }, + { + field: 'startedAt', + filterable: false, + flex: 1, + headerName: 'Start Time', + sortable: false, + }, + { + field: 'completedAt', + filterable: false, + flex: 1, + headerName: 'End Time', + sortable: false, + }, + { + field: 'benchmarkResult', + filterable: false, + flex: 1, + headerName: 'Result', + sortable: false, + renderCell: (params: GridRenderCellParams) => ( +
+ {getUnbanAttemptResult(params.row.benchmarkResult)} +
+ ), + }, +]; + +export const topNodesByRevenueColumns: GridColDef[] = [ + { + align: 'center', + field: 'index', + filterable: false, + headerAlign: 'center', + headerName: 'Index', + sortable: false, + }, + { + field: 'friendlyName', + filterable: true, + flex: 1, + headerName: 'Name', + sortable: false, + }, + { + field: 'region', + filterable: true, + flex: 1, + headerName: 'Region', + sortable: false, + }, + { + field: 'totalRevenue', + filterable: false, + renderCell: ({ value }) => formatNumber(value.toFixed(2)), + flex: 1, + headerName: 'Total Revenue', + sortable: false, + }, + { + field: 'latestGpuScore', + filterable: false, + flex: 1, + headerName: 'Last benchmark score (GPU)', + sortable: false, + }, +]; + +export const topNodesByJobsColumns: GridColDef[] = [ + { + align: 'center', + field: 'index', + filterable: false, + headerAlign: 'center', + headerName: 'Index', + sortable: false, + }, + { + field: 'friendlyName', + filterable: false, + flex: 1, + headerName: 'Name', + sortable: true, + }, + { + field: 'region', + filterable: false, + flex: 1, + headerName: 'Region', + sortable: true, + }, + { + field: 'totalJobs', + filterable: false, + flex: 1, + headerName: 'Total Jobs', + sortable: true, + }, + { + field: 'latestGpuScore', + filterable: false, + flex: 1, + headerName: 'Last benchmark score (GPU)', + sortable: false, + }, +]; diff --git a/src/components/table/context-type.ts b/src/components/table/context-type.ts new file mode 100644 index 00000000..c6052113 --- /dev/null +++ b/src/components/table/context-type.ts @@ -0,0 +1,21 @@ +import { GridFilterModel } from '@mui/x-data-grid'; + +export type TableContextType = { + crtPage: number; + data: T[]; + error: any; + filterModel: GridFilterModel; + filters: Record; + loading: boolean; + pageSize: number; + searchTerm: string; + sortModel: Record; + totalItems: number; + fetchData: () => Promise; + setCrtPage: (page: TableContextType['crtPage']) => void; + setFilterModel: (filter: TableContextType['filterModel']) => void; + setFilters: (filters: TableContextType['filters']) => void; + setPageSize: (size: TableContextType['pageSize']) => void; + setSearchTerm: (term: string) => void; + setSortModel: (model: TableContextType['sortModel']) => void; +}; diff --git a/src/components/Table/CustomPagination.module.css b/src/components/table/custom-pagination.module.css similarity index 75% rename from src/components/Table/CustomPagination.module.css rename to src/components/table/custom-pagination.module.css index ee09197a..1f89d904 100644 --- a/src/components/Table/CustomPagination.module.css +++ b/src/components/table/custom-pagination.module.css @@ -4,8 +4,8 @@ justify-content: space-between; align-items: center; gap: 16px; - padding: 30px 90px; - font-family: 'Sharp Sans', sans-serif!important; + /* padding: 30px 90px; */ + font-family: var(--font-inter), sans-serif !important; } @media (max-width: 768px) { @@ -14,7 +14,7 @@ padding: 10px; align-items: center; } - + .pagination > div { width: 100%; display: flex; @@ -40,12 +40,12 @@ flex-direction: row; align-items: center; gap: 8px; - font-family: 'Sharp Sans', sans-serif; + font-family: var(--font-inter), sans-serif; } .paginationArrowText { - color: #000000; - font-family: 'Sharp Sans', sans-serif; + color: #ffffff; + font-family: var(--font-inter), sans-serif; font-size: 18px; font-weight: 400; line-height: 18px; @@ -59,12 +59,12 @@ display: flex; align-items: center; gap: 8px; - font-family: 'Sharp Sans', sans-serif; + font-family: var(--font-inter), sans-serif; } .paginationCore { display: flex; align-items: center; gap: 8px; - font-family: 'Sharp Sans', sans-serif!important; + font-family: var(--font-inter), sans-serif !important; } diff --git a/src/components/Table/CustomPagination.tsx b/src/components/table/custom-pagination.tsx similarity index 65% rename from src/components/Table/CustomPagination.tsx rename to src/components/table/custom-pagination.tsx index f25ae4ef..a83a2b9d 100644 --- a/src/components/Table/CustomPagination.tsx +++ b/src/components/table/custom-pagination.tsx @@ -1,142 +1,141 @@ -import React, { useCallback, useState, useEffect } from 'react' +import ArrowBackIcon from '@mui/icons-material/ArrowBack'; +import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'; +import ArrowDropUpIcon from '@mui/icons-material/ArrowDropUp'; +import ArrowForwardIcon from '@mui/icons-material/ArrowForward'; import { - Pagination, - styled, Button, - Typography, - Select, + IconButton, + InputAdornment, MenuItem, + Pagination, + Select, + styled, TextField, - InputAdornment, - IconButton, + Typography, + useMediaQuery, useTheme, - useMediaQuery -} from '@mui/material' -import ArrowBackIcon from '@mui/icons-material/ArrowBack' -import ArrowForwardIcon from '@mui/icons-material/ArrowForward' -import ArrowDropUpIcon from '@mui/icons-material/ArrowDropUp' -import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown' -import styles from './CustomPagination.module.css' +} from '@mui/material'; +import React, { useCallback, useEffect, useState } from 'react'; +import styles from './custom-pagination.module.css'; const StyledPagination = styled(Pagination)(({ theme }) => ({ '& .MuiPaginationItem-root': { - color: '#000000', - fontFamily: 'Sharp Sans, sans-serif', + color: '#ffffff', + fontFamily: 'var(--font-inter), sans-serif', fontSize: '16px', fontWeight: 400, lineHeight: '16px', - paddingTop: '3px' + paddingTop: '3px', }, '& .MuiPaginationItem-page.Mui-selected': { - backgroundColor: '#CF1FB1', + backgroundColor: 'var(--accent1)', color: '#FFFFFF', '&:hover': { - backgroundColor: '#CF1FB1' + backgroundColor: 'var(--accent1)', }, minWidth: '32px', height: '32px', borderRadius: '8px', - padding: '3px 8px' - } -})) + padding: '3px 8px', + }, +})); const NavButton = styled(Button)(({ theme }) => ({ minWidth: 'auto', padding: '6px', '&.Mui-disabled': { - opacity: 0.5 + opacity: 0.5, }, '& .MuiTypography-root': { - fontFamily: "'Sharp Sans', sans-serif", + fontFamily: 'var(--font-inter), sans-serif', fontSize: '16px', fontWeight: 400, - lineHeight: '24px' - } -})) + lineHeight: '24px', + }, +})); const StyledSelect = styled(Select)(({ theme }) => ({ minWidth: 80, marginLeft: theme.spacing(2), '& .MuiOutlinedInput-notchedOutline': { - borderColor: '#CF1FB1' + borderColor: 'var(--accent1)', }, '&:hover .MuiOutlinedInput-notchedOutline': { - borderColor: '#CF1FB1' + borderColor: 'var(--accent1)', }, '&.Mui-focused .MuiOutlinedInput-notchedOutline': { - borderColor: '#CF1FB1' + borderColor: 'var(--accent1)', }, '& .MuiSelect-icon': { - color: '#CF1FB1' + color: 'var(--accent1)', }, '& .MuiSelect-select': { paddingTop: 5, paddingBottom: 5, - fontFamily: "'Sharp Sans', sans-serif", + fontFamily: 'var(--font-inter), sans-serif', fontSize: '16px', fontWeight: 400, lineHeight: '24px', - color: '#000000' + color: '#ffffff', }, '& .MuiMenuItem-root': { - fontFamily: "'Sharp Sans', sans-serif", + fontFamily: 'var(--font-inter), sans-serif', fontSize: '16px', fontWeight: 400, lineHeight: '16px', - color: '#000000' - } -})) + color: '#ffffff', + }, +})); const StyledTextField = styled(TextField)(({ theme }) => ({ '& .MuiOutlinedInput-root': { '& fieldset': { - borderColor: '#CF1FB1', - borderRadius: '4px' + borderColor: 'var(--accent1)', + borderRadius: '4px', }, '&:hover fieldset': { - borderColor: '#CF1FB1' + borderColor: 'var(--accent1)', }, '&.Mui-focused fieldset': { - borderColor: '#CF1FB1' - } + borderColor: 'var(--accent1)', + }, }, '& .MuiInputBase-input': { padding: '5px 12px', - fontFamily: "'Sharp Sans', sans-serif", + fontFamily: 'var(--font-inter), sans-serif', fontSize: '16px', fontWeight: 400, lineHeight: '24px', - color: '#000000', - minWidth: '42px' + color: '#ffffff', + minWidth: '42px', }, '& .MuiInputBase-input::placeholder': { color: '#A0AEC0', - opacity: 1 + opacity: 1, + }, + '& input[type=number]::-webkit-inner-spin-button, & input[type=number]::-webkit-outer-spin-button': { + WebkitAppearance: 'none', + margin: 0, }, - '& input[type=number]::-webkit-inner-spin-button, & input[type=number]::-webkit-outer-spin-button': - { - WebkitAppearance: 'none', - margin: 0 - }, '& input[type=number]': { - MozAppearance: 'textfield' + MozAppearance: 'textfield', }, '& .MuiInputAdornment-root': { '& button': { - color: '#CF1FB1', + color: 'var(--accent1)', '&:hover': { - backgroundColor: 'transparent' - } - } - } -})) + backgroundColor: 'transparent', + }, + }, + }, +})); interface CustomPaginationProps { - page: number - pageSize: number - totalItems: number - onPageChange: (page: number) => void - onPageSizeChange: (pageSize: number) => void + page: number; + pageSize: number; + totalItems: number; + onPageChange: (page: number) => void; + onPageSizeChange: (pageSize: number) => void; } const CustomPagination = React.memo(function CustomPagination({ @@ -144,63 +143,59 @@ const CustomPagination = React.memo(function CustomPagination({ pageSize, totalItems, onPageChange, - onPageSizeChange + onPageSizeChange, }: CustomPaginationProps) { - const [pageInput, setPageInput] = useState('') - const totalPages = Math.ceil(totalItems / pageSize) + const [pageInput, setPageInput] = useState(''); + const totalPages = Math.ceil(totalItems / pageSize); - const theme = useTheme() - const isMobile = useMediaQuery(theme.breakpoints.down('sm')) + const theme = useTheme(); + const isMobile = useMediaQuery(theme.breakpoints.down('sm')); const handlePageChange = useCallback( (event: React.ChangeEvent, value: number) => { - onPageChange(value) + onPageChange(value); }, [onPageChange] - ) + ); const handlePageSizeChange = useCallback( (event: any) => { - onPageSizeChange(Number(event.target.value)) + onPageSizeChange(Number(event.target.value)); }, [onPageSizeChange] - ) + ); const handlePageJump = () => { - const newPage = parseInt(pageInput) + const newPage = parseInt(pageInput); if (!isNaN(newPage) && newPage > 0 && newPage <= totalPages) { - const searchParams = new URLSearchParams(window.location.search) - searchParams.set('page', String(newPage)) - window.history.replaceState(null, '', `?${searchParams.toString()}`) + const searchParams = new URLSearchParams(window.location.search); + searchParams.set('page', String(newPage)); + window.history.replaceState(null, '', `?${searchParams.toString()}`); - onPageChange(newPage) + onPageChange(newPage); } - setPageInput('') - } + setPageInput(''); + }; useEffect(() => { - const searchParams = new URLSearchParams(window.location.search) - const urlPage = searchParams.get('page') + const searchParams = new URLSearchParams(window.location.search); + const urlPage = searchParams.get('page'); if (urlPage) { - const parsedPage = parseInt(urlPage) + const parsedPage = parseInt(urlPage); if (!isNaN(parsedPage) && parsedPage >= 1 && parsedPage <= totalPages) { if (parsedPage !== page) { - onPageChange(parsedPage) + onPageChange(parsedPage); } - setPageInput(String(parsedPage)) + setPageInput(String(parsedPage)); } } - }, [onPageChange, page, totalPages]) + }, [onPageChange, page, totalPages]); if (isMobile) { return (
- onPageChange(page - 1)} - disabled={page === 1} - > + onPageChange(page - 1)} disabled={page === 1}> @@ -215,11 +210,7 @@ const CustomPagination = React.memo(function CustomPagination({
- + {[10, 25, 50, 100].map((size) => ( {size} @@ -235,7 +226,7 @@ const CustomPagination = React.memo(function CustomPagination({ type="number" inputProps={{ min: 1, - max: totalPages + max: totalPages, }} InputProps={{ endAdornment: ( @@ -245,40 +236,34 @@ const CustomPagination = React.memo(function CustomPagination({ display: 'flex', flexDirection: 'column', gap: '0px', - margin: '-4px -8px -4px 0' + margin: '-4px -8px -4px 0', }} > - setPageInput( - String(Math.min(Number(pageInput || 1) + 1, totalPages)) - ) - } + onClick={() => setPageInput(String(Math.min(Number(pageInput || 1) + 1, totalPages)))} sx={{ - color: '#CF1FB1', + color: 'var(--accent1)', padding: '4px 2px 0 2px', - '&:hover': { backgroundColor: 'transparent' } + '&:hover': { backgroundColor: 'transparent' }, }} > - setPageInput(String(Math.max(Number(pageInput || 1) - 1, 1))) - } + onClick={() => setPageInput(String(Math.max(Number(pageInput || 1) - 1, 1)))} sx={{ - color: '#CF1FB1', + color: 'var(--accent1)', padding: '0 2px 4px 2px', - '&:hover': { backgroundColor: 'transparent' } + '&:hover': { backgroundColor: 'transparent' }, }} >
- ) + ), }} onKeyPress={(e) => e.key === 'Enter' && handlePageJump()} /> @@ -286,10 +271,10 @@ const CustomPagination = React.memo(function CustomPagination({ variant="contained" onClick={handlePageJump} sx={{ - backgroundColor: '#CF1FB1', - '&:hover': { backgroundColor: '#A8188D' }, + backgroundColor: 'var(--accent1)', + '&:hover': { backgroundColor: 'var(--accent2)' }, ml: 1, - fontFamily: "'Sharp Sans', sans-serif" + fontFamily: 'var(--font-inter), sans-serif', }} > Go @@ -297,17 +282,13 @@ const CustomPagination = React.memo(function CustomPagination({
- ) + ); } return (
- onPageChange(page - 1)} - disabled={page === 1} - > - + onPageChange(page - 1)} disabled={page === 1}> + Previous
@@ -336,7 +317,7 @@ const CustomPagination = React.memo(function CustomPagination({ type="number" inputProps={{ min: 1, - max: totalPages + max: totalPages, }} InputProps={{ endAdornment: ( @@ -346,40 +327,34 @@ const CustomPagination = React.memo(function CustomPagination({ display: 'flex', flexDirection: 'column', gap: '0px', - margin: '-4px -8px -4px 0' + margin: '-4px -8px -4px 0', }} > - setPageInput( - String(Math.min(Number(pageInput || 1) + 1, totalPages)) - ) - } + onClick={() => setPageInput(String(Math.min(Number(pageInput || 1) + 1, totalPages)))} sx={{ - color: '#CF1FB1', + color: 'var(--accent1)', padding: '4px 2px 0 2px', - '&:hover': { backgroundColor: 'transparent' } + '&:hover': { backgroundColor: 'transparent' }, }} > - setPageInput(String(Math.max(Number(pageInput || 1) - 1, 1))) - } + onClick={() => setPageInput(String(Math.max(Number(pageInput || 1) - 1, 1)))} sx={{ - color: '#CF1FB1', + color: 'var(--accent1)', padding: '0 2px 4px 2px', - '&:hover': { backgroundColor: 'transparent' } + '&:hover': { backgroundColor: 'transparent' }, }} >
- ) + ), }} onKeyPress={(e) => e.key === 'Enter' && handlePageJump()} /> @@ -387,10 +362,10 @@ const CustomPagination = React.memo(function CustomPagination({ variant="contained" onClick={handlePageJump} sx={{ - backgroundColor: '#CF1FB1', - '&:hover': { backgroundColor: '#A8188D' }, + backgroundColor: 'var(--accent1)', + '&:hover': { backgroundColor: 'var(--accent2)' }, ml: 1, - fontFamily: "'Sharp Sans', sans-serif" + fontFamily: 'var(--font-inter), sans-serif', }} > Go @@ -403,10 +378,10 @@ const CustomPagination = React.memo(function CustomPagination({ disabled={page >= totalPages} > Next - +
- ) -}) + ); +}); -export default CustomPagination +export default CustomPagination; diff --git a/src/components/table/custom-toolbar.tsx b/src/components/table/custom-toolbar.tsx new file mode 100644 index 00000000..62d8ecae --- /dev/null +++ b/src/components/table/custom-toolbar.tsx @@ -0,0 +1,143 @@ +import { TableTypeEnum } from '@/components/table/table-type'; +import { exportToCsv } from '@/components/table/utils'; +import ClearIcon from '@mui/icons-material/Clear'; +import FileDownloadIcon from '@mui/icons-material/FileDownload'; +import SearchIcon from '@mui/icons-material/Search'; +import { Button, IconButton, styled, TextField } from '@mui/material'; +import { + GridApi, + GridToolbarColumnsButton, + GridToolbarDensitySelector, + GridToolbarFilterButton, + GridToolbarProps, +} from '@mui/x-data-grid'; +import React from 'react'; + +const StyledRoot = styled('div')({ + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + marginBottom: 16, +}); + +const StyledButtonsWrapper = styled('div')({ + display: 'flex', + gap: 32, + + '& .MuiButton-root': { + color: 'var(--text-primary)', + fontFamily: 'var(--font-inter), sans-serif', + fontSize: '14px', + fontWeight: 400, + lineHeight: '21px', + textAlign: 'left', + + '& .MuiSvgIcon-root': { + color: 'var(--accent1)', + }, + }, +}); + +const StyledTextField = styled(TextField)({ + '& .MuiOutlinedInput-root': { + backgroundColor: 'var(--background-glass)', + border: '1px solid var(--border-glass)', + borderRadius: 20, + paddingRight: 8, + + '& fieldset': { + border: 'none', + }, + + '&:hover fieldset': { + border: 'none', + }, + + '&.Mui-focused fieldset': { + border: 'none', + }, + }, + + '& .MuiInputBase-input': { + color: 'var(--text-primary)', + fontFamily: 'var(--font-inter), sans-serif', + fontSize: 14, + fontWeight: 400, + padding: '4px 16px', + }, + + '& .MuiIconButton-root': { + color: 'var(--accent1)', + }, +}); + +export interface CustomToolbarProps extends GridToolbarProps { + searchTerm: string; + onSearchChange: (value: string) => void; + onSearch: () => void; + onReset: () => void; + tableType: TableTypeEnum; + apiRef?: GridApi; + totalUptime: number | null; +} + +const CustomToolbar: React.FC = ({ + searchTerm, + onSearchChange, + onSearch, + onReset, + apiRef, + tableType, + totalUptime, +}) => { + const handleExport = () => { + if (apiRef) { + exportToCsv(apiRef, tableType, totalUptime); + } + }; + + const handleKeyPress = (event: React.KeyboardEvent) => { + if (event.key === 'Enter' && searchTerm) { + event.preventDefault(); + onSearchChange(searchTerm); + } + }; + + return ( + + + + + + + + onSearchChange(e.target.value)} + onKeyPress={handleKeyPress} + placeholder="Search..." + variant="outlined" + size="small" + InputProps={{ + endAdornment: ( + <> + + + + {searchTerm && ( + + + + )} + + ), + }} + /> + + ); +}; + +export default CustomToolbar; diff --git a/src/components/table/table-type.ts b/src/components/table/table-type.ts new file mode 100644 index 00000000..c0343f02 --- /dev/null +++ b/src/components/table/table-type.ts @@ -0,0 +1,10 @@ +export enum TableTypeEnum { + BENCHMARK_JOBS = 'benchmark-jobs', + MY_JOBS = 'my-jobs', + MY_NODES = 'my-nodes', + NODES_LEADERBOARD = 'nodes-leaderboard', + NODES_TOP_JOBS = 'nodes-top-jobs', + NODES_TOP_REVENUE = 'nodes-top-revenue', + UNBAN_REQUESTS = 'unban-requests', + BENCHMARK_JOBS_HISTORY = 'benchmark-jobs-history', +} diff --git a/src/components/table/table.tsx b/src/components/table/table.tsx new file mode 100644 index 00000000..f30ee33f --- /dev/null +++ b/src/components/table/table.tsx @@ -0,0 +1,359 @@ +import { + jobsColumns, + nodesLeaderboardColumns, + topNodesByJobsColumns, + topNodesByRevenueColumns, + unbanRequestsColumns, +} from '@/components/table/columns'; +import { TableContextType } from '@/components/table/context-type'; +import CustomPagination from '@/components/table/custom-pagination'; +import CustomToolbar, { CustomToolbarProps } from '@/components/table/custom-toolbar'; +import { TableTypeEnum } from '@/components/table/table-type'; +import styled from '@emotion/styled'; +import { + DataGrid, + GridColDef, + GridFilterModel, + GridInitialState, + GridRowIdGetter, + GridSortModel, + GridValidRowModel, + useGridApiRef, +} from '@mui/x-data-grid'; +import { GridSlotsComponentsProps, GridToolbarProps } from '@mui/x-data-grid/internals'; +import { JSXElementConstructor, useCallback, useMemo, useRef, useState } from 'react'; + +const StyledRoot = styled('div')({ + display: 'flex', + flexDirection: 'column', + gap: 16, + overflow: 'hidden', + width: '100%', +}); + +const StyledDataGridWrapper = styled('div')<{ autoHeight?: boolean }>(({ autoHeight }) => ({ + height: autoHeight ? 'auto' : 'calc(100vh - 200px)', + width: '100%', +})); + +const StyledDataGrid = styled(DataGrid)({ + background: 'none', + border: 'none', + borderBottom: '1px solid var(--border-glass)', + borderRadius: 0, + color: 'var(--text-primary)', + + '& .MuiDataGrid-columnHeaders': { + backgroundColor: 'var(--background-glass-opaque)', + borderRadius: 0, + + '& .MuiDataGrid-columnHeader, & .MuiDataGrid-filler': { + background: 'none', + borderBottomColor: 'var(--border-glass)', + + '& .MuiDataGrid-columnHeaderTitle': { + fontSize: 14, + fontWeight: 600, + whiteSpace: 'normal', + }, + + '& .MuiDataGrid-sortButton': { + color: 'var(--text-primary)', + }, + + '& .MuiDataGrid-columnSeparator': { + color: 'var(--border-glass)', + }, + }, + }, + + '& .MuiDataGrid-main': { + '& .MuiDataGrid-filler': { + background: 'rgba(0, 0, 0, 0.3)', + + '& > div': { + borderTop: '1px solid var(--border-glass)', + }, + }, + }, + + '& .MuiDataGrid-row': { + '&:hover': { + backgroundColor: 'var(--background-glass)', + }, + }, + + '& .MuiDataGrid-cell': { + borderTopColor: 'var(--border-glass)', + fontFamily: 'var(--font-inter), sans-serif', + fontSize: 14, + }, + + '& .MuiDataGrid-overlay': { + // backgroundColor: 'rgba(0, 0, 0, 0.3)', + background: 'none', + }, + + '& .MuiLinearProgress-root': { + backgroundColor: 'var(--background-glass)', + + '& .MuiLinearProgress-bar': { + backgroundColor: 'var(--accent1)', + }, + }, + + '& .MuiSkeleton-root': { + backgroundColor: 'rgba(255, 255, 255, 0.1)', + }, +}); + +type TableProps = { + autoHeight?: boolean; + context?: TableContextType; + data?: any[]; + loading?: boolean; + // TODO internal pagination + paginationType: 'context' | 'none'; + tableType: TableTypeEnum; + showToolbar?: boolean; + getRowId?: GridRowIdGetter; +}; + +export const Table = ({ + autoHeight, + context, + data: propsData, + loading: propsLoading, + paginationType, + showToolbar, + tableType, + getRowId, +}: TableProps) => { + const apiRef = useGridApiRef(); + + const searchTimeout = useRef(null); + + const [searchTerm, setSearchTerm] = useState(''); + + const loading = propsLoading ?? context?.loading; + + const { currentPage, data, pageSize, totalItems } = useMemo(() => { + if (paginationType === 'context') { + return { + currentPage: context?.crtPage ?? 1, + data: context?.data ?? [], + pageSize: context?.pageSize ?? 0, + totalItems: context?.totalItems ?? 0, + }; + } + return { + currentPage: 1, + data: propsData ?? [], + pageSize: propsData?.length ?? 0, + totalItems: propsData?.length ?? 0, + }; + }, [paginationType, propsData, context?.crtPage, context?.data, context?.pageSize, context?.totalItems]); + + const columns = useMemo(() => { + switch (tableType) { + case TableTypeEnum.BENCHMARK_JOBS: + case TableTypeEnum.MY_JOBS: { + return jobsColumns; + } + case TableTypeEnum.UNBAN_REQUESTS: { + return unbanRequestsColumns; + } + case TableTypeEnum.NODES_LEADERBOARD: + case TableTypeEnum.MY_NODES: + case TableTypeEnum.NODES_TOP_JOBS: + case TableTypeEnum.NODES_TOP_REVENUE: { + return nodesLeaderboardColumns; + } + case TableTypeEnum.NODES_TOP_JOBS: { + return topNodesByJobsColumns; + } + case TableTypeEnum.NODES_TOP_REVENUE: { + return topNodesByRevenueColumns; + } + case TableTypeEnum.BENCHMARK_JOBS_HISTORY: { + return jobsColumns; + } + } + }, [tableType]); + + const handlePaginationChange = useCallback( + (model: { page: number; pageSize: number }) => { + if (paginationType === 'context' && context) { + context.setCrtPage(model.page); + context.setPageSize(model.pageSize); + } + }, + [context, paginationType] + ); + + const handleSortModelChange = useCallback( + (model: GridSortModel) => { + if (paginationType === 'context' && context) { + if (model.length > 0) { + const { field, sort } = model[0]; + const filterModel: GridFilterModel = { + items: [ + { + id: 1, + field, + operator: 'sort', + value: sort, + }, + ], + }; + context.setFilterModel(filterModel); + } + } + }, + [context, paginationType] + ); + + const handleFilterModelChange = useCallback( + (model: GridFilterModel) => { + if (paginationType === 'context' && context) { + context.setFilterModel(model); + } + }, + [context, paginationType] + ); + + const handleResetFilters = useCallback(() => { + setSearchTerm(''); + if (paginationType === 'context' && context) { + const emptyFilter: GridFilterModel = { items: [] }; + context.setFilterModel(emptyFilter); + if (context.setSearchTerm) { + context.setSearchTerm(''); + } + if (searchTimeout.current) { + clearTimeout(searchTimeout.current); + } + } + }, [context, paginationType, setSearchTerm]); + + const handleSearchChange = useCallback( + (term: string) => { + setSearchTerm(term); + if (searchTimeout.current) { + clearTimeout(searchTimeout.current); + } + searchTimeout.current = setTimeout(() => { + if (paginationType === 'context' && context?.setSearchTerm) { + context.setSearchTerm(term); + } + }, 500); + }, + [context, paginationType, setSearchTerm] + ); + + const processRowUpdate = useCallback((newRow: GridValidRowModel, oldRow: GridValidRowModel): GridValidRowModel => { + const processCell = (value: unknown) => { + if (typeof value === 'object' && value !== null) { + if ('dns' in value || 'ip' in value) { + const dnsIpObj = value as { dns?: string; ip?: string; port?: string }; + return `${dnsIpObj.dns || dnsIpObj.ip}${dnsIpObj.port ? ':' + dnsIpObj.port : ''}`; + } + + if ('city' in value || 'country' in value) { + const locationObj = value as { city?: string; country?: string }; + return `${locationObj.city} ${locationObj.country}`; + } + } + return value; + }; + return Object.fromEntries( + Object.entries(newRow).map(([key, value]) => [key, processCell(value)]) + ) as GridValidRowModel; + }, []); + + const initialState = useMemo(() => { + const coreState: GridInitialState = { density: 'comfortable' }; + return paginationType === 'none' + ? coreState + : { + ...coreState, + pagination: { + paginationModel: { + pageSize: pageSize, + page: currentPage - 1, + }, + }, + }; + }, [currentPage, pageSize, paginationType]); + + const paginationModel = + paginationType === 'none' + ? undefined + : { + page: currentPage - 1, + pageSize: pageSize, + }; + + const slotProps: GridSlotsComponentsProps & { toolbar: Partial } = { + basePopper: { + style: { + color: '#000000', + }, + }, + loadingOverlay: { + variant: 'skeleton', + noRowsVariant: 'skeleton', + }, + toolbar: { + searchTerm, + onSearchChange: handleSearchChange, + onReset: handleResetFilters, + tableType: tableType, + apiRef: apiRef.current ?? undefined, + // totalUptime: totalUptime, + }, + }; + + const defaultGetRowId: GridRowIdGetter = (row) => row.id; + + return ( + + + []} + disableColumnMenu + disableRowSelectionOnClick + filterMode={paginationType === 'none' ? 'client' : 'server'} + getRowId={getRowId ?? defaultGetRowId} + hideFooter + initialState={initialState} + loading={loading ?? context?.loading} + onFilterModelChange={handleFilterModelChange} + onPaginationModelChange={handlePaginationChange} + onSortModelChange={handleSortModelChange} + pageSizeOptions={[10, 25, 50, 100]} + // pagination + paginationMode={paginationType === 'none' ? undefined : 'server'} + paginationModel={paginationModel} + processRowUpdate={processRowUpdate} + rowCount={totalItems} + rows={data} + showToolbar={showToolbar} + slots={{ toolbar: CustomToolbar as JSXElementConstructor }} + slotProps={slotProps} + sortingMode={paginationType === 'none' ? 'client' : 'server'} + /> + + {paginationType === 'none' ? null : ( + handlePaginationChange({ page, pageSize })} + onPageSizeChange={(pageSize: number) => handlePaginationChange({ page: currentPage, pageSize })} + /> + )} + + ); +}; diff --git a/src/components/table/utils.ts b/src/components/table/utils.ts new file mode 100644 index 00000000..0dc35355 --- /dev/null +++ b/src/components/table/utils.ts @@ -0,0 +1,133 @@ +import { TableTypeEnum } from '@/components/table/table-type'; +import { type Node } from '@/types'; +import { GridApi } from '@mui/x-data-grid'; + +export const getAllNetworks = (indexers: Node['indexer']): string => { + return indexers?.map((indexer) => indexer.network).join(', ') || ''; +}; + +export const formatSupportedStorage = (supportedStorage: Node['supportedStorage']): string => { + const storageTypes = []; + + if (supportedStorage?.url) storageTypes.push('URL'); + if (supportedStorage?.arwave) storageTypes.push('Arweave'); + if (supportedStorage?.ipfs) storageTypes.push('IPFS'); + + return storageTypes.join(', '); +}; + +export const formatPlatform = (platform: Node['platform']): string => { + if (platform) { + const { cpus, arch, machine, platform: platformName, osType, node } = platform; + return `CPUs: ${cpus}, Architecture: ${arch}, Machine: ${machine}, Platform: ${platformName}, OS Type: ${osType}, Node.js: ${node}`; + } + return ''; +}; + +export const formatUptime = (uptimeInSeconds: number): string => { + const days = Math.floor(uptimeInSeconds / (3600 * 24)); + const hours = Math.floor((uptimeInSeconds % (3600 * 24)) / 3600); + const minutes = Math.floor((uptimeInSeconds % 3600) / 60); + + const dayStr = days > 0 ? `${days} day${days > 1 ? 's' : ''} ` : ''; + const hourStr = hours > 0 ? `${hours} hour${hours > 1 ? 's' : ''} ` : ''; + const minuteStr = minutes > 0 ? `${minutes} minute${minutes > 1 ? 's' : ''}` : ''; + + return `${dayStr}${hourStr}${minuteStr}`.trim(); +}; + +export const formatUptimePercentage = (uptimeInSeconds: number, totalUptime: number | null | undefined): string => { + const defaultTotalUptime = 7 * 24 * 60 * 60; + + const actualTotalUptime = totalUptime || defaultTotalUptime; + + const uptimePercentage = (uptimeInSeconds / actualTotalUptime) * 100; + const percentage = uptimePercentage > 100 ? 100 : uptimePercentage; + return `${percentage.toFixed(2)}%`; +}; + +export const exportToCsv = (apiRef: GridApi, tableType: TableTypeEnum, totalUptime: number | null) => { + if (!apiRef) return; + + const columns = apiRef.getAllColumns().filter((col) => { + if (tableType === TableTypeEnum.NODES_LEADERBOARD) { + return col.field !== 'viewMore' && col.field !== 'location'; + } + return true; + }); + + const rows = apiRef.getRowModels(); + + const formattedRows = Array.from(rows.values()).map((row) => { + const formattedRow: Record = {}; + + columns.forEach((column) => { + const field = column.field; + const value = row[field]; + + // if (tableType === TableTypeEnum.COUNTRIES) { + // if (field === 'cityWithMostNodes') { + // const cityName = row.cityWithMostNodes || ''; + // const nodeCount = row.cityWithMostNodesCount || 0; + // formattedRow[column.headerName || field] = `${cityName} (${nodeCount})`; + // } else { + // formattedRow[column.headerName || field] = String(value || ''); + // } + // } else { + // if (field === 'uptime') { + // formattedRow[column.headerName || field] = formatUptimePercentage(value, totalUptime); + // } else if (field === 'network') { + // const networks = row.provider?.map((p: { network: string }) => p.network).join(', ') || ''; + // formattedRow[column.headerName || field] = networks; + // } else if (field === 'dnsFilter') { + // const ipAndDns = row.ipAndDns as { dns?: string; ip?: string; port?: string }; + // formattedRow[column.headerName || field] = + // `${ipAndDns?.dns || ''} ${ipAndDns?.ip || ''} ${ipAndDns?.port ? ':' + ipAndDns?.port : ''}`.trim(); + // } else if (field === 'city') { + // formattedRow[column.headerName || field] = row.location?.city || ''; + // } else if (field === 'country') { + // formattedRow[column.headerName || field] = row.location?.country || ''; + // } else if (field === 'platform') { + // formattedRow[column.headerName || field] = formatPlatform(value); + // } else if (field === 'supportedStorage') { + // formattedRow[column.headerName || field] = formatSupportedStorage(value); + // } else if (field === 'indexer') { + // formattedRow[column.headerName || field] = getAllNetworks(value); + // } else if (field === 'lastCheck') { + // formattedRow[column.headerName || field] = new Date(value).toLocaleString(); + // } else if (typeof value === 'boolean') { + // formattedRow[column.headerName || field] = value ? 'Yes' : 'No'; + // } else if (Array.isArray(value)) { + // formattedRow[column.headerName || field] = value.join(', '); + // } else if (field === 'eligibilityCauseStr') { + // formattedRow[column.headerName || field] = value || 'none'; + // } else { + // formattedRow[column.headerName || field] = String(value || ''); + // } + // } + }); + return formattedRow; + }); + + const headers = Object.keys(formattedRows[0]); + const csvRows = [ + headers.join(','), + ...formattedRows.map((row) => + headers + .map((header) => { + const value = row[header]; + return value.includes(',') || value.includes('"') ? `"${value.replace(/"/g, '""')}"` : value; + }) + .join(',') + ), + ].join('\n'); + + const blob = new Blob(['\ufeff' + csvRows], { type: 'text/csv;charset=utf-8;' }); + const link = document.createElement('a'); + link.href = URL.createObjectURL(blob); + link.download = `${tableType}_export_${new Date().toISOString()}.csv`; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + URL.revokeObjectURL(link.href); +}; diff --git a/src/components/withdraw/withdraw-page.module.css b/src/components/withdraw/withdraw-page.module.css new file mode 100644 index 00000000..4b59fa9e --- /dev/null +++ b/src/components/withdraw/withdraw-page.module.css @@ -0,0 +1,4 @@ +.content { + align-self: center; + max-width: 700px; +} diff --git a/src/components/withdraw/withdraw-page.tsx b/src/components/withdraw/withdraw-page.tsx new file mode 100644 index 00000000..bbe64464 --- /dev/null +++ b/src/components/withdraw/withdraw-page.tsx @@ -0,0 +1,22 @@ +import Container from '@/components/container/container'; +import SectionTitle from '@/components/section-title/section-title'; +import Withdraw from '@/components/withdraw/withdraw'; +import classNames from 'classnames'; +import styles from './withdraw-page.module.css'; + +const WithdrawPage = () => { + return ( + + +
+ +
+
+ ); +}; + +export default WithdrawPage; diff --git a/src/components/withdraw/withdraw.module.css b/src/components/withdraw/withdraw.module.css new file mode 100644 index 00000000..691eabb1 --- /dev/null +++ b/src/components/withdraw/withdraw.module.css @@ -0,0 +1,43 @@ +.balance { + display: flex; + flex-direction: column; + gap: 12px; + padding: 12px 24px; + + @media (min-width: 768px) { + align-items: center; + display: grid; + grid-template-columns: 1fr auto; + } + + .values { + text-align: right; + + .token { + color: var(--text-secondary); + font-size: 14px; + } + + .amount { + font-size: 32px; + font-weight: 700; + } + } + + .sm { + color: var(--text-secondary); + font-size: 16px; + + .token { + font-size: 12px; + } + + .amount { + font-size: 20px; + } + } +} + +.nextButton { + align-self: center; +} diff --git a/src/components/withdraw/withdraw.tsx b/src/components/withdraw/withdraw.tsx new file mode 100644 index 00000000..25009fc5 --- /dev/null +++ b/src/components/withdraw/withdraw.tsx @@ -0,0 +1,35 @@ +import Button from '@/components/button/button'; +import Card from '@/components/card/card'; +import Input from '@/components/input/input'; +import DownloadIcon from '@mui/icons-material/Download'; +import classNames from 'classnames'; +import styles from './withdraw.module.css'; + +// TODO replace mock data + +const Withdraw = () => { + return ( + + +

User available funds in escrow

+
+ OCEAN +   + {99} +
+

User available funds in wallet

+
+ OCEAN +   + {12345.6789} +
+
+ + +
+ ); +}; + +export default Withdraw; diff --git a/src/config.ts b/src/config.ts index 86ad8ef9..90e2111d 100644 --- a/src/config.ts +++ b/src/config.ts @@ -1,113 +1,133 @@ type Route = { - path: string - name: string -} + path: string; + name: string; +}; type Routes = { - [key: string]: Route -} - -type ApiRoute = { - root: 'incentive' | 'analytics' - path: string -} - -type ApiRoutes = { - [key: string]: ApiRoute -} + [key: string]: Route; +}; type SocialMedia = { - [key: string]: string -} + [key: string]: string; +}; type Config = { - backendUrl: string - routes: Routes - apiRoutes: ApiRoutes - socialMedia: SocialMedia + backendUrl: string; + routes: Routes; + socialMedia: SocialMedia; links: { - website: string - github: string - } + website: string; + github: string; + }; queryParams: { - [key: string]: string - } + [key: string]: string; + }; cookies: { - [key: string]: string - } -} - -const API_ROOTS = { - incentive: 'https://incentive-backend.oceanprotocol.com', - analytics: 'https://analytics.nodes.oceanprotocol.com' -} as const - -const apiRoutes = { - // Incentive API routes - nodes: { root: 'incentive', path: '/nodes' }, - locations: { root: 'incentive', path: '/locations' }, - countryStats: { root: 'incentive', path: '/countryStats' }, - nodeSystemStats: { root: 'incentive', path: '/nodeSystemStats' }, - history: { root: 'incentive', path: '/history' }, - weekStats: { root: 'incentive', path: '/weekStats' }, - - // Analytics API routes - analyticsSummary: { root: 'analytics', path: '/summary' }, - analyticsAllSummary: { root: 'analytics', path: '/all-summary' }, - analyticsRewardsHistory: { root: 'analytics', path: '/rewards-history' } -} as const - -type ApiRouteKeys = keyof typeof apiRoutes + [key: string]: string; + }; +}; const config: Config = { - backendUrl: - process.env.NEXT_PUBLIC_API_URL || 'https://incentive-backend.oceanprotocol.com', + backendUrl: process.env.NEXT_PUBLIC_API_URL || 'https://incentive-backend.oceanprotocol.com', routes: { home: { path: '/', - name: 'Home' + name: 'Home', + }, + runJob: { + path: '/run-job/environments', + name: 'Run Job', + }, + stats: { + path: '/stats', + name: 'Stats', + }, + docs: { + path: '/docs', + name: 'Docs', }, - nodes: { - path: '/nodes', - name: 'Nodes' + leaderboard: { + path: '/leaderboard', + name: 'Leaderboard', }, - countries: { - path: '/countries', - name: 'Countries' + runNode: { + path: '/run-node/setup', + name: 'Run Node', }, - history: { - path: '/history', - name: 'History' - } }, - apiRoutes, socialMedia: { medium: 'https://medium.com/oceanprotocol', twitter: 'https://twitter.com/oceanprotocol', discord: 'https://discord.gg/CjdsWngg47', youtube: 'https://www.youtube.com/channel/UCH8TXwmWWAE9TZO0yTBHB3A', - telegram: 'https://t.me/oceanprotocol' + telegram: 'https://t.me/oceanprotocol', }, links: { website: 'https://oceanprotocol.com/', - github: 'https://github.com/oceanprotocol/ocean-node' + github: 'https://github.com/oceanprotocol/ocean-node', }, queryParams: { accessToken: 'access_token', - status: 'status' + status: 'status', }, cookies: { - accessToken: 'access_token' - } -} + accessToken: 'access_token', + }, +}; + +export default config; + +export const getRoutes = (): Routes => config.routes; +export const getSocialMedia = (): SocialMedia => config.socialMedia; +export const getLinks = () => config.links; + +const API_ROOTS = { + ens: 'https://ens-proxy.oceanprotocol.com/api', + incentive: 'https://incentive-backend.oceanprotocol.io', + incentive_old: 'https://incentive-backend.oceanprotocol.com', + analytics: 'https://analytics.nodes.oceanprotocol.io', +} as const; + +const apiRoutes = { + // Incentive API routes + environments: { root: 'incentive', path: '/envs' }, + nodes: { root: 'incentive', path: '/nodes' }, + locations: { root: 'incentive', path: '/locations' }, + countryStats: { root: 'incentive', path: '/countryStats' }, + nodeSystemStats: { root: 'incentive_old', path: '/nodeSystemStats' }, + history: { root: 'incentive', path: '/history' }, + weekStats: { root: 'incentive', path: '/weekStats' }, + banStatus: { root: 'incentive', path: '/nodes' }, + nodeBenchmarkMinMaxLast: { root: 'incentive', path: '/nodes' }, + benchmarkHistory: { root: 'incentive', path: '/nodes' }, + nodeUnbanRequests: { root: 'incentive', path: '/nodes' }, + owners: { root: 'incentive', path: '/owners' }, + admin: { root: 'incentive', path: '/admin' }, + jobsSuccessRate: { root: 'incentive', path: '/consumers' }, + nodesStats: { root: 'incentive', path: '/owners' }, + + // Analytics API routes + analyticsSummary: { root: 'analytics', path: '/summary' }, + analyticsAllSummary: { root: 'analytics', path: '/all-summary' }, + analyticsRewardsHistory: { root: 'analytics', path: '/rewards-history' }, + analyticsGlobalStats: { root: 'analytics', path: '/global-stats' }, + gpuPopularity: { root: 'analytics', path: '/gpu-popularity' }, + topNodesByRevenue: { root: 'analytics', path: '/nodes' }, + topNodesByJobCount: { root: 'analytics', path: '/nodes' }, + nodeStats: { root: 'analytics', path: '/nodes' }, + consumerStats: { root: 'analytics', path: '/consumers' }, + ownerStats: { root: 'analytics', path: '/owners' }, + + // ENS API routes + ensAddress: { root: 'ens', path: '/address' }, + ensName: { root: 'ens', path: '/name' }, + ensProfile: { root: 'ens', path: '/profile' }, +} as const; -export default config +type ApiRouteKeys = keyof typeof apiRoutes; -export const getRoutes = (): Routes => config.routes -export const getSocialMedia = (): SocialMedia => config.socialMedia -export const getLinks = () => config.links -export const getApiRoute = (key: ApiRouteKeys, param?: string | number): string => { - const route = apiRoutes[key] - const baseUrl = API_ROOTS[route.root] - return `${baseUrl}${route.path}` -} +export const getApiRoute = (key: ApiRouteKeys): string => { + const route = apiRoutes[key]; + const baseUrl = API_ROOTS[route.root]; + return `${baseUrl}${route.path}`; +}; diff --git a/src/constants/chains.ts b/src/constants/chains.ts new file mode 100644 index 00000000..5eda7ec0 --- /dev/null +++ b/src/constants/chains.ts @@ -0,0 +1,4 @@ +export const BASE_CHAIN_ID = 8453; +export const ETH_SEPOLIA_CHAIN_ID = 11155111; + +export const CHAIN_ID = process.env.NODE_ENV === 'production' ? BASE_CHAIN_ID : ETH_SEPOLIA_CHAIN_ID; diff --git a/src/constants/tokens.ts b/src/constants/tokens.ts new file mode 100644 index 00000000..1aa928c6 --- /dev/null +++ b/src/constants/tokens.ts @@ -0,0 +1,2 @@ +export const ETH_SEPOLIA_ADDRESS = '0xb16F35c0Ae2912430DAc15764477E179D9B9EbEa'; +export const USDC_TOKEN_ADDRESS = '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238'; diff --git a/src/context/AdminProvider.tsx b/src/context/AdminProvider.tsx deleted file mode 100644 index 641a48bb..00000000 --- a/src/context/AdminProvider.tsx +++ /dev/null @@ -1,150 +0,0 @@ -import { - createContext, - useContext, - useState, - ReactNode, - FunctionComponent, - Dispatch, - SetStateAction, - useEffect -} from 'react' -import { useAccount, useSignMessage } from 'wagmi' -import { verifyMessage } from 'ethers' - -interface network { - chainId: number - network: string -} - -interface AdminContextType { - admin: boolean - setAdmin: Dispatch> - allAdmins: string[] - setAllAdmins: Dispatch> - expiryTimestamp: number | undefined - setExpiryTimestamp: Dispatch> - generateSignature: () => void - signature: string | undefined - setSignature: Dispatch> - validTimestamp: boolean - setValidTimestamp: Dispatch> - networks: network[] - setNetworks: Dispatch> -} - -const AdminContext = createContext(undefined) - -export const AdminProvider: FunctionComponent<{ children: ReactNode }> = ({ - children -}) => { - const { address, isConnected } = useAccount() - const { signMessage, data: signMessageData } = useSignMessage() - const [admin, setAdmin] = useState(false) - const [allAdmins, setAllAdmins] = useState([]) - const [expiryTimestamp, setExpiryTimestamp] = useState() - const [signature, setSignature] = useState() - const [validTimestamp, setValidTimestamp] = useState(true) - const [networks, setNetworks] = useState([]) - - // Ensure signature and expiry are cleared when the account is changed or disconnected - useEffect(() => { - if (!isConnected || !address) { - setSignature(undefined) - setExpiryTimestamp(undefined) - } - }, [address, isConnected]) - - // Get expiryTimestamp and signature from localStorage - useEffect(() => { - const storedExpiry = localStorage.getItem('expiryTimestamp') - const storedExpiryTimestamp = storedExpiry ? parseInt(storedExpiry, 10) : null - if (storedExpiryTimestamp && storedExpiryTimestamp > Date.now()) { - setExpiryTimestamp(storedExpiryTimestamp) - const storedSignature = localStorage.getItem('signature') - if (storedSignature) { - setSignature(storedSignature) - } - } - }, [address, isConnected]) - - // Store signature and expiryTimestamp in localStorage - useEffect(() => { - if (expiryTimestamp && expiryTimestamp > Date.now()) { - localStorage.setItem('expiryTimestamp', expiryTimestamp.toString()) - signature && localStorage.setItem('signature', signature) - } - }, [expiryTimestamp, signature, address, isConnected]) - - useEffect(() => { - if (signMessageData) { - setSignature(signMessageData) - } - }, [signMessageData, address, isConnected]) - - useEffect(() => { - const interval = setInterval(() => { - if (expiryTimestamp) { - const now = Date.now() - setValidTimestamp(now < expiryTimestamp) - } - }, 300000) // Check every 5 minutes - - return () => clearInterval(interval) - }, [expiryTimestamp, address, isConnected]) - - const generateSignature = () => { - const newExpiryTimestamp = Date.now() + 12 * 60 * 60 * 1000 // 12 hours ahead in milliseconds - signMessage({ - message: newExpiryTimestamp.toString() - }) - setExpiryTimestamp(newExpiryTimestamp) - } - - // Remove signature and expiryTimestamp from state if they are not from the currently connected account - useEffect(() => { - if (expiryTimestamp && signature) { - const signerAddress = verifyMessage( - expiryTimestamp.toString(), - signature - ).toLowerCase() - if (signerAddress !== address?.toLowerCase()) { - setExpiryTimestamp(undefined) - setSignature(undefined) - } - } - }, [address, expiryTimestamp, signature]) - - const value: AdminContextType = { - admin, - setAdmin, - allAdmins, - setAllAdmins, - expiryTimestamp, - setExpiryTimestamp, - generateSignature, - signature, - setSignature, - validTimestamp, - setValidTimestamp, - networks, - setNetworks - } - - // Update admin status based on current address - useEffect(() => { - const isAdmin = allAdmins.some( - (adminAddress) => address && adminAddress.toLowerCase() === address.toLowerCase() - ) - setAdmin(isAdmin) - }, [address, allAdmins, isConnected]) - - return {children} -} - -export const useAdminContext = () => { - const context = useContext(AdminContext) - if (context === undefined) { - throw new Error('AdminContext must be used within an AdminProvider') - } - return context -} diff --git a/src/context/CountriesContext.tsx b/src/context/CountriesContext.tsx deleted file mode 100644 index cf2b9782..00000000 --- a/src/context/CountriesContext.tsx +++ /dev/null @@ -1,170 +0,0 @@ -import React, { - createContext, - useState, - useEffect, - useContext, - ReactNode, - useCallback -} from 'react' -import axios from 'axios' -import { getApiRoute } from '@/config' -import { CountryStatsType } from '@/shared/types/dataTypes' -import { CountryStatsFilters } from '@/shared/types/filters' -import { GridFilterModel } from '@mui/x-data-grid' - -interface CountriesContextType { - data: CountryStatsType[] - loading: boolean - error: any - currentPage: number - pageSize: number - totalItems: number - searchTerm: string - sortModel: Record - filters: CountryStatsFilters - setCurrentPage: (page: number) => void - setPageSize: (size: number) => void - setSearchTerm: (term: string) => void - setSortModel: (model: Record) => void - setFilters: (filters: CountryStatsFilters) => void - setFilter: (filter: GridFilterModel) => void -} - -const CountriesContext = createContext(undefined) - -interface CountriesProviderProps { - children: ReactNode -} - -export const CountriesProvider: React.FC = ({ children }) => { - // State - const [data, setData] = useState([]) - const [loading, setLoading] = useState(true) - const [error, setError] = useState(null) - const [currentPage, setCurrentPage] = useState(1) - const [pageSize, setPageSize] = useState(100) - const [totalItems, setTotalItems] = useState(0) - const [searchTerm, setSearchTerm] = useState('') - const [sortModel, setSortModel] = useState>({}) - const [filters, setFilters] = useState({}) - - // Fetch data - const fetchCountryStats = useCallback(async () => { - try { - const params: Record = { - page: currentPage, - pageSize: pageSize - } - - if (searchTerm) { - params['filters[country][value]'] = searchTerm - params['filters[country][operator]'] = 'contains' - } - - if (filters && Object.keys(filters).length > 0) { - Object.entries(filters).forEach(([field, filterData]) => { - const { value, operator } = filterData - params[`filters[${field}][value]`] = value - params[`filters[${field}][operator]`] = operator - }) - } - - if (sortModel && Object.keys(sortModel).length > 0) { - const [field, order] = Object.entries(sortModel)[0] - const sortField = field === 'cityWithMostNodes' ? 'cityWithMostNodesCount' : field - params[`sort[${sortField}]`] = order - } - - const response = await axios.get(getApiRoute('countryStats'), { params }) - - if (response.data && Array.isArray(response.data.countryStats)) { - const processedStats = response.data.countryStats.map( - (country: any, index: number) => ({ - id: country.country, - index: (currentPage - 1) * pageSize + index + 1, - country: country.country, - totalNodes: country.totalNodes, - citiesWithNodes: country.citiesWithNodes, - cityWithMostNodes: country.cityWithMostNodes, - cityWithMostNodesCount: country.cityWithMostNodesCount - }) - ) - setData(processedStats) - setTotalItems(response.data.pagination.totalItems) - } else { - console.error('Unexpected data structure:', response.data) - setData([]) - setTotalItems(0) - } - } catch (err) { - console.error('Error fetching country stats:', err) - setError(err) - setData([]) - setTotalItems(0) - } finally { - setLoading(false) - } - }, [currentPage, pageSize, searchTerm, filters, sortModel]) - - // Effects - useEffect(() => { - fetchCountryStats() - }, [fetchCountryStats]) - - // Handlers - const handleSetCurrentPage = (page: number) => { - setCurrentPage(page) - } - - const handleSetPageSize = (size: number) => { - setPageSize(size) - setCurrentPage(1) - } - - const handleSetSearchTerm = (term: string) => { - setSearchTerm(term) - setCurrentPage(1) - } - - const handleSetSortModel = (model: Record) => { - setSortModel(model) - setCurrentPage(1) - } - - const handleSetFilters = (newFilters: CountryStatsFilters) => { - setFilters(newFilters) - setCurrentPage(1) - } - - const handleSetFilter = (filter: GridFilterModel) => { - // Implementation of setFilter - } - - const value: CountriesContextType = { - data, - loading, - error, - currentPage, - pageSize, - totalItems, - searchTerm, - sortModel, - filters, - setCurrentPage: handleSetCurrentPage, - setPageSize: handleSetPageSize, - setSearchTerm: handleSetSearchTerm, - setSortModel: handleSetSortModel, - setFilters: handleSetFilters, - setFilter: handleSetFilter - } - - return {children} -} - -export const useCountriesContext = () => { - const context = useContext(CountriesContext) - if (context === undefined) { - throw new Error('useCountriesContext must be used within a CountriesProvider') - } - return context -} diff --git a/src/context/HistoryContext.tsx b/src/context/HistoryContext.tsx deleted file mode 100644 index 92da5954..00000000 --- a/src/context/HistoryContext.tsx +++ /dev/null @@ -1,419 +0,0 @@ -import React, { - createContext, - useState, - useEffect, - useContext, - ReactNode, - useCallback, - useMemo, - PropsWithChildren -} from 'react' -import { - getNodeHistory, - getWeekStats, - getAllHistoricalWeeklyPeriods, - PeriodOption, - RewardsData, - getAllHistoricalRewards, - getCurrentWeekStats -} from '@/services/historyService' -import { DateRange } from '@/components/PeriodSelect' -import { NodeData } from '@/shared/types/RowDataType' -import axios from 'axios' - -export interface WeekStatsSource { - id: number - week: number - totalUptime: number - lastRun: number - round?: number - timestamp?: number -} - -export interface HistoryContextType { - data: any[] - loading: boolean - error: any - currentPage: number - pageSize: number - totalItems: number - nodeId: string - dateRange: DateRange - isSearching: boolean - setNodeId: (id: string) => void - setDateRange: (range: DateRange) => void - setCurrentPage: (page: number) => void - setPageSize: (size: number) => void - setIsSearching: (isSearching: boolean) => void - clearHistory: () => void - fetchHistoryData: () => Promise - weekStats: WeekStatsSource | null - loadingWeekStats: boolean - errorWeekStats: any - fetchWeekStats: () => Promise - availablePeriods: PeriodOption[] - periodsLoading: boolean - getRewardsForPeriod: (periodId: string | number) => { - averageReward: number - totalDistributed: number - nrEligibleNodes: number - } | null - rewardsData: RewardsData[] - loadingRewards: boolean - errorRewards: Error | null - totalProgramDistribution: number - currentRoundStats: any - loadingCurrentRound: boolean - errorCurrentRound: Error | null - isInitialising: boolean, - nodesData: NodeData - loadingNodeData: boolean - errorNodeData: Error | null -} - -const HistoryContext = createContext(undefined) - -export const HistoryProvider: React.FC> = ({ children }) => { - const [data, setData] = useState([]) - const [loading, setLoading] = useState(false) - const [error, setError] = useState(null) - const [currentPage, setCurrentPage] = useState(1) - const [pageSize, setPageSize] = useState(10) - const [totalItems, setTotalItems] = useState(0) - const [nodeId, setNodeId] = useState('') - const [isSearching, setIsSearching] = useState(false) - const [dateRange, setDateRange] = useState({ - startDate: null, - endDate: null - }) - - const [weekStats, setWeekStats] = useState(null) - const [loadingWeekStats, setLoadingWeekStats] = useState(false) - const [errorWeekStats, setErrorWeekStats] = useState(null) - - const [availablePeriods, setAvailablePeriods] = useState([]) - const [periodsLoading, setPeriodsLoading] = useState(true) - - const [rewardsData, setRewardsData] = useState([]) - const [loadingRewards, setLoadingRewards] = useState(false) - const [errorRewards, setErrorRewards] = useState(null) - - const [nodesData, setNodesData] = useState({} as NodeData) - const [loadingNodeData, setLoadingNodeData] = useState(false) - const [errorNodeData, setErrorNodeData] = useState(null) - - const [currentRoundStats, setCurrentRoundStats] = useState(null) - const [loadingCurrentRound, setLoadingCurrentRound] = useState(false) - const [errorCurrentRound, setErrorCurrentRound] = useState(null) - const [isInitialising, setIsInitialising] = useState(true) - - useEffect(() => { - const fetchInitialData = async () => { - setIsInitialising(true) - try { - const doFetchPeriods = async () => { - setPeriodsLoading(true) - try { - const periods = await getAllHistoricalWeeklyPeriods() - console.log( - '[HistoryContext] Available periods fetched successfully:', - periods - ) - setAvailablePeriods(periods) - if (periods.length > 0) { - const mostRecentPeriod = periods[0] - setDateRange({ - startDate: mostRecentPeriod.startDate, - endDate: mostRecentPeriod.endDate - }) - } - } catch (err) { - console.error('[HistoryContext] Error fetching available periods:', err) - } finally { - setPeriodsLoading(false) - } - } - - const doFetchRewardsData = async () => { - setLoadingRewards(true) - try { - const data = await getAllHistoricalRewards() - setRewardsData(data) - setErrorRewards(null) - } catch (error) { - console.error('Error fetching rewards data:', error) - setErrorRewards(error as Error) - } finally { - setLoadingRewards(false) - } - } - - const doFetchCurrentRound = async () => { - setLoadingCurrentRound(true) - try { - const data = await getCurrentWeekStats() - console.log( - '[HistoryContext] Current round stats fetched successfully:', - data - ) - setCurrentRoundStats(data) - setErrorCurrentRound(null) - } catch (error) { - console.error('Error fetching current round in initial:', error) - setErrorCurrentRound(error as Error) - } finally { - setLoadingCurrentRound(false) - } - } - - const doFetchNodeData = async () => { - if (!nodeId) return - - try { - setLoadingNodeData(true) - - const data = await getNodeData(nodeId) - console.log( - '[HistoryContext] Node data fetched successfully:', - data - ) - if (!data) { - setErrorNodeData(new Error('Node data is empty or undefined')) - console.error( - '[HistoryContext] Node data is empty or undefined for nodeId:', - nodeId - ) - } else { - setNodesData(data) - setErrorNodeData(null) - } - setLoadingNodeData(false) - } catch (error) { - console.error('Error fetching node data in initial:', error) - setErrorNodeData(error as Error) - } - } - - await Promise.all([doFetchPeriods(), doFetchRewardsData(), doFetchCurrentRound(), doFetchNodeData()]) - } catch (error) { - console.error( - '[HistoryContext] Error during initial parallel fetches (Promise.all):', - error - ) - } finally { - setIsInitialising(false) - } - } - fetchInitialData() - }, [nodeId]) - - const fetchHistoryData = useCallback(async () => { - if (!nodeId || !dateRange.startDate || !dateRange.endDate) { - return - } - - console.log( - `[HistoryContext] Attempting fetchHistoryData for nodeId: ${nodeId}, page: ${currentPage}, size: ${pageSize}, range: ${dateRange.startDate?.format()} - ${dateRange.endDate?.format()}` - ) - - setLoading(true) - setError(null) - try { - const response = await getNodeHistory( - nodeId, - currentPage, - pageSize, - dateRange.startDate, - dateRange.endDate - ) - console.log('[HistoryContext] Received history data:', response) - setData(response.data || []) - setTotalItems(response.pagination.totalCount || 0) - } catch (error) { - console.error('[HistoryContext] Error during fetchHistoryData:', error) - setData([]) - setTotalItems(0) - setError(error) - } finally { - setLoading(false) - } - }, [nodeId, currentPage, pageSize, dateRange]) - - const fetchWeekStats = useCallback(async () => { - if (!nodeId || !dateRange.endDate) { - return - } - - const targetDate = dateRange.endDate.unix() - - setLoadingWeekStats(true) - setErrorWeekStats(null) - setWeekStats(null) - try { - const stats = await getWeekStats(targetDate) - setWeekStats(stats) - } catch (err) { - console.error('[HistoryContext] Error during fetchWeekStats:', err) - setWeekStats(null) - setErrorWeekStats(err) - } finally { - setLoadingWeekStats(false) - } - }, [nodeId, dateRange]) - - useEffect(() => { - if (isSearching && nodeId && dateRange.startDate && dateRange.endDate) { - const fetchData = async () => { - await fetchHistoryData() - await fetchWeekStats() - setIsSearching(false) - } - - fetchData() - } else if (isSearching && nodeId && (!dateRange.startDate || !dateRange.endDate)) { - console.log( - '[HistoryContext] Waiting for initial date range to be set after periods load.' - ) - } - }, [ - isSearching, - nodeId, - dateRange, - currentPage, - pageSize, - fetchHistoryData, - fetchWeekStats - ]) - - const clearHistory = useCallback(() => { - setNodeId('') - setIsSearching(false) - setData([]) - setTotalItems(0) - setCurrentPage(1) - setError(null) - setWeekStats(null) - setErrorWeekStats(null) - if (availablePeriods.length > 0) { - const mostRecentPeriod = availablePeriods[0] - setDateRange({ - startDate: mostRecentPeriod.startDate, - endDate: mostRecentPeriod.endDate - }) - } else { - setDateRange({ startDate: null, endDate: null }) - } - }, [availablePeriods]) - - const handleSetDateRange = useCallback( - (newRange: DateRange) => { - console.log( - `[HistoryContext] Setting new date range: ${newRange.startDate?.format('YYYY-MM-DD')} to ${newRange.endDate?.format('YYYY-MM-DD')}` - ) - - if (newRange.startDate && newRange.endDate) { - setDateRange(newRange) - - if (nodeId && nodeId.trim() !== '') { - setIsSearching(true) - } - } else { - console.log('[HistoryContext] Ignoring invalid date range (missing dates)') - } - }, - [nodeId] - ) - - const getRewardsForPeriod = ( - periodId: string | number - ): { - averageReward: number - totalDistributed: number - nrEligibleNodes: number - } | null => { - if (!periodId || rewardsData.length === 0) return null - - const periodIdStr = periodId.toString() - const periodRewards = rewardsData.find((reward) => reward.date === periodIdStr) - - if (!periodRewards) return null - - const averageReward = periodRewards.totalAmount / periodRewards.nrEligibleNodes - - return { - averageReward, - totalDistributed: periodRewards.totalAmount, - nrEligibleNodes: periodRewards.nrEligibleNodes - } - } - - const totalProgramDistribution = useMemo(() => { - if (!Array.isArray(rewardsData) || rewardsData.length === 0) return 0 - return rewardsData.reduce((sum, reward) => { - return sum + (reward?.totalAmount || 0) - }, 0) - }, [rewardsData]) - - const value: HistoryContextType = { - data, - loading, - error, - currentPage, - pageSize, - totalItems, - nodeId, - dateRange, - isSearching, - setNodeId, - setDateRange: handleSetDateRange, - setCurrentPage, - setPageSize, - setIsSearching, - clearHistory, - fetchHistoryData, - weekStats, - loadingWeekStats, - errorWeekStats, - fetchWeekStats, - availablePeriods, - periodsLoading, - getRewardsForPeriod, - rewardsData, - loadingRewards, - errorRewards, - totalProgramDistribution, - currentRoundStats, - loadingCurrentRound, - errorCurrentRound, - isInitialising, - nodesData, - loadingNodeData, - errorNodeData - } - - return {children} -} - -export const useHistoryContext = () => { - const context = useContext(HistoryContext) - if (context === undefined) { - throw new Error('useHistoryContext must be used within a HistoryProvider') - } - return context -} - -export const getNodeData = async ( - nodeId: string, -): Promise => { - try { - let url = `https://incentive-backend.oceanprotocol.com/nodes?nodeId=${nodeId}` - - const response = await axios.get(url) - console.log('[getNodeDetails] Response from node data API:', response) - return response?.data?.nodes[0]?._source as NodeData - } catch (error) { - console.error('[getNodeDetails] Error fetching node details:', error) - throw error - } -} - diff --git a/src/context/MapContext.tsx b/src/context/MapContext.tsx deleted file mode 100644 index dd7b5517..00000000 --- a/src/context/MapContext.tsx +++ /dev/null @@ -1,85 +0,0 @@ -import React, { - createContext, - useState, - useEffect, - useContext, - ReactNode, - useMemo -} from 'react' -import axios from 'axios' -import { getApiRoute } from '@/config' -import { LocationNode } from '../shared/types/locationNodeType' - -interface MapContextType { - data: LocationNode[] - loading: boolean - error: any - totalCountries: number -} - -interface MapProviderProps { - children: ReactNode -} - -export const MapContext = createContext(undefined) - -export const MapProvider: React.FC = ({ children }) => { - const [data, setData] = useState([]) - const [loading, setLoading] = useState(true) - const [error, setError] = useState(null) - const [totalCountries, setTotalCountries] = useState(0) - - const fetchUrl = useMemo(() => { - return getApiRoute('locations') - }, []) - - useEffect(() => { - const fetchData = async () => { - setLoading(true) - try { - const response = await axios.get(fetchUrl) - const locationsFromAPI = response.data.locations - const totalCountries = response.data.totalCountries - - const transformedNodes = locationsFromAPI.map((location: any) => ({ - city: location.location, - lat: location.coordinates.lat, - lon: location.coordinates.lon, - country: location.country || location.location, - count: location.count - })) - - setData(transformedNodes) - setTotalCountries(totalCountries) - } catch (err) { - console.error('Error fetching locations:', err) - setError(err) - } finally { - setLoading(false) - } - } - - fetchData() - }, [fetchUrl]) - - return ( - - {children} - - ) -} - -export const useMapContext = () => { - const context = useContext(MapContext) - if (context === undefined) { - throw new Error('useMapContext must be used within a MapProvider') - } - return context -} diff --git a/src/context/NodesContext.tsx b/src/context/NodesContext.tsx deleted file mode 100644 index fd1b3216..00000000 --- a/src/context/NodesContext.tsx +++ /dev/null @@ -1,448 +0,0 @@ -import React, { - createContext, - useState, - useEffect, - useContext, - ReactNode, - useMemo, - useCallback -} from 'react' -import axios from 'axios' -import { NodeData } from '@/shared/types/RowDataType' -import { getApiRoute } from '@/config' -import { SystemStats } from '@/shared/types/dataTypes' -import { NodeFilters as OriginalNodeFilters } from '@/shared/types/filters' - -type NodeFilters = { - [key: string]: { - value: any - operator: string - } -} -import { GridFilterModel } from '@mui/x-data-grid' - -interface RewardHistoryItem { - date: string - background: { value: number } - foreground: { value: number } - weeklyAmount: number -} - -interface AverageIncentiveDataItem { - date: string - foreground: { value: number } - totalRewards: number - totalNodes: number -} - -interface NodesContextType { - data: NodeData[] - loading: boolean - error: any - currentPage: number - pageSize: number - totalItems: number - searchTerm: string - sortModel: Record - filters: Record - nextSearchAfter: any[] | null - totalNodes: number | null - totalEligibleNodes: number | null - totalRewards: number | null - systemStats: SystemStats - totalUptime: number | null - rewardsHistory: RewardHistoryItem[] - loadingTotalNodes: boolean - loadingRewardsHistory: boolean - loadingTotalEligible: boolean - loadingTotalRewards: boolean - overallDashboardLoading: boolean - averageIncentiveData: AverageIncentiveDataItem[] - setCurrentPage: (page: number) => void - setPageSize: (size: number) => void - setSearchTerm: (term: string) => void - setFilters: (filters: { [key: string]: any }) => void - setSortModel: (model: { [key: string]: 'asc' | 'desc' }) => void - setFilter: (filter: GridFilterModel) => void - fetchRewardsHistory: () => Promise -} - -const NodesContext = createContext(undefined) - -interface NodesProviderProps { - children: ReactNode -} - -export const NodesProvider: React.FC = ({ children }) => { - const [data, setData] = useState([]) - const [loading, setLoading] = useState(true) - const [error, setError] = useState(null) - const [currentPage, setCurrentPage] = useState(1) - const [pageSize, setPageSize] = useState(100) - const [totalItems, setTotalItems] = useState(0) - const [searchTerm, setSearchTerm] = useState('') - const [sortModel, setSortModel] = useState>({}) - const [filters, setFilters] = useState>({}) - const [filter, setFilter] = useState({ items: [] }) - const [nextSearchAfter, setNextSearchAfter] = useState(null) - - const [totalNodes, setTotalNodes] = useState(null) - const [totalEligibleNodes, setTotalEligibleNodes] = useState(null) - const [totalRewards, setTotalRewards] = useState(null) - const [systemStats, setSystemStats] = useState({ - cpuCounts: {}, - operatingSystems: {}, - cpuArchitectures: {} - }) - const [totalUptime, setTotalUptime] = useState(null) - const [rewardsHistory, setRewardsHistory] = useState([]) - const [loadingTotalNodes, setLoadingTotalNodes] = useState(false) - const [loadingRewardsHistory, setLoadingRewardsHistory] = useState(false) - const [loadingTotalEligible, setLoadingTotalEligible] = useState(false) - const [loadingTotalRewards, setLoadingTotalRewards] = useState(false) - const [metricsLoaded, setMetricsLoaded] = useState(false) - const [overallDashboardLoading, setOverallDashboardLoading] = useState(true) - const [averageIncentiveData, setAverageIncentiveData] = useState< - AverageIncentiveDataItem[] - >([]) - - const sortParams = useMemo(() => { - return Object.entries(sortModel) - .map(([field, order]) => `sort[${field}]=${order}`) - .join('&') - }, [sortModel]) - - const buildFilterParams = (filters: NodeFilters): string => { - if (!filters || Object.keys(filters).length === 0) return '' - return Object.entries(filters) - .filter(([_, filterData]) => filterData?.value && filterData?.operator) - .map(([field, filterData]) => { - if (field === 'id') { - const ids = filterData.value.split(',').map((id: string) => id.trim()) - return `filters[${field}][value]=${ids.join(',')}` - } - return `filters[${field}][${filterData.operator}]=${filterData.value}` - }) - .join('&') - } - - const fetchUrl = useMemo(() => { - let url = `${getApiRoute('nodes')}?page=${currentPage}&size=${pageSize}` - if (sortParams) { - url += `&${sortParams}` - } - const gridFilterToNodeFilters = (gridFilter: GridFilterModel): NodeFilters => { - const nodeFilters: NodeFilters = {} - gridFilter.items.forEach((item) => { - if (item.field && item.value !== undefined && item.operator) { - nodeFilters[item.field] = { - value: item.value, - operator: item.operator - } - } - }) - return nodeFilters - } - const filterString = buildFilterParams(gridFilterToNodeFilters(filter)) - if (filterString) { - url += `&${filterString}` - } - if (searchTerm) { - url += `&search=${encodeURIComponent(searchTerm)}` - } - return url - }, [currentPage, pageSize, sortParams, filter, searchTerm]) - - const fetchData = useCallback(async () => { - const isDefaultView = - (!searchTerm || searchTerm.trim() === '') && - (Object.keys(filters).length === 0 || - Object.values(filters).every((filter: any) => !filter || !filter.value)) - setLoading(true) - if (isDefaultView && !metricsLoaded) { - setLoadingTotalNodes(true) - } - try { - const response = await axios.get(fetchUrl) - const sanitizedData = response.data.nodes.map((element: any, index: number) => ({ - ...element._source, - index: (currentPage - 1) * pageSize + index + 1 - })) - setData(sanitizedData) - setTotalItems(response.data.pagination.totalItems) - setNextSearchAfter(response.data.pagination.nextSearchAfter) - if (isDefaultView && !metricsLoaded) { - setTotalNodes(response.data.pagination.totalItems) - } - } catch (err) { - console.error('Error fetching data:', err) - setError(err) - } finally { - setLoading(false) - if (isDefaultView && !metricsLoaded) { - setLoadingTotalNodes(false) - } - } - }, [currentPage, fetchUrl, pageSize, searchTerm, filters, metricsLoaded]) - - const getTotalEligible = useCallback(async () => { - if (!metricsLoaded) setLoadingTotalEligible(true) - - try { - const date = Date.now() - const oneWeekInMs = 7 * 24 * 60 * 60 * 1000 - const maxWeeksToTry = 20 - - let lastError: any = null - - for (let weekOffset = 1; weekOffset <= maxWeeksToTry; weekOffset++) { - try { - const targetDate = Math.floor( - new Date(date - weekOffset * oneWeekInMs).getTime() / 1000 - ) - const response = await axios.get( - `${getApiRoute('analyticsSummary')}?date=${targetDate}` - ) - - if (response?.data?.numberOfRows) { - setTotalEligibleNodes(response.data.numberOfRows) - return - } - } catch (err) { - console.error(`Error fetching data for ${weekOffset} week(s) ago:`, err) - lastError = err - } - } - - // If we get here, all attempts failed - console.error('All weekly fallback attempts failed') - if (lastError) { - setError(lastError) - } - } finally { - if (!metricsLoaded) setLoadingTotalEligible(false) - } - }, [metricsLoaded]) - - const getTotalRewards = useCallback(async () => { - if (!metricsLoaded) setLoadingTotalRewards(true) - try { - const response = await axios.get(getApiRoute('analyticsAllSummary')) - setTotalRewards(response.data.cumulativeTotalAmount) - } catch (err) { - console.error('Error fetching rewards data:', err) - setError(err) - } finally { - if (!metricsLoaded) setLoadingTotalRewards(false) - } - }, [metricsLoaded]) - - const fetchSystemStats = useCallback(async () => { - try { - const response = await axios.get(getApiRoute('nodeSystemStats')) - if (response.data) { - setSystemStats(response.data) - } - } catch (err) { - console.error('Error fetching system stats:', err) - } - }, []) - - const fetchRewardsHistory = useCallback(async () => { - try { - const response = await fetch(getApiRoute('analyticsRewardsHistory')) - const data = await response.json() - - const sortedRewardsForCumulative = [...data.rewards].sort( - (a, b) => parseInt(a.date, 10) - parseInt(b.date, 10) - ) - - let cumulativeAmount = 0 - const formattedData = sortedRewardsForCumulative.map((item) => { - cumulativeAmount += item.totalAmount - return { - date: item.date, - background: { value: item.nrEligibleNodes }, - foreground: { value: cumulativeAmount }, - weeklyAmount: item.totalAmount - } - }) - - const averageData = sortedRewardsForCumulative.map((item: any) => { - const average = - item.nrEligibleNodes > 0 ? item.totalAmount / item.nrEligibleNodes : 0 - - return { - date: item.date, - foreground: { value: average }, - totalRewards: item.totalAmount, - totalNodes: item.nrEligibleNodes - } - }) - - setRewardsHistory(formattedData) - setAverageIncentiveData(averageData) - setLoadingRewardsHistory(false) - } catch (error) { - console.error('Error fetching rewards history:', error) - setLoadingRewardsHistory(false) - } - }, []) - - useEffect(() => { - let mounted = true - const controller = new AbortController() - - const fetchAllData = async () => { - if (!mounted) return - try { - await fetchData() - const initialSetupPromises: Promise[] = [] - - if (!systemStats.cpuCounts || Object.keys(systemStats.cpuCounts).length === 0) { - initialSetupPromises.push(fetchSystemStats()) - } - - const isDefaultView = - (!searchTerm || searchTerm.trim() === '') && - (Object.keys(filters).length === 0 || - Object.values(filters).every((filter: any) => !filter || !filter.value)) - - if (isDefaultView && !metricsLoaded) { - initialSetupPromises.push(getTotalEligible()) - initialSetupPromises.push(getTotalRewards()) - } - - initialSetupPromises.push(fetchRewardsHistory()) - - await Promise.all(initialSetupPromises) - - if (isDefaultView && !metricsLoaded) { - setMetricsLoaded(true) - } - } catch (error) { - console.error('Error fetching initial dashboard data:', error) - } finally { - if (mounted) { - setOverallDashboardLoading(false) - } - } - } - - fetchAllData() - - return () => { - mounted = false - controller.abort() - } - }, [ - currentPage, - pageSize, - filters, - sortModel, - searchTerm, - systemStats.cpuCounts, - metricsLoaded, - getTotalEligible, - getTotalRewards, - fetchRewardsHistory, - fetchData, - fetchSystemStats - ]) - - useEffect(() => { - const fetchTotalUptime = async () => { - try { - const now = Math.floor(Date.now() / 1000) - const response = await axios.get(`${getApiRoute('weekStats')}?date=${now}`) - if (response?.data && response.data.length > 0) { - const totalUptimeValue = response.data[0]._source.totalUptime - setTotalUptime(totalUptimeValue) - } - } catch (error) { - console.error('Failed to fetch total uptime:', error) - } - } - fetchTotalUptime() - }, []) - - const handleSetCurrentPage = (page: number) => { - setCurrentPage(page) - } - - const handleSetPageSize = (size: number) => { - setPageSize(size) - setData([]) - setNextSearchAfter(null) - } - - const handleSetSearchTerm = (term: string) => { - setSearchTerm(term) - setCurrentPage(1) - setNextSearchAfter(null) - } - - const handleSetSortModel = (model: { [key: string]: 'asc' | 'desc' }) => { - setSortModel(model) - setCurrentPage(1) - setNextSearchAfter(null) - } - - const handleSetFilters = (newFilters: { [key: string]: any }) => { - console.log('Setting filters:', newFilters) - setFilters(newFilters) - setCurrentPage(1) - } - - const handleSetFilter = (filter: GridFilterModel) => { - console.log('Setting filter:', filter) - setFilter(filter) - setCurrentPage(1) - } - - return ( - - {children} - - ) -} - -export const useNodesContext = () => { - const context = useContext(NodesContext) - if (context === undefined) { - throw new Error('useNodesContext must be used within a NodesProvider') - } - return context -} diff --git a/src/context/nodes-context.tsx b/src/context/nodes-context.tsx new file mode 100644 index 00000000..a19ba792 --- /dev/null +++ b/src/context/nodes-context.tsx @@ -0,0 +1,131 @@ +import { getApiRoute } from '@/config'; +import { BenchmarkMinMaxLastResponse, Node, NodeStatsResponse } from '@/types/nodes'; +import { JobsPerEpochType, RevenuePerEpochType } from '@/types/stats'; +import axios from 'axios'; +import { createContext, ReactNode, useCallback, useContext, useState } from 'react'; + +type NodesContextType = { + benchmarkValues: BenchmarkMinMaxLastResponse; + jobsPerEpoch: JobsPerEpochType[]; + revenuePerEpoch: RevenuePerEpochType[]; + selectedNode: Node | null; + totalJobs: number; + totalRevenue: number; + + fetchNode: (nodeId: string) => Promise; + fetchNodeBenchmarkMinMaxLast: () => Promise; + fetchNodeStats: () => Promise; + setSelectedNode: (node: Node | null) => void; +}; + +const NodesContext = createContext(undefined); + +export const NodesProvider = ({ children }: { children: ReactNode }) => { + const [benchmarkValues, setBenchmarkValues] = useState({ + minCPUScore: 0, + lastCPUScore: 0, + maxCPUScore: 0, + + minGPUScore: 0, + lastGPUScore: 0, + maxGPUScore: 0, + }); + const [jobsPerEpoch, setJobsPerEpoch] = useState([]); + const [revenuePerEpoch, setRevenuePerEpoch] = useState([]); + const [totalJobs, setTotalJobs] = useState(0); + const [totalRevenue, setTotalRevenue] = useState(0); + const [selectedNode, setSelectedNode] = useState(null); + + const fetchNode = useCallback(async (nodeId: string) => { + try { + const response = await axios.get(`${getApiRoute('nodes')}?page=0&size=1&nodeId=${nodeId}`); + + if (response.data?.nodes?.length !== 0) { + setSelectedNode(response.data.nodes[0]._source); + } + } catch (error) { + console.error('Error fetching node benchmark min/max/last: ', error); + } + }, []); + + const fetchNodeBenchmarkMinMaxLast = useCallback(async () => { + try { + const response = await axios.get( + `${getApiRoute('nodeBenchmarkMinMaxLast')}/${selectedNode?.id}/benchmark` + ); + if (response.data) { + const { minGPUScore, lastGPUScore, maxGPUScore, minCPUScore, lastCPUScore, maxCPUScore } = response.data; + setBenchmarkValues({ + minGPUScore: minGPUScore < lastGPUScore ? minGPUScore : lastGPUScore, + maxGPUScore: maxGPUScore > lastGPUScore ? maxGPUScore : lastGPUScore, + lastGPUScore, + + minCPUScore: minCPUScore < lastCPUScore ? minCPUScore : lastCPUScore, + maxCPUScore: maxCPUScore > lastCPUScore ? maxCPUScore : lastCPUScore, + lastCPUScore, + }); + } + } catch (error) { + console.error('Error fetching node benchmark min/max/last: ', error); + } + }, [selectedNode?.id]); + + const fetchNodeStats = useCallback(async () => { + try { + const response = await axios.get(`${getApiRoute('nodeStats')}/${selectedNode?.id}/stats`); + if (response.data) { + setTotalJobs(response.data.totalJobs); + setTotalRevenue(response.data.totalRevenue); + + const jobsPerEpoch = []; + const revenuePerEpoch = []; + for (const epochData of response.data.data) { + jobsPerEpoch.push({ + epochId: epochData.epochId, + totalNetworkJobs: epochData.totalNetworkJobs, + totalBenchmarkJobs: epochData.totalBenchmarkJobs, + totalJobs: epochData.totalBenchmarkJobs + epochData.totalNetworkJobs, + }); + revenuePerEpoch.push({ + epochId: epochData.epochId, + totalNetworkRevenue: epochData.networkRevenue, + totalBenchmarkRevenue: epochData.benchmarkRevenue, + totalRevenue: epochData.networkRevenue + epochData.benchmarkRevenue, + }); + } + + setJobsPerEpoch(jobsPerEpoch); + setRevenuePerEpoch(revenuePerEpoch); + } + } catch (error) { + console.error('Error fetching node stats:', error); + } + }, [selectedNode?.id]); + + return ( + + {children} + + ); +}; + +export const useNodesContext = () => { + const context = useContext(NodesContext); + if (!context) { + throw new Error('useNodesContext must be used within a NodesProvider'); + } + return context; +}; diff --git a/src/context/profile-context.tsx b/src/context/profile-context.tsx new file mode 100644 index 00000000..f5ab18d8 --- /dev/null +++ b/src/context/profile-context.tsx @@ -0,0 +1,284 @@ +import { getApiRoute } from '@/config'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { EnvNodeInfo } from '@/types/environments'; +import { EnsProfile } from '@/types/profile'; +import { + ActiveNodes, + ConsumerStats, + ConsumerStatsPerEpoch, + JobsSuccessRate, + OwnerStats, + OwnerStatsPerEpoch, +} from '@/types/stats'; +import { useSendUserOperation, useSmartAccountClient } from '@account-kit/react'; +import axios from 'axios'; +import { createContext, ReactNode, useCallback, useContext, useEffect, useRef, useState } from 'react'; + +type ProfileContextType = { + ensName: string | undefined; + ensAddress: string | undefined; + ensProfile: EnsProfile | undefined; + // Owner stats + totalNetworkRevenue: number; + totalBenchmarkRevenue: number; + totalNetworkJobs: number; + totalBenchmarkJobs: number; + ownerStatsPerEpoch: OwnerStatsPerEpoch[]; + eligibleNodes: number; + totalNodes: number; + //Consumer stats + totalJobs: number; + totalPaidAmount: number; + consumerStatsPerEpoch: ConsumerStatsPerEpoch[]; + successfullJobs: number; + environment: any; + nodeInfo: EnvNodeInfo; + // API functions + fetchOwnerStats: () => Promise; + fetchConsumerStats: () => Promise; + fetchActiveNodes: () => Promise; + fetchJobsSuccessRate: () => Promise; + fetchNodeEnv: (peerId: string, envId: string) => Promise; +}; + +const ProfileContext = createContext(undefined); + +export const ProfileProvider = ({ children }: { children: ReactNode }) => { + const { account } = useOceanAccount(); + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + const { sendUserOperationAsync } = useSendUserOperation({ + client, + waitForTxn: true, + }); + + const [ensAddress, setEnsAddress] = useState(undefined); + const [ensName, setEnsName] = useState(undefined); + const [ensProfile, setEnsProfile] = useState(undefined); + const [totalNetworkRevenue, setTotalNetworkRevenue] = useState(0); + const [totalBenchmarkRevenue, setTotalBenchmarkRevenue] = useState(0); + const [totalNetworkJobs, setTotalNetworkJobs] = useState(0); + const [totalBenchmarkJobs, setTotalBenchmarkJobs] = useState(0); + const [ownerStatsPerEpoch, setOwnerStatsPerEpoch] = useState([]); + const [totalJobs, setTotalJobs] = useState(0); + const [totalPaidAmount, setTotalPaidAmount] = useState(0); + const [consumerStatsPerEpoch, setConsumerStatsPerEpoch] = useState([]); + const [eligibleNodes, setEligibleNodes] = useState(0); + const [totalNodes, setTotalNodes] = useState(0); + const [successfullJobs, setSuccessfullJobs] = useState(0); + const [environment, setEnvironment] = useState(null); + const [nodeInfo, setNodeInfo] = useState(); + + // Ref to track deployment attempts and prevent infinite loop + const deploymentAttempted = useRef(null); + + const fetchEnsAddress = useCallback(async (accountId: string) => { + if (!accountId || accountId === '' || !accountId.includes('.')) { + return; + } + try { + const response = await axios.get(`${getApiRoute('ensAddress')}?name=${accountId}`); + if (response.data?.address) { + setEnsAddress(response.data.address); + } + } catch (error) { + console.error('Error fetching ENS address:', error); + } + }, []); + + const fetchEnsName = useCallback(async (accountId: string) => { + if (!accountId || accountId === '') { + return; + } + try { + const response = await axios.get(`${getApiRoute('ensName')}?accountId=${accountId}`); + if (response.data?.name) { + setEnsName(response.data.name); + } + } catch (error) { + console.error('Error fetching ENS name:', error); + } + }, []); + + const fetchEnsProfile = useCallback(async (accountId: string) => { + if (!accountId || accountId === '') { + return; + } + try { + const response = await axios.get(`${getApiRoute('ensProfile')}?address=${accountId}`); + if (response.data?.profile) { + setEnsProfile(response.data.profile); + } + } catch (error) { + console.error('Error fetching ENS profile:', error); + } + }, []); + + const fetchOwnerStats = useCallback(async () => { + try { + const response = await axios.get(`${getApiRoute('ownerStats')}/${ensAddress}/stats`); + if (response.data) { + setTotalNetworkRevenue(response.data.totalNetworkRevenue); + setTotalBenchmarkRevenue(response.data.totalBenchmarkRevenue); + setTotalNetworkJobs(response.data.totalNetworkJobs); + setTotalBenchmarkJobs(response.data.totalBenchmarkJobs); + setTotalJobs(response.data.totalNetworkJobs + response.data.totalBenchmarkJobs); + setOwnerStatsPerEpoch(response.data.data); + + const totalsPerEpoch = response.data.data.map((item) => { + return { + epochId: item.epochId, + totalNetworkRevenue: item.totalNetworkRevenue, + totalBenchmarkRevenue: item.totalBenchmarkRevenue, + totalBenchmarkJobs: item.totalBenchmarkJobs, + totalNetworkJobs: item.totalNetworkJobs, + totalRevenue: item.totalNetworkRevenue + item.totalBenchmarkRevenue, + totalJobs: item.totalNetworkJobs + item.totalBenchmarkJobs, + }; + }); + setOwnerStatsPerEpoch(totalsPerEpoch); + } + } catch (err) { + console.error('Error fetching owner stats: ', err); + } + }, []); + + const fetchConsumerStats = useCallback(async () => { + try { + const response = await axios.get(`${getApiRoute('consumerStats')}/${ensAddress}/stats`); + if (response.data) { + setTotalJobs(response.data.totalJobs); + setTotalPaidAmount(response.data.totalPaidAmount); + setConsumerStatsPerEpoch(response.data.data); + } + } catch (err) { + console.error('Error fetching consumer stats: ', err); + } + }, []); + + const fetchActiveNodes = useCallback(async () => { + try { + const response = await axios.get(`${getApiRoute('nodesStats')}/${ensAddress}/nodesStats`); + if (response.data) { + setEligibleNodes(response.data.activeCount); + setTotalNodes(response.data.totalCount); + } + } catch (err) { + console.error('Error fetching active nodes: ', err); + } + }, []); + + const fetchJobsSuccessRate = useCallback(async () => { + try { + const response = await axios.get( + `${getApiRoute('jobsSuccessRate')}/${ensAddress}/jobs-success-rate` + ); + if (response.data) { + setSuccessfullJobs(response.data.successCount); + setTotalJobs(response.data.totalCount); + } + } catch (err) { + console.error('Error fetching jobs success rate: ', err); + } + }, []); + + const fetchNodeEnv = useCallback(async (peerId: string, envId: string) => { + try { + const response = await axios.get(`${getApiRoute('nodes')}?filters[id][value]=${peerId}`); + const sanitizedData = response.data.nodes.map((element: any) => element._source)[0]; + const env = sanitizedData.computeEnvironments.environments.find((env: any) => env.id === envId); + setEnvironment(env); + setNodeInfo({ id: sanitizedData.id, friendlyName: sanitizedData.friendlyName }); + } catch (err) { + console.error('Error fetching node env: ', err); + } + }, []); + + // Handle profile fetching when connected + useEffect(() => { + if (account.status === 'connected' && account.address) { + fetchEnsAddress(account.address); + fetchEnsName(account.address); + fetchEnsProfile(account.address); + } else { + setEnsAddress(undefined); + setEnsName(undefined); + setEnsProfile(undefined); + } + }, [account.address, account.status, fetchEnsAddress, fetchEnsName, fetchEnsProfile]); + + // Auto-deploy account if needed when user connects + useEffect(() => { + // Skip if we've already attempted deployment for this address + if (deploymentAttempted.current === account.address) { + return; + } + + const handleAutoDeployment = async () => { + if (account.status === 'connected' && account.address && client?.account) { + const isDeployed = await client.account.isAccountDeployed(); + + if (!isDeployed) { + // Mark that we're attempting deployment for this address + deploymentAttempted.current = account.address; + + try { + console.log('Deploying account for:', account.address); + await sendUserOperationAsync({ + uo: { + target: account.address as `0x${string}`, + data: '0x' as `0x${string}`, + value: BigInt(0), + }, + }); + console.log('Account deployed successfully'); + } catch (error) { + console.error('Error deploying account:', error); + // Reset on error so user can retry manually if needed + deploymentAttempted.current = null; + } + } + } + }; + + handleAutoDeployment(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [account.status, account.address, client]); + + return ( + + {children} + + ); +}; + +export const useProfileContext = () => { + const context = useContext(ProfileContext); + if (!context) { + throw new Error('useProfileContext must be used within a ProfileProvider'); + } + return context; +}; diff --git a/src/context/run-job-context.tsx b/src/context/run-job-context.tsx new file mode 100644 index 00000000..9eaa6c52 --- /dev/null +++ b/src/context/run-job-context.tsx @@ -0,0 +1,140 @@ +import { getApiRoute } from '@/config'; +import { getTokenSymbol } from '@/lib/token-symbol'; +import { ComputeEnvironment, EnvNodeInfo, EnvResourcesSelection } from '@/types/environments'; +import { GPUPopularityDisplay, GPUPopularityStats } from '@/types/nodes'; +import axios from 'axios'; +import { createContext, ReactNode, useCallback, useContext, useState } from 'react'; + +export type SelectedToken = { + symbol: string; + address: string; +}; + +type RunJobContextType = { + estimatedTotalCost: number | null; + fetchGpus: () => Promise; + freeCompute: boolean; + gpus: GPUPopularityDisplay; + nodeInfo: EnvNodeInfo | null; + selectedEnv: ComputeEnvironment | null; + selectedResources: EnvResourcesSelection | null; + selectedToken: SelectedToken | null; + selectEnv: ({ + environment, + freeCompute, + nodeInfo, + resources, + }: { + environment: ComputeEnvironment | null; + freeCompute: boolean; + nodeInfo: EnvNodeInfo; + resources?: EnvResourcesSelection; + }) => void; + selectToken: (address: string, symbol?: string | null) => void | Promise; + setEstimatedTotalCost: (cost: number | null) => void; + setSelectedResources: (selection: EnvResourcesSelection | null) => void; +}; + +const RunJobContext = createContext(undefined); + +export const RunJobProvider = ({ children }: { children: ReactNode }) => { + const [estimatedTotalCost, setEstimatedTotalCost] = useState(null); + const [freeCompute, setFreeCompute] = useState(false); + const [nodeInfo, setNodeInfo] = useState(null); + const [selectedEnv, setSelectedEnv] = useState(null); + const [selectedResources, setSelectedResources] = useState(null); + const [selectedToken, setSelectedToken] = useState(null); + const [gpus, setGpus] = useState([]); + + const clearRunJobSelection = useCallback(() => { + setEstimatedTotalCost(null); + setFreeCompute(false); + setNodeInfo(null); + setSelectedEnv(null); + setSelectedResources(null); + setSelectedToken(null); + }, []); + + // TODO fetch all GPUs not only top 5 + const fetchGpus = useCallback(async () => { + try { + const response = await axios.get(getApiRoute('gpuPopularity')); + const res: GPUPopularityDisplay = response.data.map((gpu) => ({ + gpuName: `${gpu.vendor} ${gpu.name}`, + popularity: gpu.popularity, + })); + setGpus(res); + } catch (error) { + console.error('Failed to fetch GPUs:', error); + } + }, []); + + /** + * Selects an environment and optional resources. Clears any previous selection. + * @param environment The environment to select. + * @param resources Optional resources to select. + */ + const selectEnv = useCallback( + ({ + environment, + freeCompute, + nodeInfo, + resources, + }: { + environment: ComputeEnvironment | null; + freeCompute: boolean; + nodeInfo: EnvNodeInfo; + resources?: EnvResourcesSelection; + }) => { + clearRunJobSelection(); + setSelectedEnv(environment); + setFreeCompute(freeCompute); + setNodeInfo(nodeInfo); + if (resources) { + setSelectedResources(resources); + } + }, + [clearRunJobSelection] + ); + + const selectToken = useCallback(async (address: string, symbol?: string | null) => { + if (symbol) { + setSelectedToken({ address, symbol }); + return; + } else { + const symbol = await getTokenSymbol(address); + if (symbol) { + setSelectedToken({ address, symbol }); + } + } + }, []); + + return ( + + {children} + + ); +}; + +export const useRunJobContext = () => { + const context = useContext(RunJobContext); + if (!context) { + throw new Error('useRunJobContext must be used within a RunJobProvider'); + } + return context; +}; diff --git a/src/context/run-job-envs-context.tsx b/src/context/run-job-envs-context.tsx new file mode 100644 index 00000000..f668eabf --- /dev/null +++ b/src/context/run-job-envs-context.tsx @@ -0,0 +1,178 @@ +import { getApiRoute } from '@/config'; +import { ApiPaginationResponse } from '@/types/api'; +import { NodeEnvironments } from '@/types/environments'; +import { EnvironmentsFilters } from '@/types/filters'; +import { GPUPopularityDisplay, GPUPopularityStats } from '@/types/nodes'; +import axios from 'axios'; +import { createContext, ReactNode, useCallback, useContext, useEffect, useState } from 'react'; + +const INITIAL_PAGE = 1; +const PAGE_SIZE = 10; + +export type RawFilters = { + feeToken?: string; + fromMaxJobDuration?: number; + gpuName?: string[]; + minimumCPU?: number; + minimumRAM?: number; + minimumStorage?: number; +}; + +type RunJobEnvsContextType = { + fetchGpus: () => Promise; + filters: RawFilters; + gpus: GPUPopularityDisplay; + loading: boolean; + loadMoreEnvs: () => Promise; + nodeEnvs: NodeEnvironments[]; + paginationResponse: ApiPaginationResponse | null; + setFilters: (filters: RawFilters) => void; + setSort: (sort: string | null) => void; + sort: string | null; +}; + +const RunJobEnvsContext = createContext(undefined); + +export const RunJobEnvsProvider = ({ children }: { children: ReactNode }) => { + const [crtPage, setCrtPage] = useState(INITIAL_PAGE); + const [filters, setFilters] = useState({}); + const [gpus, setGpus] = useState([]); + const [loading, setLoading] = useState(false); + const [nodeEnvs, setNodeEnvs] = useState([]); + const [paginationResponse, setPaginationResponse] = useState(null); + const [sort, setSort] = useState(null); + + const buildFilterParams = useCallback((rawFilters?: RawFilters) => { + if (!rawFilters) { + return undefined; + } + const filterParams: EnvironmentsFilters = {}; + if (rawFilters.feeToken) { + filterParams.feeToken = { operator: 'eq', value: rawFilters.feeToken }; + } + if (rawFilters.fromMaxJobDuration || rawFilters.fromMaxJobDuration === 0) { + filterParams.fromMaxJobDuration = { operator: 'gte', value: rawFilters.fromMaxJobDuration }; + } + if (rawFilters.gpuName && rawFilters.gpuName.length > 0) { + filterParams.gpuName = { operator: 'in', value: JSON.stringify(rawFilters.gpuName) }; + } + if (rawFilters.minimumCPU || rawFilters.minimumCPU === 0) { + filterParams.minimumCPU = { operator: 'gte', value: rawFilters.minimumCPU }; + } + if (rawFilters.minimumRAM || rawFilters.minimumRAM === 0) { + filterParams.minimumRAM = { operator: 'gte', value: rawFilters.minimumRAM }; + } + if (rawFilters.minimumStorage || rawFilters.minimumStorage === 0) { + filterParams.minimumStorage = { operator: 'gte', value: rawFilters.minimumStorage }; + } + return filterParams; + }, []); + + const fetchEnvironments = useCallback( + async ({ + filters, + operation, + pageNumber, + pageSize, + sort, + }: { + filters?: RawFilters; + operation: 'new-search' | 'load-more'; + pageNumber: number; + pageSize: number; + sort: string | null; + }) => { + setLoading(true); + try { + const response = await axios.get<{ envs: NodeEnvironments[]; pagination: ApiPaginationResponse }>( + getApiRoute('environments'), + { + params: { + filters: JSON.stringify(buildFilterParams(filters)), + page: pageNumber, + pageSize, + sort, + }, + } + ); + if (response.data) { + setPaginationResponse(response.data.pagination); + if (operation === 'load-more') { + setNodeEnvs((prev) => [...prev, ...response.data.envs]); + } else { + setNodeEnvs(response.data.envs); + } + } + } catch (error) { + console.error('Failed to fetch environments:', error); + } finally { + setLoading(false); + } + }, + [buildFilterParams] + ); + + const loadMoreEnvs = useCallback(async () => { + const newPage = crtPage + 1; + setCrtPage(newPage); + await fetchEnvironments({ + filters, + operation: 'load-more', + pageNumber: newPage, + pageSize: PAGE_SIZE, + sort, + }); + }, [crtPage, fetchEnvironments, filters, sort]); + + useEffect(() => { + setCrtPage(INITIAL_PAGE); + fetchEnvironments({ + filters, + operation: 'new-search', + pageNumber: INITIAL_PAGE, + pageSize: PAGE_SIZE, + sort, + }); + }, [fetchEnvironments, filters, sort]); + + // TODO fetch all GPUs not only top 5 + const fetchGpus = useCallback(async () => { + try { + const response = await axios.get(getApiRoute('gpuPopularity')); + const res: GPUPopularityDisplay = response.data.map((gpu) => ({ + gpuName: `${gpu.vendor} ${gpu.name}`, + popularity: gpu.popularity, + })); + setGpus(res); + } catch (error) { + console.error('Failed to fetch GPUs:', error); + } + }, []); + + return ( + + {children} + + ); +}; + +export const useRunJobEnvsContext = () => { + const context = useContext(RunJobEnvsContext); + if (!context) { + throw new Error('useRunJobEnvsContext must be used within a RunJobEnvsProvider'); + } + return context; +}; diff --git a/src/context/run-node-context.tsx b/src/context/run-node-context.tsx new file mode 100644 index 00000000..8a2ad378 --- /dev/null +++ b/src/context/run-node-context.tsx @@ -0,0 +1,144 @@ +import { useP2P } from '@/contexts/P2PContext'; +import { useOceanAccount } from '@/lib/use-ocean-account'; +import { useSignMessage, useSmartAccountClient } from '@account-kit/react'; +import { createContext, ReactNode, useCallback, useContext, useState } from 'react'; +import { toast } from 'react-toastify'; + +type RunNodeContextType = { + clearRunNodeSelection: () => void; + configErrors: string[]; + connectToNode: (peerId: string) => Promise; + fetchConfig: () => Promise; + loadingFetchConfig: boolean; + loadingPushConfig: boolean; + nodeConfig: Record | null; + peerId: string | null; + pushConfig: (config: Record) => Promise; + setNodeConfig: (config: Record | null) => void; +}; + +const RunNodeContext = createContext(undefined); + +export const RunNodeProvider = ({ children }: { children: ReactNode }) => { + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + const { signMessageAsync } = useSignMessage({ + client, + }); + + const { account } = useOceanAccount(); + const { fetchConfig: p2pFetchConfig, pushConfig: p2pPushConfig, sendCommand } = useP2P(); + + const [configErrors, setConfigErrors] = useState([]); + const [nodeConfig, setNodeConfig] = useState | null>(null); + const [peerId, setPeerId] = useState(null); + + const [loadingFetchConfig, setLoadingFetchConfig] = useState(false); + const [loadingPushConfig, setLoadingPushConfig] = useState(false); + + const clearRunNodeSelection = useCallback(() => { + setConfigErrors([]); + setNodeConfig(null); + setPeerId(null); + }, []); + + const connectToNode = useCallback( + async (peerId: string) => { + try { + const response = await sendCommand(peerId, { command: 'status' }); + if (response.allowedAdmins.addresses.includes(account?.address)) { + setPeerId(peerId); + } else { + toast.error('You are not allowed to configure this node'); + } + } catch (error) { + toast.error('Failed to connect to node'); + } + }, + [account?.address, sendCommand] + ); + + const fetchConfig = useCallback(async () => { + if (!peerId || !account?.address) { + return; + } + const timestamp = Date.now() + 5 * 60 * 1000; // 5 minutes expiry + const signedMessage = await signMessageAsync({ + message: timestamp.toString(), + }); + setLoadingFetchConfig(true); + try { + const config = await p2pFetchConfig(peerId, signedMessage, timestamp, account.address); + setNodeConfig(config); + } catch (error) { + console.error('Error fetching node config:', error); + toast.error('Failed to fetch node config'); + } finally { + setLoadingFetchConfig(false); + } + }, [account.address, p2pFetchConfig, peerId, signMessageAsync]); + + const pushConfig = useCallback( + async (config: Record) => { + if (!peerId || !account?.address) { + return; + } + let success = false; + const timestamp = Date.now() + 5 * 60 * 1000; // 5 minutes expiry + const signedMessage = await signMessageAsync({ + message: timestamp.toString(), + }); + setLoadingPushConfig(true); + try { + await p2pPushConfig(peerId, signedMessage, timestamp, config, account.address); + setNodeConfig(config); + setConfigErrors([]); + success = true; + } catch (error) { + if (error instanceof Error) { + if (error.message.startsWith('Config validation failed:')) { + // erase the prefix + const validationErrors = error.message.replace('Config validation failed: ', '').trim(); + // split the errors, shaped like "field1: field1 error, with comma in the erorr message, field2: field2 error, field3: field3 error, ..." + setConfigErrors(validationErrors.split(/, (?=[a-zA-Z0-9.]+:\s)/)); + } + } + console.error('Error pushing node config:', error); + } finally { + setLoadingPushConfig(false); + if (success) { + toast.success('Successfully pushed new config!'); + } else { + toast.error('Failed to push new config'); + } + } + }, + [peerId, account.address, signMessageAsync, p2pPushConfig] + ); + + return ( + + {children} + + ); +}; + +export const useRunNodeContext = () => { + const context = useContext(RunNodeContext); + if (!context) { + throw new Error('useRunNodeContext must be used within a RunNodeProvider'); + } + return context; +}; diff --git a/src/context/stats-context.tsx b/src/context/stats-context.tsx new file mode 100644 index 00000000..72c0a4e5 --- /dev/null +++ b/src/context/stats-context.tsx @@ -0,0 +1,178 @@ +import { getApiRoute } from '@/config'; +import { GPUPopularityDisplay, GPUPopularityStats, Node } from '@/types/nodes'; +import { AnalyticsGlobalStats, JobsPerEpochType, RevenuePerEpochType, SystemStatsData } from '@/types/stats'; +import axios from 'axios'; +import { ReactNode, createContext, useCallback, useContext, useState } from 'react'; + +type StatsContextType = { + jobsPerEpoch: JobsPerEpochType[]; + revenuePerEpoch: RevenuePerEpochType[]; + systemStats: SystemStatsData; + topGpuModels: GPUPopularityDisplay; + topNodesByJobs: Node[]; + topNodesByRevenue: Node[]; + totalNetworkJobs: number; + totalBenchmarkJobs: number; + totalJobs: number; + totalNetworkRevenue: number; + totalBenchmarkRevenue: number; + totalRevenue: number; + fetchSystemStats: () => Promise; + fetchAnalyticsGlobalStats: () => Promise; + fetchTopGpus: () => Promise; + fetchTopNodesByRevenue: () => Promise; + fetchTopNodesByJobCount: () => Promise; +}; + +const StatsContext = createContext(undefined); + +export const StatsProvider = ({ children }: { children: ReactNode }) => { + const [systemStats, setSystemStats] = useState({ + cpuCounts: {}, + operatingSystems: {}, + cpuArchitectures: {}, + }); + const [totalRevenue, setTotalRevenue] = useState(0); + const [totalNetworkRevenue, setTotalNetworkRevenue] = useState(0); + const [totalBenchmarkRevenue, setTotalBenchmarkRevenue] = useState(0); + const [totalJobs, setTotalJobs] = useState(0); + const [totalNetworkJobs, setTotalNetworkJobs] = useState(0); + const [totalBenchmarkJobs, setTotalBenchmarkJobs] = useState(0); + const [jobsPerEpoch, setJobsPerEpoch] = useState([]); + const [revenuePerEpoch, setRevenuePerEpoch] = useState([]); + const [topGpuModels, setTopGpuModels] = useState([]); + const [topNodesByRevenue, setTopNodesByRevenue] = useState([]); + const [topNodesByJobs, setTopNodesByJobs] = useState([]); + + const fetchTopNodesByRevenue = useCallback(async () => { + try { + const response = await axios.get(getApiRoute('topNodesByRevenue'), { + params: { + size: 5, + page: 1, + sort: JSON.stringify({ + totalRevenue: 'desc', + }), + }, + }); + if (response.data) { + setTopNodesByRevenue(response.data); + } + } catch (err) { + console.error('Error fetching system stats:', err); + } + }, []); + + const fetchTopNodesByJobCount = useCallback(async () => { + try { + const response = await axios.get(getApiRoute('topNodesByJobCount'), { + params: { + size: 5, + page: 1, + sort: JSON.stringify({ + totalJobs: 'desc', + }), + }, + }); + if (response.data) { + setTopNodesByJobs(response.data); + } + } catch (err) { + console.error('Error fetching system stats:', err); + } + }, []); + + const fetchTopGpus = useCallback(async () => { + try { + const response = await axios.get(getApiRoute('gpuPopularity')); + const res: GPUPopularityDisplay = response.data.map((gpu) => ({ + gpuName: `${gpu.vendor} ${gpu.name}`, + popularity: gpu.popularity, + })); + setTopGpuModels(res); + } catch (err) { + console.error('Error fetching system stats:', err); + } + }, []); + + const fetchSystemStats = useCallback(async () => { + try { + const response = await axios.get(getApiRoute('nodeSystemStats')); + if (response.data) { + setSystemStats(response.data); + } + } catch (err) { + console.error('Error fetching system stats:', err); + } + }, []); + + const fetchAnalyticsGlobalStats = useCallback(async () => { + try { + const response = await axios.get(getApiRoute('analyticsGlobalStats')); + if (response.data) { + setTotalNetworkRevenue(response.data.totalNetworkRevenue); + setTotalBenchmarkRevenue(response.data.totalBenchmarkRevenue); + setTotalRevenue(response.data.totalBenchmarkRevenue + response.data.totalNetworkRevenue); + setTotalNetworkJobs(response.data.totalNetworkJobs); + setTotalBenchmarkJobs(response.data.totalBenchmarkJobs); + setTotalJobs(response.data.totalNetworkJobs + response.data.totalBenchmarkJobs); + + const jobs = []; + const revenue = []; + for (const item of response.data.data) { + jobs.push({ + epochId: item.epochId, + totalJobs: item.totalNetworkJobs + item.totalBenchmarkJobs, + totalNetworkJobs: item.totalNetworkJobs, + totalBenchmarkJobs: item.totalBenchmarkJobs, + }); + revenue.push({ + epochId: item.epochId, + totalRevenue: item.totalNetworkRevenue + item.totalBenchmarkRevenue, + totalNetworkRevenue: item.totalNetworkRevenue, + totalBenchmarkRevenue: item.totalBenchmarkRevenue, + }); + } + + setJobsPerEpoch(jobs); + setRevenuePerEpoch(revenue); + } + } catch (err) { + console.error('Error fetching global stats from nodes analytics: ', err); + } + }, []); + + return ( + + {children} + + ); +}; + +export const useStatsContext = () => { + const context = useContext(StatsContext); + if (!context) { + throw new Error('useStatsContext must be used within a StatsProvider'); + } + return context; +}; diff --git a/src/context/table/benchmark-jobs-history-table-context.tsx b/src/context/table/benchmark-jobs-history-table-context.tsx new file mode 100644 index 00000000..9ad0c42e --- /dev/null +++ b/src/context/table/benchmark-jobs-history-table-context.tsx @@ -0,0 +1,173 @@ +import { TableContextType } from '@/components/table/context-type'; +import { getApiRoute } from '@/config'; +import { BenchmarkJobsHistoryFilters, FilterOperator } from '@/types/filters'; +import { ComputeJobHistory } from '@/types/jobs'; +import { formatDateTime } from '@/utils/formatters'; +import { GridFilterModel } from '@mui/x-data-grid'; +import axios from 'axios'; +import { ReactNode, createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; + +type CtxType = TableContextType; + +const BenchmarkJobsHistoryTableContext = createContext(undefined); + +export const BenchmarkJobsHistoryTableProvider = ({ children, nodeId }: { children: ReactNode; nodeId: string }) => { + const [crtPage, setCrtPage] = useState(1); + const [data, setData] = useState([]); + const [error, setError] = useState(null); + const [filterModel, setFilterModel] = useState({ items: [] }); + const [filters, setFilters] = useState({}); + const [loading, setLoading] = useState(false); + const [pageSize, setPageSize] = useState(100); + const [searchTerm, setSearchTerm] = useState(''); + const [sortModel, setSortModel] = useState>({}); + const [totalItems, setTotalItems] = useState(0); + + const buildFilterParams = (filters: BenchmarkJobsHistoryFilters): string => { + if (!filters || Object.keys(filters).length === 0) return ''; + + const filtersObject: Record = {}; + + Object.entries(filters).forEach(([field, filterData]) => { + if (filterData?.value !== undefined && filterData?.operator) { + filtersObject[field] = { + operator: filterData.operator, + value: filterData.value, + }; + } + }); + + return `filters=${encodeURIComponent(JSON.stringify(filtersObject))}`; + }; + + const fetchUrl = useMemo(() => { + let url = `${getApiRoute('benchmarkHistory')}/${nodeId}/benchmarkHistory?page=${crtPage}&size=${pageSize}&sort={"endTime": "desc"}`; + const gridFilterToBenchmarkFilters = (gridFilter: GridFilterModel): BenchmarkJobsHistoryFilters => { + const operatorMap: Record = { + '>': 'gt', + '<': 'lt', + '=': 'eq', + }; + const benchmarkFilters: BenchmarkJobsHistoryFilters = {}; + gridFilter.items.forEach((item) => { + if (item.field && item.value !== undefined && item.operator) { + benchmarkFilters[item.field as keyof BenchmarkJobsHistoryFilters] = { + value: item.value, + operator: operatorMap[item.operator] || (item.operator as FilterOperator), + }; + } + }); + return benchmarkFilters; + }; + const filterString = buildFilterParams(gridFilterToBenchmarkFilters(filterModel)); + if (filterString) { + url += `&${filterString}`; + } + if (searchTerm) { + url += `&search=${encodeURIComponent(searchTerm)}`; + } + return url; + }, [crtPage, pageSize, filterModel, searchTerm, nodeId]); + + const fetchData = useCallback(async () => { + setLoading(true); + try { + const response = await axios.get(fetchUrl); + const sanitizedData = response.data.benchmarkJobs.map((element: any, index: number) => ({ + ...element, + score: element.benchmarkResults.gpuScore, + startTime: formatDateTime(element.startTime), + endTime: formatDateTime(element.endTime), + id: element.jobId, + index: (crtPage - 1) * pageSize + index + 1, + })); + + setData(sanitizedData); + setTotalItems(response.data.pagination.totalItems); + } catch (error) { + setError(error); + } finally { + setLoading(false); + } + }, [crtPage, fetchUrl, pageSize]); + + useEffect(() => { + let mounted = true; + const controller = new AbortController(); + + const fetchAllData = async () => { + if (!mounted) return; + try { + await fetchData(); + } catch (error) { + console.error('Error fetching initial benchmark jobs history data:', error); + } + }; + + fetchAllData(); + + return () => { + mounted = false; + controller.abort(); + }; + }, [fetchData]); + + const handleSetFilterModel: CtxType['setFilterModel'] = (filter) => { + setFilterModel(filter); + setCrtPage(1); + }; + + const handleSetFilters: CtxType['setFilters'] = (newFilters: { [key: string]: any }) => { + setFilters(newFilters); + setCrtPage(1); + }; + + const handleSetPageSize: CtxType['setPageSize'] = (size) => { + setPageSize(size); + setData([]); + }; + + const handleSetSearchTerm: CtxType['setSearchTerm'] = (term) => { + setSearchTerm(term); + setCrtPage(1); + }; + + const handleSetSortModel: CtxType['setSortModel'] = (model) => { + setSortModel(model); + setCrtPage(1); + }; + + return ( + + {children} + + ); +}; + +export const useBenchmarkJobsHistoryTableContext = () => { + const context = useContext(BenchmarkJobsHistoryTableContext); + if (!context) { + throw new Error('useBenchmarkJobsHistoryTableContext must be used within a BenchmarkJobsHistoryTableProvider'); + } + return context; +}; diff --git a/src/context/table/leaderboard-table-context.tsx b/src/context/table/leaderboard-table-context.tsx new file mode 100644 index 00000000..f93f8533 --- /dev/null +++ b/src/context/table/leaderboard-table-context.tsx @@ -0,0 +1,204 @@ +import { TableContextType } from '@/components/table/context-type'; +import { getApiRoute } from '@/config'; +import { FilterOperator, NodeFilters } from '@/types/filters'; +import { BanStatusResponse, Node } from '@/types/nodes'; +import { GridFilterModel } from '@mui/x-data-grid'; +import axios from 'axios'; +import { ReactNode, createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react'; + +type CtxType = TableContextType; + +const LeaderboardTableContext = createContext(undefined); + +export const LeaderboardTableProvider = ({ children }: { children: ReactNode }) => { + const [crtPage, setCrtPage] = useState(1); + const [data, setData] = useState([]); + const [error, setError] = useState(null); + const [filterModel, setFilterModel] = useState({ items: [] }); + const [filters, setFilters] = useState({}); + const [loading, setLoading] = useState(false); + const [pageSize, setPageSize] = useState(100); + const [searchTerm, setSearchTerm] = useState(''); + const [sortModel, setSortModel] = useState>({}); + const [totalItems, setTotalItems] = useState(0); + + const buildFilterParams = (filters: NodeFilters): string => { + const filtersObject: Record = { + hidden: { operator: 'equals', value: false }, + }; + + if (!filters || Object.keys(filters).length === 0) + return `filters=${encodeURIComponent(JSON.stringify(filtersObject))}`; + + Object.entries(filters).forEach(([field, filterData]) => { + if (filterData?.value !== undefined && filterData?.operator) { + filtersObject[field] = { + operator: filterData.operator, + value: filterData.value, + }; + } + }); + + return `filters=${encodeURIComponent(JSON.stringify(filtersObject))}`; + }; + + const fetchUrl = useMemo(() => { + let url = `${getApiRoute('nodes')}?page=${crtPage}&size=${pageSize}&sort={"latestBenchmarkResults.gpuScore":"desc"}`; + const gridFilterToNodeFilters = (gridFilter: GridFilterModel): NodeFilters => { + const nodeFilters: NodeFilters = {}; + gridFilter.items.forEach((item) => { + if (item.field && item.value !== undefined && item.operator) { + nodeFilters[item.field as keyof NodeFilters] = { + value: item.value, + operator: item.operator as FilterOperator, + }; + } + }); + return nodeFilters; + }; + const filterString = buildFilterParams(gridFilterToNodeFilters(filterModel)); + if (filterString) { + url += `&${filterString}`; + } + if (searchTerm) { + url += `&search=${encodeURIComponent(searchTerm)}`; + } + return url; + }, [crtPage, pageSize, filterModel, searchTerm]); + + async function getNodeBanStatus(nodeId: string): Promise { + const res = await axios.get(`${getApiRoute('banStatus')}/${nodeId}/banStatus`, { + timeout: 1_500, + }); + + return { nodeId, ...res.data }; + } + + const fetchData = useCallback(async () => { + setLoading(true); + try { + const response = await axios.get(fetchUrl); + const sanitizedData = response.data.nodes.map((element: any, index: number) => ({ + ...element._source, + index: (crtPage - 1) * pageSize + index + 1, + })); + + /* TODO: The flow for banned could be improved by having the "banned" + * status saved directly on the node and returned in the response, so we + * don't have to perform multiple GET /banStatus requests at this point. + */ + const possiblyBannedNodes = sanitizedData.filter( + (item: Node) => + item.eligible === false && + item.eligibilityCauseStr !== 'No peer data' && + item.eligibilityCauseStr !== 'Invalid status response' + ); + const promises = []; + for (const node of possiblyBannedNodes) { + promises.push(getNodeBanStatus(node.id)); + } + const results = await Promise.all(promises); + results.forEach((result) => { + if (result.banned) { + const currentNodeIndex = sanitizedData.findIndex((item: Node) => item.id === result.nodeId); + sanitizedData[currentNodeIndex] = { + ...sanitizedData[currentNodeIndex], + eligibilityCauseStr: 'Banned', + banInfo: result.banInfo, + }; + } + }); + + setData(sanitizedData); + setTotalItems(response.data.pagination.totalItems); + } catch (error) { + setError(error); + } finally { + setLoading(false); + } + }, [crtPage, fetchUrl, pageSize]); + + useEffect(() => { + let mounted = true; + const controller = new AbortController(); + + const fetchAllData = async () => { + if (!mounted) return; + try { + await fetchData(); + } catch (error) { + console.error('Error fetching initial leaderboard data:', error); + } finally { + if (mounted) { + // setOverallDashboardLoading(false); + } + } + }; + + fetchAllData(); + + return () => { + mounted = false; + controller.abort(); + }; + }, [fetchData]); + + const handleSetFilterModel: CtxType['setFilterModel'] = (filter) => { + setFilterModel(filter); + setCrtPage(1); + }; + + const handleSetFilters: CtxType['setFilters'] = (newFilters: { [key: string]: any }) => { + setFilters(newFilters); + setCrtPage(1); + }; + + const handleSetPageSize: CtxType['setPageSize'] = (size) => { + setPageSize(size); + setData([]); + }; + + const handleSetSearchTerm: CtxType['setSearchTerm'] = (term) => { + setSearchTerm(term); + setCrtPage(1); + }; + + const handleSetSortModel: CtxType['setSortModel'] = (model) => { + setSortModel(model); + setCrtPage(1); + }; + + return ( + + {children} + + ); +}; + +export const useLeaderboardTableContext = () => { + const context = useContext(LeaderboardTableContext); + if (!context) { + throw new Error('useLeaderboardTableContext must be used within a LeaderboardTableProvider'); + } + return context; +}; diff --git a/src/context/table/my-jobs-table-context.tsx b/src/context/table/my-jobs-table-context.tsx new file mode 100644 index 00000000..3c7e913d --- /dev/null +++ b/src/context/table/my-jobs-table-context.tsx @@ -0,0 +1,174 @@ +import { TableContextType } from '@/components/table/context-type'; +import { getApiRoute } from '@/config'; +import { FilterOperator, JobsFilters } from '@/types/filters'; +import { ComputeJob } from '@/types/jobs'; +import { formatDateTime } from '@/utils/formatters'; +import { GridFilterModel } from '@mui/x-data-grid'; +import axios from 'axios'; +import { createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useState } from 'react'; + +type CtxType = TableContextType; + +const MyJobsTableContext = createContext(undefined); + +export const MyJobsTableProvider = ({ children, consumer }: { children: ReactNode; consumer: string | undefined }) => { + const [crtPage, setCrtPage] = useState(1); + const [data, setData] = useState([]); + const [error, setError] = useState(null); + const [filterModel, setFilterModel] = useState({ items: [] }); + const [filters, setFilters] = useState({}); + const [loading, setLoading] = useState(false); + const [pageSize, setPageSize] = useState(100); + const [searchTerm, setSearchTerm] = useState(''); + const [sortModel, setSortModel] = useState>({}); + const [totalItems, setTotalItems] = useState(0); + + const buildFilterParams = (filters: JobsFilters): string => { + const filtersObject: Record = {}; + + if (!filters || Object.keys(filters).length === 0) + return `filters=${encodeURIComponent(JSON.stringify(filtersObject))}`; + + Object.entries(filters).forEach(([field, filterData]) => { + if (filterData?.value !== undefined && filterData?.operator) { + filtersObject[field] = { + operator: filterData.operator, + value: filterData.value, + }; + } + }); + + return `filters=${encodeURIComponent(JSON.stringify(filtersObject))}`; + }; + + const fetchUrl = useMemo(() => { + let url = `${getApiRoute('owners')}/${consumer}/computeJobs?page=${crtPage}&size=${pageSize}&sort={"createdAt":"desc"}`; + const gridFilterToJobsFilters = (gridFilter: GridFilterModel): JobsFilters => { + const jobsFilters: JobsFilters = {}; + gridFilter.items.forEach((item) => { + if (item.field && item.value !== undefined && item.operator) { + jobsFilters[item.field as keyof JobsFilters] = { + value: item.value, + operator: item.operator as FilterOperator, + }; + } + }); + return jobsFilters; + }; + const filterString = buildFilterParams(gridFilterToJobsFilters(filterModel)); + if (filterString) { + url += `&${filterString}`; + } + if (searchTerm) { + url += `&search=${encodeURIComponent(searchTerm)}`; + } + return url; + }, [consumer, crtPage, filterModel, pageSize, searchTerm]); + + const fetchData = useCallback(async () => { + if (!consumer) { + return; + } + setLoading(true); + try { + const response = await axios.get(fetchUrl); + const sanitizedData = response.data.computeJobs.map((element: any, index: number) => ({ + ...element, + id: element.jobId, + startTime: formatDateTime(element.dateCreated), + index: (crtPage - 1) * pageSize + index + 1, + })); + + setData(sanitizedData); + setTotalItems(response.data.pagination.totalItems); + } catch (error) { + setError(error); + } finally { + setLoading(false); + } + }, [fetchUrl, crtPage, pageSize, consumer]); + + useEffect(() => { + let mounted = true; + const controller = new AbortController(); + + const fetchAllData = async () => { + if (!mounted) return; + try { + await fetchData(); + } catch (error) { + console.error('Error fetching initial leaderboard data:', error); + } finally { + if (mounted) { + // (false); + } + } + }; + + fetchAllData(); + + return () => { + mounted = false; + controller.abort(); + }; + }, [fetchData]); + + const handleSetFilterModel: CtxType['setFilterModel'] = (filter) => { + setFilterModel(filter); + setCrtPage(1); + }; + + const handleSetFilters: CtxType['setFilters'] = (newFilters: { [key: string]: any }) => { + setFilters(newFilters); + setCrtPage(1); + }; + + const handleSetPageSize: CtxType['setPageSize'] = (size) => { + setPageSize(size); + setData([]); + }; + + const handleSetSearchTerm: CtxType['setSearchTerm'] = (term) => { + setSearchTerm(term); + setCrtPage(1); + }; + + const handleSetSortModel: CtxType['setSortModel'] = (model) => { + setSortModel(model); + setCrtPage(1); + }; + + return ( + + {children} + + ); +}; + +export const useMyJobsTableContext = () => { + const context = useContext(MyJobsTableContext); + if (!context) { + throw new Error('useMyJobsTableContext must be used within a MyJobsTableProvider'); + } + return context; +}; diff --git a/src/context/table/my-nodes-table-context.tsx b/src/context/table/my-nodes-table-context.tsx new file mode 100644 index 00000000..7f90f20e --- /dev/null +++ b/src/context/table/my-nodes-table-context.tsx @@ -0,0 +1,182 @@ +import { TableContextType } from '@/components/table/context-type'; +import { getApiRoute } from '@/config'; +import { Node } from '@/types'; +import { FilterOperator, MyNodesFilters } from '@/types/filters'; +import { GridFilterModel } from '@mui/x-data-grid'; +import axios from 'axios'; +import { createContext, ReactNode, useCallback, useContext, useEffect, useMemo, useState } from 'react'; + +type CtxType = TableContextType; + +const MyNodesTableContext = createContext(undefined); + +export const MyNodesTableContextProvider = ({ + children, + ownerId, +}: { + children: ReactNode; + ownerId: string | undefined; +}) => { + const [crtPage, setCrtPage] = useState(1); + const [data, setData] = useState([]); + const [error, setError] = useState(null); + const [filterModel, setFilterModel] = useState({ items: [] }); + const [filters, setFilters] = useState({}); + const [loading, setLoading] = useState(false); + const [pageSize, setPageSize] = useState(100); + const [searchTerm, setSearchTerm] = useState(''); + const [sortModel, setSortModel] = useState>({}); + const [totalItems, setTotalItems] = useState(0); + + const buildFilterParams = (filters: MyNodesFilters): string => { + if (!filters || Object.keys(filters).length === 0) return ''; + + const filtersObject: Record = {}; + + Object.entries(filters).forEach(([field, filterData]) => { + if (filterData?.value !== undefined && filterData?.operator) { + filtersObject[field] = { + operator: filterData.operator, + value: filterData.value, + }; + } + }); + + return `filters=${encodeURIComponent(JSON.stringify(filtersObject))}`; + }; + + const fetchUrl = useMemo(() => { + if (!ownerId) { + return ''; + } + let url = `${getApiRoute('admin')}/${ownerId}/myNodes?page=${crtPage}&size=${pageSize}&sort={"totalScore":"desc"}`; + + const operatorMap: Record = { + '>': 'gt', + '<': 'lt', + '=': 'eq', + }; + + const gridFilterToBenchmarkFilters = (gridFilter: GridFilterModel): MyNodesFilters => { + const myNodesFilters: MyNodesFilters = {}; + gridFilter.items.forEach((item) => { + if (item.field && item.value !== undefined && item.operator) { + myNodesFilters[item.field as keyof MyNodesFilters] = { + value: item.value, + operator: operatorMap[item.operator] || (item.operator as FilterOperator), + }; + } + }); + return myNodesFilters; + }; + + const filterString = buildFilterParams(gridFilterToBenchmarkFilters(filterModel)); + if (filterString) { + url += `&${filterString}`; + } + if (searchTerm) { + url += `&search=${encodeURIComponent(searchTerm)}`; + } + return url; + }, [ownerId, crtPage, pageSize, filterModel, searchTerm]); + + const fetchData = useCallback(async () => { + if (!ownerId) { + return; + } + setLoading(true); + try { + const response = await axios.get(fetchUrl); + const sanitizedData = response.data.nodes.map((element: any, index: number) => ({ + ...element, + index: (crtPage - 1) * pageSize + index + 1, + })); + setData(sanitizedData); + setTotalItems(response.data.pagination.totalItems); + } catch (error) { + setError(error); + } finally { + setLoading(false); + } + }, [crtPage, pageSize, fetchUrl, ownerId]); + + useEffect(() => { + let mounted = true; + const controller = new AbortController(); + + const fetchAllData = async () => { + if (!mounted) return; + try { + await fetchData(); + } catch (error) { + console.error('Error fetching initial my nodes data:', error); + } + }; + + fetchAllData(); + + return () => { + mounted = false; + controller.abort(); + }; + }, [fetchData]); + + const handleSetFilterModel: CtxType['setFilterModel'] = (filter) => { + setFilterModel(filter); + setCrtPage(1); + }; + + const handleSetFilters: CtxType['setFilters'] = (newFilters: { [key: string]: any }) => { + setFilters(newFilters); + setCrtPage(1); + }; + + const handleSetPageSize: CtxType['setPageSize'] = (size) => { + setPageSize(size); + setData([]); + }; + + const handleSetSearchTerm: CtxType['setSearchTerm'] = (term) => { + setSearchTerm(term); + setCrtPage(1); + }; + + const handleSetSortModel: CtxType['setSortModel'] = (model) => { + setSortModel(model); + setCrtPage(1); + }; + + return ( + + {children} + + ); +}; + +export const useMyNodesTableContext = () => { + const context = useContext(MyNodesTableContext); + if (!context) { + throw new Error('useMyNodesTableContext must be used within a MyNodesTableContextProvider'); + } + return context; +}; diff --git a/src/context/unban-requests-context.tsx b/src/context/unban-requests-context.tsx new file mode 100644 index 00000000..653483dc --- /dev/null +++ b/src/context/unban-requests-context.tsx @@ -0,0 +1,66 @@ +import { getApiRoute } from '@/config'; +import { UnbanRequest, UnbanRequestsResponse } from '@/types/unban-requests'; +import axios from 'axios'; +import { createContext, ReactNode, useCallback, useContext, useState } from 'react'; + +type UnbanRequestsContextType = { + unbanRequests: UnbanRequest[]; + + fetchUnbanRequests: (nodeId: string) => Promise; + requestNodeUnban: (nodeId: string, signature: string, expiryTimestamp: number, address: string) => Promise; +}; + +const UnbanRequestsContext = createContext(undefined); + +export const UnbanRequestsProvider = ({ children }: { children: ReactNode }) => { + const [unbanRequests, setUnbanRequests] = useState([]); + + const fetchUnbanRequests = useCallback(async (nodeId: string) => { + try { + const response = await axios.get( + `${getApiRoute('nodeUnbanRequests')}/${nodeId}/unbanRequests?page=1&size=5` + ); + + if (response.data?.requests?.length !== 0) { + setUnbanRequests(response.data.requests.map((item, i) => ({ ...item, index: i + 1 }))); + } + } catch (error) { + console.error('Error fetching node unban requests: ', error); + } + }, []); + + const requestNodeUnban = useCallback( + async (nodeId: string, signature: string, expiryTimestamp: number, address: string) => { + try { + await axios.post(`${getApiRoute('nodeUnbanRequests')}/${nodeId}/unban`, { + signature, + expiryTimestamp, + address, + }); + } catch (error) { + console.error('Error requesting node unban: ', error); + } + }, + [] + ); + + return ( + + {children} + + ); +}; + +export const useUnbanRequestsContext = () => { + const context = useContext(UnbanRequestsContext); + if (!context) { + throw new Error('useUnbanRequestsContext must be used within a UnbanRequestsProvider'); + } + return context; +}; diff --git a/src/contexts/P2PContext.tsx b/src/contexts/P2PContext.tsx new file mode 100644 index 00000000..4b8e98ed --- /dev/null +++ b/src/contexts/P2PContext.tsx @@ -0,0 +1,185 @@ +import { + fetchNodeConfig, + getComputeJobResult, + getNodeEnvs, + getNodeReadyState, + initializeNode, + pushNodeConfig, + sendCommandToPeer, +} from '@/services/nodeService'; +import { OCEAN_BOOTSTRAP_NODES } from '@/shared/consts/bootstrapNodes'; +import { ComputeEnvironment } from '@/types/environments'; +import { Libp2p } from 'libp2p'; +import React, { createContext, useCallback, useContext, useEffect, useState } from 'react'; + +interface P2PContextType { + computeLogs: any; + computeResult: Record | Uint8Array | undefined; + config: Record; + envs: ComputeEnvironment[]; + error: string | null; + fetchConfig: ( + peerId: string, + signature: string, + expiryTimestamp: number, + address: string + ) => Promise>; + getComputeResult: ( + peerId: string, + jobId: string, + index: number, + authToken: string, + address: string + ) => Promise | Uint8Array>; + getEnvs: (peerId: string) => Promise; + isReady: boolean; + node: Libp2p | null; + pushConfig: ( + peerId: string, + signature: string, + expiryTimestamp: number, + config: Record, + address: string + ) => Promise; + sendCommand: (peerId: string, command: any, protocol?: string) => Promise; +} + +const P2PContext = createContext(undefined); + +export function P2PProvider({ children }: { children: React.ReactNode }) { + const [config, setConfig] = useState>({}); + const [envs, setEnvs] = useState([]); + const [node, setNode] = useState(null); + const [error, setError] = useState(null); + const [isReady, setIsReady] = useState(false); + const [computeLogs, setComputeLogs] = useState(undefined); + const [computeResult, setComputeResult] = useState | Uint8Array | undefined>(undefined); + + useEffect(() => { + let mounted = true; + + async function init() { + try { + console.log('P2PContext: Initializing libp2p node in background...'); + + const nodeInstance = await initializeNode(OCEAN_BOOTSTRAP_NODES); + + if (mounted) { + setNode(nodeInstance); + const ready = getNodeReadyState(); + setIsReady(ready); + + if (ready) { + console.log('P2PContext: Node ready with bootstrap connections'); + } else { + console.warn('P2PContext: Node started but may have limited connectivity'); + } + } + } catch (err: any) { + console.error('P2PContext: Failed to initialize node:', err); + if (mounted) { + setError(err.message); + } + } + } + + init(); + + return () => { + mounted = false; + }; + }, []); + + const sendCommand = useCallback( + async (peerId: string, command: any, protocol?: string) => { + if (!isReady || !node) { + throw new Error('Node not ready'); + } + return sendCommandToPeer(peerId, command, protocol); + }, + [isReady, node] + ); + + const getEnvs = useCallback( + async (peerId: string) => { + if (!isReady || !node) { + throw new Error('Node not ready'); + } + const result = await getNodeEnvs(peerId); + setEnvs(result as ComputeEnvironment[]); + }, + [isReady, node] + ); + + const getComputeResult = useCallback( + async (peerId: string, jobId: string, index: number, authToken: string, address: string) => { + if (!isReady || !node) { + throw new Error('Node not ready'); + } + + const result = await getComputeJobResult(peerId, jobId, index, authToken, address); + + setComputeResult(result); + return result; + }, + [isReady, node] + ); + + const fetchConfig = useCallback( + async (peerId: string, signature: string, expiryTimestamp: number, address: string) => { + if (!isReady || !node) { + throw new Error('Node not ready'); + } + const result = await fetchNodeConfig(peerId, signature, expiryTimestamp, address); + setConfig(result); + return result; + }, + [isReady, node] + ); + + const pushConfig = useCallback( + async ( + peerId: string, + signature: string, + expiryTimestamp: number, + config: Record, + address: string + ) => { + if (!isReady || !node) { + throw new Error('Node not ready'); + } + await pushNodeConfig(peerId, signature, expiryTimestamp, config, address); + setConfig(config); + }, + [isReady, node] + ); + + return ( + + {children} + + ); +} + +export function useP2P() { + const context = useContext(P2PContext); + if (!context) { + throw new Error('useP2P must be used within P2PProvider'); + } + return context; +} diff --git a/src/hooks/useVideoScroll.ts b/src/hooks/useVideoScroll.ts new file mode 100644 index 00000000..aebb7897 --- /dev/null +++ b/src/hooks/useVideoScroll.ts @@ -0,0 +1,280 @@ +'use client'; +import gsap from 'gsap'; +import { useCallback, useEffect, useRef, useState } from 'react'; + +type UseVideoScrollOptions = { + numSteps: number; + debug?: boolean; +}; + +type ScrollTriggerInstance = { + start: number; + end: number; + progress: number; + refresh: () => void; + update: () => void; + scroll: (y: number) => void; + kill: () => void; +}; + +const SEEK_FALLBACK_DELAY_MS = 300; +const MIN_VIDEO_READY_STATE = 1; +const PROGRESS_CLAMP_MAX = 0.9999; +const TIME_EPSILON = 0.001; +const SNAP_DURATION = 0.35; +const SCRUB_DURATION = 0.5; +const ANTICIPATE_PIN = 0.5; +const MOBILE_BREAKPOINT = 768; + +const isMobileViewport = () => { + if (typeof window === 'undefined') { + return false; + } + return window.innerWidth <= MOBILE_BREAKPOINT; +}; + +const clampTime = (time: number, duration: number): number => { + return Math.max(0, Math.min(time, duration - TIME_EPSILON)); +}; + +const calculateEndDistance = (numSteps: number) => window.innerHeight * (numSteps - 1); + +const calculateSnapValue = (progress: number, numSteps: number) => { + return Math.round(progress * (numSteps - 1)) / (numSteps - 1); +}; + +export function useVideoScroll({ numSteps, debug }: UseVideoScrollOptions) { + const [activeIndex, setActiveIndex] = useState(0); + const sectionRef = useRef(null); + const videoRef = useRef(null); + const scrollTriggerRef = useRef(null); + const videoDurationRef = useRef(0); + const isSeekingRef = useRef(false); + const pendingSeekTimeRef = useRef(null); + const hasInitializedVideoRef = useRef(false); + const seekFallbackTimerRef = useRef(null); + const isMobileRef = useRef(false); + + const refreshScrollTrigger = useCallback(() => { + const scrollTrigger = scrollTriggerRef.current; + if (scrollTrigger) { + scrollTrigger.refresh(); + scrollTrigger.update(); + } + }, []); + + const seekToTime = useCallback((targetTime: number) => { + const video = videoRef.current; + const duration = videoDurationRef.current; + if (!video || duration === 0 || Number.isNaN(targetTime)) { + return; + } + const clampedTime = clampTime(targetTime, duration); + if (!isSeekingRef.current) { + isSeekingRef.current = true; + try { + video.currentTime = clampedTime; + if (seekFallbackTimerRef.current) { + window.clearTimeout(seekFallbackTimerRef.current); + seekFallbackTimerRef.current = null; + } + seekFallbackTimerRef.current = window.setTimeout(() => { + if (isSeekingRef.current) { + isSeekingRef.current = false; + } + }, SEEK_FALLBACK_DELAY_MS); + } catch { + isSeekingRef.current = false; + } + } else { + pendingSeekTimeRef.current = clampedTime; + } + }, []); + + useEffect(() => { + if (typeof window === 'undefined') { + return; + } + + isMobileRef.current = isMobileViewport(); + + if (isMobileRef.current) { + return; + } + + let scrollTriggerInstance: ScrollTriggerInstance | null = null; + (async () => { + const { ScrollTrigger } = await import('gsap/ScrollTrigger'); + gsap.registerPlugin(ScrollTrigger); + + const sectionElement = sectionRef.current; + if (!sectionElement) { + return; + } + + scrollTriggerInstance = ScrollTrigger.create({ + trigger: sectionElement, + start: 'top top', + end: () => '+=' + calculateEndDistance(numSteps), + pin: true, + pinSpacing: true, + pinReparent: true, + anticipatePin: ANTICIPATE_PIN, + scrub: SCRUB_DURATION, + invalidateOnRefresh: true, + snap: { + snapTo: (progress: number) => calculateSnapValue(progress, numSteps), + duration: SNAP_DURATION, + ease: 'power2.inOut', + }, + markers: debug, + onUpdate: (scrollTrigger: ScrollTriggerInstance) => { + const videoDuration = videoDurationRef.current; + if (videoDuration > 0) { + const clampedProgress = Math.min(PROGRESS_CLAMP_MAX, Math.max(0, scrollTrigger.progress)); + seekToTime(clampedProgress * videoDuration); + } + const calculatedStepIndex = Math.round(scrollTrigger.progress * (numSteps - 1)); + setActiveIndex(calculatedStepIndex); + }, + }) as ScrollTriggerInstance; + scrollTriggerRef.current = scrollTriggerInstance; + requestAnimationFrame(() => { + scrollTriggerInstance?.refresh(); + }); + })(); + + const handleResize = () => { + const isMobile = isMobileViewport(); + if (isMobile !== isMobileRef.current) { + isMobileRef.current = isMobile; + if (scrollTriggerInstance) { + scrollTriggerInstance.kill(); + scrollTriggerRef.current = null; + } + window.location.reload(); + } else { + scrollTriggerRef.current?.refresh(); + } + }; + const handleWindowLoad = () => { + scrollTriggerRef.current?.refresh(); + scrollTriggerRef.current?.update(); + }; + window.addEventListener('resize', handleResize); + window.addEventListener('load', handleWindowLoad); + return () => { + window.removeEventListener('resize', handleResize); + window.removeEventListener('load', handleWindowLoad); + scrollTriggerInstance?.kill(); + }; + }, [numSteps, seekToTime, debug]); + + useEffect(() => { + if (typeof window === 'undefined') { + return; + } + + const video = videoRef.current; + if (!video) { + return; + } + + const isMobile = isMobileViewport(); + isMobileRef.current = isMobile; + + if (isMobile) { + video.muted = true; + video.loop = true; + video.playsInline = true; + const handleCanPlayMobile = () => { + video.play().catch(() => {}); + }; + video.addEventListener('canplay', handleCanPlayMobile); + if (video.readyState >= MIN_VIDEO_READY_STATE) { + video.play().catch(() => {}); + } + return () => { + video.removeEventListener('canplay', handleCanPlayMobile); + }; + } + + const handleSeekComplete = () => { + if (pendingSeekTimeRef.current !== null) { + const nextPendingTime = pendingSeekTimeRef.current; + pendingSeekTimeRef.current = null; + video.currentTime = nextPendingTime; + } else { + isSeekingRef.current = false; + } + }; + + const initializeVideoDecoder = () => { + if (hasInitializedVideoRef.current) { + return; + } + + hasInitializedVideoRef.current = true; + videoDurationRef.current = video.duration || 0; + video.muted = true; + video + .play() + .then(() => { + video.pause(); + video.currentTime = 0; + refreshScrollTrigger(); + }) + .catch(() => { + video.currentTime = 0; + refreshScrollTrigger(); + }); + }; + + const handleVideoReady = () => initializeVideoDecoder(); + + video.addEventListener('loadedmetadata', handleVideoReady); + video.addEventListener('loadeddata', handleVideoReady); + video.addEventListener('canplay', handleVideoReady); + video.addEventListener('seeked', handleSeekComplete); + + if (video.readyState >= MIN_VIDEO_READY_STATE && video.duration > 0) { + initializeVideoDecoder(); + } + + return () => { + if (seekFallbackTimerRef.current) { + window.clearTimeout(seekFallbackTimerRef.current); + seekFallbackTimerRef.current = null; + } + video.removeEventListener('loadedmetadata', handleVideoReady); + video.removeEventListener('loadeddata', handleVideoReady); + video.removeEventListener('canplay', handleVideoReady); + video.removeEventListener('seeked', handleSeekComplete); + }; + }, [refreshScrollTrigger]); + + const calculateScrollYForStep = useCallback( + (stepIndex: number) => { + const scrollTrigger = scrollTriggerRef.current; + if (!scrollTrigger) { + return window.scrollY; + } + + const startPosition = scrollTrigger.start; + const endPosition = scrollTrigger.end; + if (typeof startPosition !== 'number' || typeof endPosition !== 'number') { + return window.scrollY; + } + + const stepProgress = stepIndex / (numSteps - 1); + return startPosition + (endPosition - startPosition) * stepProgress; + }, + [numSteps] + ); + + return { + sectionRef, + videoRef, + activeIndex, + }; +} diff --git a/src/lib/alchemy-provider.tsx b/src/lib/alchemy-provider.tsx new file mode 100644 index 00000000..a74ccfea --- /dev/null +++ b/src/lib/alchemy-provider.tsx @@ -0,0 +1,10 @@ +import { config, queryClient } from '@/lib/config'; +import { AlchemyAccountProvider } from '@account-kit/react'; + +export function AlchemyProvider({ children }: { children: React.ReactNode }) { + return ( + + {children} + + ); +} diff --git a/src/lib/config.ts b/src/lib/config.ts new file mode 100644 index 00000000..d6270a06 --- /dev/null +++ b/src/lib/config.ts @@ -0,0 +1,31 @@ +import { alchemy, sepolia } from '@account-kit/infra'; +import { cookieStorage, createConfig } from '@account-kit/react'; +import { QueryClient } from '@tanstack/react-query'; + +export const config = createConfig( + { + transport: alchemy({ + apiKey: process.env.NEXT_PUBLIC_ALCHEMY_API_KEY!, + }), + chain: sepolia, + ssr: true, + storage: cookieStorage, + enablePopupOauth: true, + policyId: process.env.NEXT_PUBLIC_ALCHEMY_POLICY_ID, + sessionConfig: { + expirationTimeMs: 86400000, // 1 day + }, + }, + { + illustrationStyle: 'outline', + auth: { + sections: [ + [{ type: 'email' }], + [{ type: 'passkey' }, { type: 'social', authProviderId: 'google', mode: 'popup' }], + ], + addPasskeyOnSignup: true, + }, + } +); + +export const queryClient = new QueryClient(); diff --git a/src/lib/constants.ts b/src/lib/constants.ts new file mode 100644 index 00000000..52489b82 --- /dev/null +++ b/src/lib/constants.ts @@ -0,0 +1,5 @@ +export const NODE_URL = 'https://compute1.oceanprotocol.com'; +// TESTING PEER ID +// export const PEER_ID = "16Uiu2HAkwo74CJTUMHb8j7kv74GsuDB1hwLrCgDDM9pLsbx8BYA9" +export const PEER_ID = '16Uiu2HAmR9z4EhF9zoZcErrdcEJKCjfTpXJfBcmbNppbT3QYtBpi'; +export const RPC_URL = 'https://sepolia.drpc.org'; diff --git a/src/lib/direct-node-command.ts b/src/lib/direct-node-command.ts new file mode 100644 index 00000000..1b2c97cf --- /dev/null +++ b/src/lib/direct-node-command.ts @@ -0,0 +1,26 @@ +import { NODE_URL } from '@/lib/constants'; + +export async function directNodeCommand(command: string, peerId: string, body: any): Promise { + try { + const response = await fetch(`${NODE_URL}/directCommand`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + command, + node: peerId, + ...body, + }), + }); + + if (!response.ok && response.status >= 500) { + throw new Error(`Gateway node error: ${response.status}`); + } + + return response; + } catch (error) { + console.error('Gateway node failed, falling back to direct fetch:', error); + throw new Error(`Gateway node error: ${error}`); + } +} diff --git a/src/lib/ocean-provider.ts b/src/lib/ocean-provider.ts new file mode 100644 index 00000000..fa1cb7e7 --- /dev/null +++ b/src/lib/ocean-provider.ts @@ -0,0 +1,218 @@ +import { directNodeCommand } from '@/lib/direct-node-command'; +import { getTokenSymbol } from '@/lib/token-symbol'; +import Address from '@oceanprotocol/contracts/addresses/address.json'; +import Escrow from '@oceanprotocol/contracts/artifacts/contracts/escrow/Escrow.sol/Escrow.json'; +import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'; +import { ComputeEnvFees, ComputeEnvironment, ComputeResourceRequest } from '@oceanprotocol/lib'; +import BigNumber from 'bignumber.js'; +import { ethers } from 'ethers'; + +export class OceanProvider { + private chainId: number; + private provider: ethers.JsonRpcProvider; + + constructor(chainId: number, provider: ethers.JsonRpcProvider) { + this.chainId = chainId; + this.provider = provider; + } + + private async getConfigByChainId(chainId: number): Promise { + const config = Object.values(Address).find((chainConfig) => chainConfig.chainId === chainId); + if (!config) { + throw new Error('No config found for chainId'); + } + return config; + } + + denominateNumber(number: string, decimals: number) { + const decimalsNumber = Number(decimals); + return new BigNumber(number).div(new BigNumber(10).pow(decimalsNumber)).decimalPlaces(decimalsNumber).toString(); + } + + static denominateNumber(number: string, decimals: number) { + const decimalsNumber = Number(decimals); + return new BigNumber(number).div(new BigNumber(10).pow(decimalsNumber)).decimalPlaces(decimalsNumber).toString(); + } + + private normalizeNumber(number: string, decimals: number) { + return new BigNumber(number).multipliedBy(new BigNumber(10).pow(decimals)).toFixed(0); + } + + private async getEscrowContract(chainId: number) { + const config = await this.getConfigByChainId(chainId); + if (!config.Escrow) { + throw new Error('No escrow found for chainId'); + } + + const escrow = new ethers.Contract(config.Escrow, Escrow.abi, this.provider); + return escrow; + } + + async getEnvironmentsByNode(peerId: string): Promise { + try { + const response = await directNodeCommand('getComputeEnvironments', peerId, {}); + const data = await response.json(); + return data; + } catch { + return []; + } + } + + async getNodeBalance(peerId: string) { + const result = []; + try { + const environments = await this.getEnvironmentsByNode(peerId); + const balancesMap = new Map(); + const addressMap = new Map(); + for (const env of environments) { + const fees = await this.getFeesByChainId(this.chainId, env); + for (const fee of fees) { + const balance = await this.getBalance(fee.feeToken, env.consumerAddress); + const symbol = await getTokenSymbol(fee.feeToken); + if (symbol) { + if (!addressMap.has(symbol)) { + addressMap.set(symbol, fee.feeToken); + } + if (balancesMap.has(symbol)) { + const balances = balancesMap.get(symbol) || []; + balances.push(balance); + balancesMap.set(symbol, balances); + continue; + } + balancesMap.set(symbol, [balance]); + } + } + } + + for (const [key, value] of balancesMap) { + const sum = value.map((val) => new BigNumber(val)).reduce((acc, val) => acc.plus(val), new BigNumber(0)); + result.push({ token: key, address: addressMap.get(key) || '', amount: sum.toNumber() }); + } + } catch (error) { + console.log(error); + } + return result; + } + + async getFeesByChainId(chainId: number, environment: ComputeEnvironment): Promise { + if (!environment?.fees) { + return []; + } + const config = Object.keys(environment.fees).find((chainConfig) => Number(chainConfig) === chainId); + if (!config) { + return []; + } + return environment.fees[config] as unknown as ComputeEnvFees[]; + } + + async getBalance(tokenAddress: string, address: string): Promise { + const token = new ethers.Contract(tokenAddress, ERC20Template.abi, this.provider); + const balance = await token.balanceOf(address); + const decimals = await token.decimals(); + const balanceString = this.denominateNumber(balance.toString(), decimals); + return balanceString; + } + + async getAuthorizations(tokenAddress: string, payer: string, payee: string) { + const escrow = await this.getEscrowContract(this.chainId); + const tokenDecimals = await new ethers.Contract(tokenAddress, ERC20Template.abi, this.provider).decimals(); + const authorizations = await escrow.getAuthorizations(tokenAddress, payer, payee); + if (!authorizations || authorizations.length === 0) { + return null; + } + const splitValues = authorizations.toString().split(','); + return { + payee: splitValues[0], + maxLockedAmount: this.denominateNumber(splitValues[1], tokenDecimals), + currentLockedAmount: this.denominateNumber(splitValues[2], tokenDecimals), + maxLockSeconds: splitValues[3], + maxLockCounts: splitValues[4], + currentLocks: splitValues[5], + }; + } + + async getUserFunds(tokenAddress: string, address: string): Promise { + const escrow = await this.getEscrowContract(this.chainId); + const funds = await escrow.getUserFunds(address, tokenAddress); + const availableFunds = funds.available; + const tokenDecimals = await new ethers.Contract(tokenAddress, ERC20Template.abi, this.provider).decimals(); + const balanceString = this.denominateNumber(availableFunds.toString(), tokenDecimals); + return parseFloat(balanceString); + } + + async getNonce(address: string, peerId: string): Promise { + const response = await directNodeCommand('nonce', peerId, { address }); + const data = await response.json(); + return Number(data); + } + + async generateAuthToken(address: string, nonce: number, signature: string, peerId: string) { + const response = await directNodeCommand('createAuthToken', peerId, { + address, + signature, + nonce: nonce.toString(), + }); + const data = await response.json(); + const token = data.token; + + return token; + } + + async initializeCompute( + environment: ComputeEnvironment, + tokenAddress: string, + validUntil: number, + peerId: string, + address: string, + resources: ComputeResourceRequest[] + ): Promise { + const response = await directNodeCommand('initializeCompute', peerId, { + datasets: [], + algorithm: { meta: { rawcode: 'rawcode' } }, + environment: environment.id, + payment: { + chainId: this.chainId, + token: tokenAddress, + resources, + }, + maxJobDuration: validUntil, + consumerAddress: address, + signature: '', + }); + + const data = await response.json(); + const cost = data.payment.amount; + const tokenDecimals = await new ethers.Contract(tokenAddress, ERC20Template.abi, this.provider).decimals(); + const denominatedCost = this.denominateNumber(cost, tokenDecimals); + + return denominatedCost; + } + + async updateConfiguration( + authToken: string, + address: string, + peerId: string, + isFreeCompute: boolean, + environmentId: string, + feeToken: string, + jobDuration: number, + resources: ComputeResourceRequest[], + ide: string + ) { + const extensionUrl = `${ide}://oceanprotocol.ocean-protocol-vscode-extension/updateConfiguration`; + const url = new URL(extensionUrl); + url.searchParams.set('authToken', authToken); + url.searchParams.set('peerId', peerId); + url.searchParams.set('isFreeCompute', isFreeCompute.toString()); + url.searchParams.set('environmentId', environmentId); + url.searchParams.set('feeToken', feeToken); + url.searchParams.set('jobDuration', jobDuration.toString()); + url.searchParams.set('resources', JSON.stringify(resources)); + url.searchParams.set('address', address); + url.searchParams.set('chainId', this.chainId.toString()); + + if (typeof window !== 'undefined') { + window.open(url.toString(), '_self'); + } + } +} diff --git a/src/lib/sign-message.ts b/src/lib/sign-message.ts new file mode 100644 index 00000000..c65938b7 --- /dev/null +++ b/src/lib/sign-message.ts @@ -0,0 +1,7 @@ +import { getBytes, keccak256, Signer, toUtf8Bytes } from 'ethers'; + +export async function signMessage(message: string, signer: Signer): Promise { + const consumerMessage = keccak256(toUtf8Bytes(message)); + const messageHashBytes = getBytes(consumerMessage); + return await signer.signMessage(messageHashBytes); +} diff --git a/src/lib/token-symbol.ts b/src/lib/token-symbol.ts new file mode 100644 index 00000000..a84dd4a3 --- /dev/null +++ b/src/lib/token-symbol.ts @@ -0,0 +1,36 @@ +import { RPC_URL } from '@/lib/constants'; +import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'; +import { ethers } from 'ethers'; +import { useEffect, useState } from 'react'; + +/** + * Fetches the symbol of a token from its address. + * @param tokenAddress The address of the token. + * @returns The symbol of the token or null if the token address is invalid. + */ +export const getTokenSymbol = async (tokenAddress: string | null | undefined): Promise => { + if (!tokenAddress) { + return null; + } + const provider = new ethers.JsonRpcProvider(RPC_URL, undefined, { batchMaxCount: 3 }); + const token = new ethers.Contract(tokenAddress, ERC20Template.abi, provider); + const symbol = await token.symbol(); + return symbol; +}; + +/** + * Custom hook that fetches the symbol of a token from its address. + * @param tokenAddress The address of the token. + * @returns The symbol of the token or null if the token address is invalid. + */ +const useTokenSymbol = (tokenAddress: string | null | undefined) => { + const [symbol, setSymbol] = useState(null); + + useEffect(() => { + getTokenSymbol(tokenAddress).then((symbol) => setSymbol(symbol)); + }, [tokenAddress]); + + return symbol; +}; + +export default useTokenSymbol; diff --git a/src/lib/use-authorize-tokens.ts b/src/lib/use-authorize-tokens.ts new file mode 100644 index 00000000..5f43c45d --- /dev/null +++ b/src/lib/use-authorize-tokens.ts @@ -0,0 +1,135 @@ +import { CHAIN_ID } from '@/constants/chains'; +import { RPC_URL } from '@/lib/constants'; +import { useSendUserOperation, useSmartAccountClient } from '@account-kit/react'; +import Address from '@oceanprotocol/contracts/addresses/address.json'; +import Escrow from '@oceanprotocol/contracts/artifacts/contracts/escrow/Escrow.sol/Escrow.json'; +import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'; +import BigNumber from 'bignumber.js'; +import { ethers } from 'ethers'; +import { useCallback, useMemo, useState } from 'react'; +import { toast } from 'react-toastify'; +import { encodeFunctionData } from 'viem'; + +export interface AuthorizeTokensParams { + tokenAddress: string; + spender: string; + maxLockedAmount: string; + maxLockSeconds: string; + maxLockCount: string; +} + +export interface UseAuthorizeTokensParams { + onSuccess?: () => void; +} + +export interface UseAuthorizeTokensReturn { + isAuthorizing: boolean; + handleAuthorize: (params: AuthorizeTokensParams) => void; + transactionUrl?: string; + error?: string; +} + +export const useAuthorizeTokens = ({ onSuccess }: UseAuthorizeTokensParams = {}): UseAuthorizeTokensReturn => { + const [isAuthorizing, setIsAuthorizing] = useState(false); + const [error, setError] = useState(); + const chainId = CHAIN_ID; + + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + + const handleSuccess = () => { + setIsAuthorizing(false); + setError(undefined); + toast.success('Authorization successful!'); + onSuccess?.(); + }; + + const handleError = (error: Error) => { + console.error('Authorize error:', error); + setIsAuthorizing(false); + setError(error.message || 'Failed to authorize tokens'); + toast.error('Authorization failed'); + }; + + const { sendUserOperationResult, sendUserOperation } = useSendUserOperation({ + client, + waitForTxn: true, + onError: handleError, + onSuccess: handleSuccess, + onMutate: () => { + setIsAuthorizing(true); + setError(undefined); + }, + }); + + const handleAuthorize = useCallback( + async ({ tokenAddress, spender, maxLockedAmount, maxLockSeconds, maxLockCount }: AuthorizeTokensParams) => { + if (!client) { + setError('Wallet not connected'); + toast.error('Wallet not connected'); + return; + } + + if (!tokenAddress || !spender) { + setError('Missing required parameters'); + toast.error('Missing required parameters'); + return; + } + + try { + const config = Object.values(Address).find((chainConfig: any) => chainConfig.chainId === chainId); + if (!config || !(config as any).Escrow) { + setError('No escrow found for chainId'); + toast.error('No escrow found for chainId'); + return; + } + + const provider = new ethers.JsonRpcProvider(RPC_URL); + const tokenContract = new ethers.Contract(tokenAddress, ERC20Template.abi, provider); + const tokenDecimals = await tokenContract.decimals(); + + const normalizedMaxLockedAmount = new BigNumber(maxLockedAmount) + .multipliedBy(new BigNumber(10).pow(Number(tokenDecimals))) + .toFixed(0); + + const data = encodeFunctionData({ + abi: Escrow.abi, + functionName: 'authorize', + args: [ + tokenAddress, + spender, + BigInt(normalizedMaxLockedAmount), + BigInt(maxLockSeconds), + BigInt(maxLockCount), + ], + }); + + sendUserOperation({ + uo: { + target: (config as any).Escrow as `0x${string}`, + data: data as `0x${string}`, + }, + }); + } catch (err) { + console.error('Error preparing authorization:', err); + setError(err instanceof Error ? err.message : 'Failed to prepare authorization'); + toast.error('Failed to prepare authorization'); + setIsAuthorizing(false); + } + }, + [client, sendUserOperation, chainId] + ); + + const transactionUrl = useMemo(() => { + if (!client?.chain?.blockExplorers || !sendUserOperationResult?.hash) { + return undefined; + } + return `${client.chain.blockExplorers.default.url}/tx/${sendUserOperationResult.hash}`; + }, [client, sendUserOperationResult?.hash]); + + return { + isAuthorizing, + handleAuthorize, + transactionUrl, + error, + }; +}; diff --git a/src/lib/use-deposit-tokens.ts b/src/lib/use-deposit-tokens.ts new file mode 100644 index 00000000..095edfe2 --- /dev/null +++ b/src/lib/use-deposit-tokens.ts @@ -0,0 +1,201 @@ +import { CHAIN_ID } from '@/constants/chains'; +import { RPC_URL } from '@/lib/constants'; +import { useSendUserOperation, useSmartAccountClient } from '@account-kit/react'; +import Address from '@oceanprotocol/contracts/addresses/address.json'; +import Escrow from '@oceanprotocol/contracts/artifacts/contracts/escrow/Escrow.sol/Escrow.json'; +import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'; +import BigNumber from 'bignumber.js'; +import { ethers } from 'ethers'; +import { useCallback, useMemo, useState } from 'react'; +import { toast } from 'react-toastify'; +import { encodeFunctionData } from 'viem'; + +export interface DepositTokensParams { + tokenAddress: string; + amount: string; +} + +export interface UseDepositTokensParams { + onSuccess?: () => void; +} + +export interface UseDepositTokensReturn { + isDepositing: boolean; + handleDeposit: (params: DepositTokensParams) => void; + transactionUrl?: string; + error?: string; +} + +export const useDepositTokens = ({ onSuccess }: UseDepositTokensParams = {}): UseDepositTokensReturn => { + const [isDepositing, setIsDepositing] = useState(false); + const [error, setError] = useState(); + const [currentStep, setCurrentStep] = useState<'idle' | 'approving' | 'depositing'>('idle'); + const [pendingParams, setPendingParams] = useState(null); + const chainId = CHAIN_ID; + + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + + const handleSuccess = () => { + if (currentStep === 'approving' && pendingParams) { + setCurrentStep('depositing'); + performDeposit(pendingParams.tokenAddress, pendingParams.amount); + } else { + setIsDepositing(false); + setCurrentStep('idle'); + setError(undefined); + setPendingParams(null); + toast.success('Deposit successful!'); + onSuccess?.(); + } + }; + + const handleError = (error: any) => { + console.error('Deposit error:', error); + setIsDepositing(false); + setCurrentStep('idle'); + let prettyErr = ''; + if (error.details) { + let d = 0, + v = 0; + const arr = error.details; + for (let i = 0; i < arr.length; i++) { + if (arr[i] === 'D' && arr.slice(i, i + 7) === 'Details') { + d = i; + } + if (arr[i] === 'V' && arr.slice(i, i + 7) === 'Version') { + v = i; + } + } + prettyErr = arr.slice(d + 8, v); + } + const errorText = + prettyErr ?? error.details ?? (currentStep === 'approving' ? 'Approval failed' : 'Deposit failed'); + setError(errorText); + toast.error(errorText); + }; + + const { sendUserOperationResult, sendUserOperation } = useSendUserOperation({ + client, + waitForTxn: true, + onError: handleError, + onSuccess: handleSuccess, + onMutate: () => { + setIsDepositing(true); + setError(undefined); + }, + }); + + const performDeposit = useCallback( + async (tokenAddress: string, amount: string) => { + if (!client) return; + + try { + const config = Object.values(Address).find((chainConfig: any) => chainConfig.chainId === chainId); + if (!config || !(config as any).Escrow) { + throw new Error('No escrow found for chainId'); + } + + const provider = new ethers.JsonRpcProvider(RPC_URL); + const tokenContract = new ethers.Contract(tokenAddress, ERC20Template.abi, provider); + const tokenDecimals = await tokenContract.decimals(); + + const normalizedAmount = new BigNumber(amount) + .multipliedBy(new BigNumber(10).pow(Number(tokenDecimals))) + .toFixed(0); + + const data = encodeFunctionData({ + abi: Escrow.abi, + functionName: 'deposit', + args: [tokenAddress, BigInt(normalizedAmount)], + }); + + sendUserOperation({ + uo: { + target: (config as any).Escrow as `0x${string}`, + data: data as `0x${string}`, + }, + }); + } catch (err) { + console.error('Error preparing deposit:', err); + const errorText = err instanceof Error ? err.message : 'Failed to prepare deposit'; + setError(errorText); + toast.error(errorText); + setIsDepositing(false); + setCurrentStep('idle'); + } + }, + [client, sendUserOperation, chainId] + ); + + const handleDeposit = useCallback( + async ({ tokenAddress, amount }: DepositTokensParams) => { + if (!client) { + setError('Wallet not connected'); + toast.error('Wallet not connected'); + return; + } + + if (!tokenAddress || !amount) { + setError('Missing required parameters'); + toast.error('Missing required parameters'); + return; + } + + try { + setPendingParams({ tokenAddress, amount }); + + const config = Object.values(Address).find((chainConfig: any) => chainConfig.chainId === chainId); + if (!config || !(config as any).Escrow) { + setError('No escrow found for chainId'); + toast.error('No escrow found for chainId'); + return; + } + + const provider = new ethers.JsonRpcProvider(RPC_URL); + const tokenContract = new ethers.Contract(tokenAddress, ERC20Template.abi, provider); + const tokenDecimals = await tokenContract.decimals(); + + const normalizedAmount = new BigNumber(amount) + .multipliedBy(new BigNumber(10).pow(Number(tokenDecimals))) + .toFixed(0); + + setCurrentStep('approving'); + const approveData = encodeFunctionData({ + abi: ERC20Template.abi, + functionName: 'approve', + args: [(config as any).Escrow, BigInt(normalizedAmount)], + }); + + sendUserOperation({ + uo: { + target: tokenAddress as `0x${string}`, + data: approveData as `0x${string}`, + }, + }); + } catch (err) { + console.error('Error preparing deposit:', err); + const errorText = err instanceof Error ? err.message : 'Failed to prepare deposit'; + setError(errorText); + toast.error(errorText); + setIsDepositing(false); + setCurrentStep('idle'); + setPendingParams(null); + } + }, + [client, sendUserOperation, chainId] + ); + + const transactionUrl = useMemo(() => { + if (!client?.chain?.blockExplorers || !sendUserOperationResult?.hash) { + return undefined; + } + return `${client.chain.blockExplorers.default.url}/tx/${sendUserOperationResult.hash}`; + }, [client, sendUserOperationResult?.hash]); + + return { + isDepositing, + handleDeposit, + transactionUrl, + error, + }; +}; diff --git a/src/lib/use-ocean-account.ts b/src/lib/use-ocean-account.ts new file mode 100644 index 00000000..8f9c48ba --- /dev/null +++ b/src/lib/use-ocean-account.ts @@ -0,0 +1,46 @@ +import { CHAIN_ID } from '@/constants/chains'; +import { RPC_URL } from '@/lib/constants'; +import { OceanProvider } from '@/lib/ocean-provider'; +import { useSmartAccountClient, useUser } from '@account-kit/react'; +import { ethers } from 'ethers'; +import { useMemo } from 'react'; + +export function useOceanAccount() { + const user = useUser(); + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + + const account = useMemo(() => { + if (!client) { + return { + address: undefined, + isConnected: false, + status: 'disconnected' as const, + }; + } + + return { + address: client.getAddress(), + isConnected: true, + status: 'connected' as const, + }; + }, [client]); + + const provider = useMemo(() => { + if (!client) return null; + return new ethers.JsonRpcProvider(RPC_URL, undefined, { batchMaxCount: 3 }); + }, [client]); + + const ocean = useMemo(() => { + if (!provider || !client) return null; + + return new OceanProvider(CHAIN_ID, provider); + }, [provider, client]); + + return { + account, + client, + provider, + ocean, + user, + }; +} diff --git a/src/lib/use-withdraw-tokens.ts b/src/lib/use-withdraw-tokens.ts new file mode 100644 index 00000000..d5edc0f8 --- /dev/null +++ b/src/lib/use-withdraw-tokens.ts @@ -0,0 +1,136 @@ +import { CHAIN_ID } from '@/constants/chains'; +import { RPC_URL } from '@/lib/constants'; +import { useSendUserOperation, useSmartAccountClient } from '@account-kit/react'; +import Address from '@oceanprotocol/contracts/addresses/address.json'; +import Escrow from '@oceanprotocol/contracts/artifacts/contracts/escrow/Escrow.sol/Escrow.json'; +import ERC20Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'; +import BigNumber from 'bignumber.js'; +import { ethers } from 'ethers'; +import { useCallback, useMemo, useState } from 'react'; +import { toast } from 'react-toastify'; +import { encodeFunctionData } from 'viem'; + +export interface WithdrawTokensParams { + tokenAddresses: string[]; + amounts: string[]; +} + +export interface UseWithdrawTokensParams { + onSuccess?: () => void; +} + +export interface UseWithdrawTokensReturn { + isWithdrawing: boolean; + handleWithdraw: (params: WithdrawTokensParams) => void; + transactionUrl?: string; + error?: string; +} + +export const useWithdrawTokens = ({ onSuccess }: UseWithdrawTokensParams = {}): UseWithdrawTokensReturn => { + const [isWithdrawing, setIsWithdrawing] = useState(false); + const [error, setError] = useState(); + const chainId = CHAIN_ID; + + const { client } = useSmartAccountClient({ type: 'LightAccount' }); + + const handleSuccess = () => { + setIsWithdrawing(false); + setError(undefined); + toast.success('Withdraw successful!'); + onSuccess?.(); + }; + + const handleError = (error: any) => { + console.error('Withdraw error:', error); + setIsWithdrawing(false); + let prettyErr = ''; + if (error.details) { + let d = 0, + v = 0; + const arr = error.details; + for (let i = 0; i < arr.length; i++) { + if (arr[i] === 'D' && arr.slice(i, i + 7) === 'Details') { + d = i; + } + if (arr[i] === 'V' && arr.slice(i, i + 7) === 'Version') { + v = i; + } + } + + prettyErr = arr.slice(d + 8, v); + } + const errorText = prettyErr ?? error.details ?? 'Withdraw failed'; + setError(errorText); + toast.error(errorText); + }; + + const { sendUserOperationResult, sendUserOperation } = useSendUserOperation({ + client, + waitForTxn: true, + onError: handleError, + onSuccess: handleSuccess, + onMutate: () => { + setIsWithdrawing(true); + setError(undefined); + }, + }); + + const handleWithdraw = useCallback( + async ({ tokenAddresses, amounts }: WithdrawTokensParams) => { + if (!client) return; + if (tokenAddresses.length !== amounts.length) return; + + try { + const config = Object.values(Address).find((chainConfig: any) => chainConfig.chainId === chainId); + if (!config || !(config as any).Escrow) { + throw new Error('No escrow found for chainId'); + } + + const provider = new ethers.JsonRpcProvider(RPC_URL); + const normalizedAmounts = []; + for (let i = 0; i < tokenAddresses.length; i++) { + const tokenContract = new ethers.Contract(tokenAddresses[i], ERC20Template.abi, provider); + const tokenDecimals = await tokenContract.decimals(); + + normalizedAmounts.push( + BigInt(new BigNumber(amounts[i]).multipliedBy(new BigNumber(10).pow(Number(tokenDecimals))).toFixed(0)) + ); + } + + const data = encodeFunctionData({ + abi: Escrow.abi, + functionName: 'withdraw', + args: [tokenAddresses, normalizedAmounts], + }); + + sendUserOperation({ + uo: { + target: (config as any).Escrow as `0x${string}`, + data: data as `0x${string}`, + }, + }); + } catch (err) { + const errorText = err instanceof Error ? err.message : 'Failed to prepare withdraw'; + console.error('Error preparing withdraw:', err); + setError(errorText); + toast.error(errorText); + setIsWithdrawing(false); + } + }, + [client, sendUserOperation, chainId] + ); + + const transactionUrl = useMemo(() => { + if (!client?.chain?.blockExplorers || !sendUserOperationResult?.hash) { + return undefined; + } + return `${client.chain.blockExplorers.default.url}/tx/${sendUserOperationResult.hash}`; + }, [client, sendUserOperationResult?.hash]); + + return { + isWithdrawing, + handleWithdraw, + transactionUrl, + error, + }; +}; diff --git a/src/mock/environments.ts b/src/mock/environments.ts new file mode 100644 index 00000000..df066024 --- /dev/null +++ b/src/mock/environments.ts @@ -0,0 +1,263 @@ +import { CHAIN_ID } from '@/constants/chains'; +import { ComputeEnvironment } from '@/types/environments'; + +export const MOCK_ENVS: ComputeEnvironment[] = [ + { + id: '0x2570967f47edf15293a2ab50944d7c790490d742c83a8ba7306c6db5e02d69d3-0x3f05b9957b7b17d96657293504e294612f7fc0f7ced22d9397a82557aac8bee7', + runningJobs: 0, + consumerAddress: '0xF64552152CD0190b8e3a45f7054EE2687d705460', + nodeId: '16Uiu2HAmR9z4EhF9zoZcErrdcEJKCjfTpXJfBcmbNppbT3QYtBpi', + platform: { + architecture: 'x86_64', + os: 'linux', + }, + fees: { + [CHAIN_ID]: [ + { + feeToken: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', + prices: [ + { + id: 'cpu', + price: 0.0005, + }, + { + id: 'ram', + price: 0.0002, + }, + { + id: 'myGPU', + price: 0.001, + }, + { + id: 'disk', + price: 0.0001, + }, + ], + }, + { + feeToken: '0x1B083D8584dd3e6Ff37d04a6e7e82b5F622f3985', + prices: [ + { + id: 'cpu', + price: 0.0005, + }, + { + id: 'ram', + price: 0.0002, + }, + { + id: 'myGPU', + price: 0.001, + }, + { + id: 'disk', + price: 0.0001, + }, + ], + }, + ], + }, + queuedJobs: 0, + queuedFreeJobs: 0, + queMaxWaitTime: 0, + queMaxWaitTimeFree: 0, + storageExpiry: 604800, + maxJobDuration: 7200, + resources: [ + { + id: 'cpu', + type: 'cpu', + total: 8, + max: 8, + min: 1, + description: 'Intel(R) Xeon(R) Gold 6342 CPU @ 2.80GHz', + inUse: 0, + }, + { + id: 'ram', + type: 'ram', + total: 23, + max: 23, + min: 1, + inUse: 0, + }, + { + id: 'myGPU', + description: 'NVIDIA RTX A5000', + type: 'gpu', + total: 1, + // init: { + // deviceRequests: { + // Driver: 'nvidia', + // DeviceIDs: ['GPU-fab12b3b-6dd7-0aaf-8616-c07aeaf6e41b'], + // Capabilities: [['gpu']], + // }, + // }, + max: 1, + min: 0, + inUse: 0, + }, + { + id: 'disk', + total: 20, + max: 20, + min: 0, + inUse: 0, + }, + ], + runningFreeJobs: 0, + }, + { + id: '0x6d2a9d0e1c53bf993577809f4738cd3c0f6f07e653b769d852f88ed812903505-0xd614be95cc285db1b02814cdafb74a5d240d7d9ba1903100fdd7a9265d27f5f8', + runningJobs: 0, + consumerAddress: '0xdA82f7b1a5ecF91f75dc0d573b87FEd9881dfBBE', + nodeId: '16Uiu2HAmR9z4EhF9zoZcErrdcEJKCjfTpXJfBcmbNppbT3QYtBpi', + platform: { + architecture: 'x86_64', + os: 'linux', + }, + fees: { + [CHAIN_ID]: [ + { + feeToken: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238', + prices: [ + { + id: 'cpu', + price: 0.05, + }, + { + id: 'ram', + price: 0.02, + }, + { + id: 'GPU1', + price: 1.5, + }, + { + id: 'GPU2', + price: 1.5, + }, + { + id: 'GPU3', + price: 1.5, + }, + { + id: 'disk', + price: 0.01, + }, + ], + }, + { + feeToken: '0x1B083D8584dd3e6Ff37d04a6e7e82b5F622f3985', + prices: [ + { + id: 'cpu', + price: 0.05, + }, + { + id: 'ram', + price: 0.02, + }, + { + id: 'GPU1', + price: 1.5, + }, + { + id: 'GPU2', + price: 1.5, + }, + { + id: 'GPU3', + price: 1.5, + }, + { + id: 'disk', + price: 0.01, + }, + ], + }, + ], + }, + queuedJobs: 0, + queuedFreeJobs: 0, + queMaxWaitTime: 0, + queMaxWaitTimeFree: 0, + storageExpiry: 604800, + maxJobDuration: 7200, + resources: [ + { + id: 'cpu', + type: 'cpu', + total: 6, + max: 6, + min: 1, + description: 'Intel Core Processor (Broadwell, no TSX, IBRS)', + inUse: 0, + }, + { + id: 'ram', + type: 'ram', + total: 15, + max: 15, + min: 1, + inUse: 0, + }, + { + id: 'GPU1', + description: 'NVIDIA V100-1', + type: 'gpu', + total: 1, + // init: { + // deviceRequests: { + // Driver: 'nvidia', + // DeviceIDs: ['GPU-a5e31522-2217-8c10-bcd3-8915ea371f89'], + // Capabilities: [['gpu']], + // }, + // }, + max: 1, + min: 0, + inUse: 0, + }, + { + id: 'GPU2', + description: 'NVIDIA V100-2', + type: 'gpu', + total: 1, + // init: { + // deviceRequests: { + // Driver: 'nvidia', + // DeviceIDs: ['GPU-c46eeff5-903b-8280-2f16-4fc3f6140d47'], + // Capabilities: [['gpu']], + // }, + // }, + max: 1, + min: 0, + inUse: 0, + }, + { + id: 'GPU3', + description: 'NVIDIA V100-2', + type: 'gpu', + total: 1, + // init: { + // deviceRequests: { + // Driver: 'nvidia', + // DeviceIDs: ['GPU-c46eeff5-903b-8280-2f16-4fc3f6140d47'], + // Capabilities: [['gpu']], + // }, + // }, + max: 1, + min: 0, + inUse: 0, + }, + { + id: 'disk', + total: 20, + max: 20, + min: 0, + inUse: 0, + }, + ], + runningFreeJobs: 0, + }, +]; diff --git a/src/mock/jobs.ts b/src/mock/jobs.ts new file mode 100644 index 00000000..64d27e38 --- /dev/null +++ b/src/mock/jobs.ts @@ -0,0 +1,114 @@ +import { Job } from '@/types/jobs'; + +export const MOCK_JOBS: Job[] = [ + { + difficulty: 5000, + endTime: '2024-01-01 12:00:00', + id: 1, + index: 1, + score: 95, + startTime: '2024-01-01 10:00:00', + status: 'Completed', + totalHashes: 1000000, + }, + { + difficulty: 7000, + endTime: '2024-01-02 14:00:00', + id: 2, + index: 2, + score: 88, + startTime: '2024-01-02 11:00:00', + status: 'Failed', + totalHashes: 1500000, + }, + { + difficulty: 6000, + endTime: '2024-01-03 16:00:00', + id: 3, + index: 3, + score: 92, + startTime: '2024-01-03 12:30:00', + status: 'Completed', + totalHashes: 1200000, + }, + { + difficulty: 8000, + endTime: '2024-01-04 18:00:00', + id: 4, + index: 4, + score: 85, + startTime: '2024-01-04 13:00:00', + status: 'In Progress', + totalHashes: 2000000, + }, + { + difficulty: 5500, + endTime: '2024-01-05 15:00:00', + id: 5, + index: 5, + score: 90, + startTime: '2024-01-05 11:30:00', + status: 'Completed', + totalHashes: 1100000, + }, + { + difficulty: 7500, + endTime: '2024-01-06 17:00:00', + id: 6, + index: 6, + score: 87, + startTime: '2024-01-06 12:00:00', + status: 'Failed', + totalHashes: 1800000, + }, + { + difficulty: 6200, + endTime: '2024-01-07 19:00:00', + id: 7, + index: 7, + score: 93, + startTime: '2024-01-07 14:30:00', + status: 'Completed', + totalHashes: 1300000, + }, + { + difficulty: 8200, + endTime: '2024-01-08 20:00:00', + id: 8, + index: 8, + score: 84, + startTime: '2024-01-08 15:00:00', + status: 'In Progress', + totalHashes: 2100000, + }, + { + difficulty: 5800, + endTime: '2024-01-09 16:30:00', + id: 9, + index: 9, + score: 89, + startTime: '2024-01-09 12:00:00', + status: 'Completed', + totalHashes: 1150000, + }, + { + difficulty: 7700, + endTime: '2024-01-10 18:30:00', + id: 10, + index: 10, + score: 86, + startTime: '2024-01-10 13:00:00', + status: 'Failed', + totalHashes: 1900000, + }, + { + difficulty: 6300, + endTime: '2024-01-11 20:30:00', + id: 11, + index: 11, + score: 94, + startTime: '2024-01-11 15:30:00', + status: 'Completed', + totalHashes: 1350000, + }, +]; diff --git a/src/mock/nodes.ts b/src/mock/nodes.ts new file mode 100644 index 00000000..4c38fd9e --- /dev/null +++ b/src/mock/nodes.ts @@ -0,0 +1,67 @@ +export const MOCK_NODES = [ + { + id: 1, + index: 1, + name: 'Node-Alpha', + region: 'US-East', + eligible: true, + latestBenchmarkResults: { + gpuScore: 9850, + cpuScore: 7800, + bandwidth: '950 Mbps', + }, + gpus: ['NVIDIA RTX 4090', 'NVIDIA A100'], + }, + { + id: 2, + index: 2, + name: 'Node-Beta', + region: 'EU-West', + eligible: false, + latestBenchmarkResults: { + gpuScore: 7320, + cpuScore: 6900, + bandwidth: '620 Mbps', + }, + gpus: ['NVIDIA RTX 3080'], + }, + { + id: 3, + index: 3, + name: 'Node-Gamma', + region: 'Asia-Pacific', + eligible: true, + latestBenchmarkResults: { + gpuScore: 11200, + cpuScore: 8500, + bandwidth: '1.2 Gbps', + }, + gpus: ['NVIDIA H100', 'NVIDIA RTX 4090'], + }, + { + id: 4, + index: 4, + name: 'Node-Delta', + region: 'US-West', + eligible: false, + latestBenchmarkResults: { + gpuScore: 5400, + cpuScore: 5100, + bandwidth: '480 Mbps', + }, + gpus: ['NVIDIA RTX 3070'], + }, + { + id: 5, + index: 5, + name: 'Node-Epsilon', + region: 'South America', + eligible: true, + latestBenchmarkResults: { + gpuScore: 8700, + cpuScore: 7600, + bandwidth: '820 Mbps', + }, + gpus: ['NVIDIA RTX 4080'], + }, +]; diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 482e66b6..4cb92853 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,49 +1,72 @@ +import RootLayout from '@/components/Layout'; +import { NodesProvider } from '@/context/nodes-context'; +import { ProfileProvider } from '@/context/profile-context'; +import { RunJobProvider } from '@/context/run-job-context'; +import { RunJobEnvsProvider } from '@/context/run-job-envs-context'; +import { RunNodeProvider } from '@/context/run-node-context'; +import { StatsProvider } from '@/context/stats-context'; +import { UnbanRequestsProvider } from '@/context/unban-requests-context'; +import { P2PProvider } from '@/contexts/P2PContext'; +import { AlchemyProvider } from '@/lib/alchemy-provider'; import '@/styles/globals.css'; -import 'leaflet/dist/leaflet.css'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import cx from 'classnames'; import type { AppProps } from 'next/app'; -import '@rainbow-me/rainbowkit/styles.css'; -import { getDefaultConfig, RainbowKitProvider } from '@rainbow-me/rainbowkit'; -import { WagmiProvider } from 'wagmi'; -import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; -import RootLayout from '../components/Layout'; -import { AdminProvider } from '@/context/AdminProvider' -import { chains } from '@/shared/utils/chains' -import { MapProvider } from '@/context/MapContext' -import { NodesProvider } from '@/context/NodesContext' -import { CountriesProvider } from '@/context/CountriesContext' -import { HistoryProvider } from '@/context/HistoryContext' +import { Inter, Orbitron } from 'next/font/google'; +import { useEffect, useRef } from 'react'; +import { ToastContainer } from 'react-toastify'; +import 'react-toastify/dist/ReactToastify.css'; + +const inter = Inter({ + subsets: ['latin'], + variable: '--font-inter', + display: 'swap', +}); + +const orbitron = Orbitron({ + subsets: ['latin'], + variable: '--font-orbitron', + weight: ['400', '600', '700'], + display: 'swap', +}); export default function App({ Component, pageProps }: AppProps) { - const config = getDefaultConfig({ - appName: 'Ocean Node Dashboard', - projectId: process.env.NEXT_PUBLIC_WALLET_CONNECT_ID - ? process.env.NEXT_PUBLIC_WALLET_CONNECT_ID - : 'da267f7e1897e2cf92a7710f92e8f660', - chains, - ssr: true - }) + const queryClientRef = useRef(); + if (!queryClientRef.current) { + queryClientRef.current = new QueryClient(); + } - const queryClient = new QueryClient() + useEffect(() => { + const html = document.documentElement; + html.classList.add(inter.variable, orbitron.variable); + }, []); return ( - - - - - - - - - - - - - - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + - - ) +
+ ); } diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx index bad3fb57..8ee20dad 100644 --- a/src/pages/_document.tsx +++ b/src/pages/_document.tsx @@ -1,36 +1,33 @@ -import { Html, Head, Main, NextScript } from 'next/document' -import Script from 'next/script' +import { Head, Html, Main, NextScript } from 'next/document'; export default function Document() { - const GA_TRACKING_ID = process.env.NEXT_PUBLIC_GA_TRACKING_ID || 'G-WQ5TV5PMN3' - return ( -