commit 4cc5ca6b5cc15dd4afddf12acf1403e8513468da Author: mohammadreza sabri Date: Sat Aug 1 10:11:28 2026 +0330 create landing page for boursemes diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..3ddb73c --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +VITE_LOGIN_APP_URL=https://boursemes.com/home diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b18b10d --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +node_modules +dist +.DS_Store +*.local +.env diff --git a/components.d.ts b/components.d.ts new file mode 100644 index 0000000..11be893 --- /dev/null +++ b/components.d.ts @@ -0,0 +1,16 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// Generated by unplugin-vue-components +// Read more: https://github.com/vuejs/core/pull/3399 +export {} + +declare module 'vue' { + export interface GlobalComponents { + BasicButton: typeof import('./src/components/BasicPacks/BasicButton.vue')['default'] + BasicIcon: typeof import('./src/components/BasicPacks/BasicIcon.vue')['default'] + BasicModal: typeof import('./src/components/BasicPacks/BasicModal.vue')['default'] + RouterLink: typeof import('vue-router')['RouterLink'] + RouterView: typeof import('vue-router')['RouterView'] + } +} diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..33e539f --- /dev/null +++ b/env.d.ts @@ -0,0 +1,9 @@ +/// + +interface ImportMetaEnv { + readonly VITE_LOGIN_APP_URL: string +} + +interface ImportMeta { + readonly env: ImportMetaEnv +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..3183b63 --- /dev/null +++ b/index.html @@ -0,0 +1,751 @@ + + + + + + + + + + + + + + + در حال بارگذاری... + + + + + + + + + +
+
+ +
+
+ + + + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..26621ac --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4479 @@ +{ + "name": "landing", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "landing", + "version": "1.0.0", + "dependencies": { + "ant-design-vue": "^3.2.20", + "axios": "^1.6.2", + "lodash": "^4.17.21", + "pinia": "^2.1.4", + "unocss": "^0.55.1", + "unplugin-vue-components": "^0.25.1", + "vue": "^3.3.4", + "vue-router": "^4.2.4" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.3.2", + "@tsconfig/node18": "^18.2.0", + "@types/lodash": "^4.17.7", + "@types/node": "^18.17.0", + "@vitejs/plugin-vue": "^4.2.3", + "@vue/eslint-config-prettier": "^8.0.0", + "@vue/eslint-config-typescript": "^11.0.3", + "@vue/tsconfig": "^0.4.0", + "eslint": "^8.45.0", + "eslint-plugin-vue": "^9.15.1", + "less": "^4.2.0", + "prettier": "^3.0.0", + "typescript": "~5.1.6", + "vite": "^4.4.6", + "vue-tsc": "^2.1.10" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://mirror2.chabokan.net/npm/@ampproject%2Fremapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://mirror2.chabokan.net/npm/@ant-design%2Fcolors/-/colors-6.0.0.tgz", + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.5.0", + "resolved": "https://mirror2.chabokan.net/npm/@ant-design%2Ficons-svg/-/icons-svg-4.5.0.tgz", + "integrity": "sha512-1BTUFyKPTBZ53MuTP8s0k5SFEXL7o3VHEOwLgzaoWKwnBeqIcqUtVshc4SKzhI6uACfqhJqBwBUE9FsWR3uULA==", + "license": "MIT" + }, + "node_modules/@ant-design/icons-vue": { + "version": "6.1.0", + "resolved": "https://mirror2.chabokan.net/npm/@ant-design%2Ficons-vue/-/icons-vue-6.1.0.tgz", + "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-svg": "^4.2.1" + }, + "peerDependencies": { + "vue": ">=3.0.3" + } + }, + "node_modules/@antfu/install-pkg": { + "version": "1.1.0", + "resolved": "https://mirror2.chabokan.net/npm/@antfu%2Finstall-pkg/-/install-pkg-1.1.0.tgz", + "integrity": "sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==", + "license": "MIT", + "dependencies": { + "package-manager-detector": "^1.3.0", + "tinyexec": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@antfu/utils": { + "version": "0.7.10", + "resolved": "https://mirror2.chabokan.net/npm/@antfu%2Futils/-/utils-0.7.10.tgz", + "integrity": "sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://mirror2.chabokan.net/npm/@babel%2Fhelper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://mirror2.chabokan.net/npm/@babel%2Fhelper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://mirror2.chabokan.net/npm/@babel%2Fparser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.29.7", + "resolved": "https://mirror2.chabokan.net/npm/@babel%2Fruntime/-/runtime-7.29.7.tgz", + "integrity": "sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://mirror2.chabokan.net/npm/@babel%2Ftypes/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.6.1", + "resolved": "https://mirror2.chabokan.net/npm/@ctrl%2Ftinycolor/-/tinycolor-3.6.1.tgz", + "integrity": "sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://mirror2.chabokan.net/npm/@esbuild%2Fwin32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://mirror2.chabokan.net/npm/@eslint-community%2Feslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://mirror2.chabokan.net/npm/@eslint-community%2Fregexpp/-/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/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://mirror2.chabokan.net/npm/@eslint%2Feslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "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" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://mirror2.chabokan.net/npm/@eslint%2Fjs/-/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/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://mirror2.chabokan.net/npm/@humanwhocodes%2Fconfig-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/@humanwhocodes%2Fmodule-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://mirror2.chabokan.net/npm/@humanwhocodes%2Fobject-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://mirror2.chabokan.net/npm/@iconify%2Ftypes/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "license": "MIT" + }, + "node_modules/@iconify/utils": { + "version": "2.3.0", + "resolved": "https://mirror2.chabokan.net/npm/@iconify%2Futils/-/utils-2.3.0.tgz", + "integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==", + "license": "MIT", + "dependencies": { + "@antfu/install-pkg": "^1.0.0", + "@antfu/utils": "^8.1.0", + "@iconify/types": "^2.0.0", + "debug": "^4.4.0", + "globals": "^15.14.0", + "kolorist": "^1.8.0", + "local-pkg": "^1.0.0", + "mlly": "^1.7.4" + } + }, + "node_modules/@iconify/utils/node_modules/@antfu/utils": { + "version": "8.1.1", + "resolved": "https://mirror2.chabokan.net/npm/@antfu%2Futils/-/utils-8.1.1.tgz", + "integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@iconify/utils/node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://mirror2.chabokan.net/npm/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/@iconify/utils/node_modules/globals": { + "version": "15.15.0", + "resolved": "https://mirror2.chabokan.net/npm/globals/-/globals-15.15.0.tgz", + "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@iconify/utils/node_modules/local-pkg": { + "version": "1.2.1", + "resolved": "https://mirror2.chabokan.net/npm/local-pkg/-/local-pkg-1.2.1.tgz", + "integrity": "sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q==", + "license": "MIT", + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.3.0", + "quansync": "^0.2.11" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@iconify/utils/node_modules/pkg-types": { + "version": "2.3.1", + "resolved": "https://mirror2.chabokan.net/npm/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://mirror2.chabokan.net/npm/@jridgewell%2Fgen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://mirror2.chabokan.net/npm/@jridgewell%2Fresolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://mirror2.chabokan.net/npm/@jridgewell%2Fsourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://mirror2.chabokan.net/npm/@jridgewell%2Ftrace-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/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://mirror2.chabokan.net/npm/@nodelib%2Ffs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "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://mirror2.chabokan.net/npm/@nodelib%2Ffs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://mirror2.chabokan.net/npm/@nodelib%2Ffs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "0.3.6", + "resolved": "https://mirror2.chabokan.net/npm/@pkgr%2Fcore/-/core-0.3.6.tgz", + "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://mirror2.chabokan.net/npm/@polka%2Furl/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "license": "MIT" + }, + "node_modules/@rollup/pluginutils": { + "version": "5.4.0", + "resolved": "https://mirror2.chabokan.net/npm/@rollup%2Fpluginutils/-/pluginutils-5.4.0.tgz", + "integrity": "sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/picomatch": { + "version": "4.0.5", + "resolved": "https://mirror2.chabokan.net/npm/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.16.1", + "resolved": "https://mirror2.chabokan.net/npm/@rushstack%2Feslint-patch/-/eslint-patch-1.16.1.tgz", + "integrity": "sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==", + "dev": true, + "license": "MIT" + }, + "node_modules/@simonwep/pickr": { + "version": "1.8.2", + "resolved": "https://mirror2.chabokan.net/npm/@simonwep%2Fpickr/-/pickr-1.8.2.tgz", + "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", + "license": "MIT", + "dependencies": { + "core-js": "^3.15.1", + "nanopop": "^2.1.0" + } + }, + "node_modules/@tsconfig/node18": { + "version": "18.2.6", + "resolved": "https://mirror2.chabokan.net/npm/@tsconfig%2Fnode18/-/node18-18.2.6.tgz", + "integrity": "sha512-eAWQzAjPj18tKnDzmWstz4OyWewLUNBm9tdoN9LayzoboRktYx3Enk1ZXPmThj55L7c4VWYq/Bzq0A51znZfhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://mirror2.chabokan.net/npm/@types%2Festree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://mirror2.chabokan.net/npm/@types%2Fjson-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.17.24", + "resolved": "https://mirror2.chabokan.net/npm/@types%2Flodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "18.19.130", + "resolved": "https://mirror2.chabokan.net/npm/@types%2Fnode/-/node-18.19.130.tgz", + "integrity": "sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/semver": { + "version": "7.7.1", + "resolved": "https://mirror2.chabokan.net/npm/@types%2Fsemver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Feslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Fparser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Fscope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Ftype-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Ftypes/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Ftypescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Futils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://mirror2.chabokan.net/npm/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://mirror2.chabokan.net/npm/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://mirror2.chabokan.net/npm/@typescript-eslint%2Fvisitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.3", + "resolved": "https://mirror2.chabokan.net/npm/@ungap%2Fstructured-clone/-/structured-clone-1.3.3.tgz", + "integrity": "sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg==", + "dev": true, + "license": "ISC" + }, + "node_modules/@unocss/astro": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fastro/-/astro-0.55.7.tgz", + "integrity": "sha512-mw8r14ArxUQBVCCisAJlF/WsZb650iBsduD/lXMk56N/nQ3MMArCcn62kcAxgZSb5tfIOQGQu/tbR8hEcD8y2g==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "@unocss/reset": "0.55.7", + "@unocss/vite": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, + "node_modules/@unocss/cli": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fcli/-/cli-0.55.7.tgz", + "integrity": "sha512-ZHX2SR2WQbKfcmgOOHjBLB3V57Ct76Zb76YULzBj2EVX43lX/YDCVG87n6ePDY7rOcjCAthjrFQYCLV5KVLKHg==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@rollup/pluginutils": "^5.0.3", + "@unocss/config": "0.55.7", + "@unocss/core": "0.55.7", + "@unocss/preset-uno": "0.55.7", + "cac": "^6.7.14", + "chokidar": "^3.5.3", + "colorette": "^2.0.20", + "consola": "^3.2.3", + "fast-glob": "^3.3.1", + "magic-string": "^0.30.3", + "pathe": "^1.1.1", + "perfect-debounce": "^1.0.0" + }, + "bin": { + "unocss": "bin/unocss.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/cli/node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://mirror2.chabokan.net/npm/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "license": "MIT" + }, + "node_modules/@unocss/config": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fconfig/-/config-0.55.7.tgz", + "integrity": "sha512-+X6rPScyFEWbkZyCyM+HfoJhJNN+CEl2n2izWkm0kuDj3w9fY9B3f/0dsk+jmx/gJEI5Y797q9zspNMNDib1AA==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "unconfig": "^0.3.10" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/core": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fcore/-/core-0.55.7.tgz", + "integrity": "sha512-c+bWe844Xjlwc1EPwHj0+n3LpntJG7ELPbEOOxNIG+CQdcEX0l1G0rkM8+nKstJ9WJmgpf1HdJQLVMF62HXvhw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/extractor-arbitrary-variants": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fextractor-arbitrary-variants/-/extractor-arbitrary-variants-0.55.7.tgz", + "integrity": "sha512-imK2g/frlo5Ag0uVB+C/Psyo5+9AnqhoRAgYa6gyrQ/TJnrnwf+M3jFngU9evIMHw92vig1DGfPa2ZId901DwQ==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/inspector": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Finspector/-/inspector-0.55.7.tgz", + "integrity": "sha512-N0mjZozDDyqx8Mh6C/ZlMTlDzGiq22sXY/hPRX55Cf44WZI4W/ZWajqAAp42B+lw2MN0k1FYEMIAwn9n+xgq/g==", + "license": "MIT", + "dependencies": { + "gzip-size": "^6.0.0", + "sirv": "^2.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/postcss": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpostcss/-/postcss-0.55.7.tgz", + "integrity": "sha512-53Z/yv/CNdlTqKZQ9gpYRoLZSuzQ28J0SDrGCdzwjLcvHG/FD7/x1S7yxE7cUp/4sjvLL15HSzkWq8vNy6SkwQ==", + "license": "MIT", + "dependencies": { + "@unocss/config": "0.55.7", + "@unocss/core": "0.55.7", + "css-tree": "^2.3.1", + "fast-glob": "^3.3.1", + "magic-string": "^0.30.3", + "postcss": "^8.4.28" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/@unocss/preset-attributify": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-attributify/-/preset-attributify-0.55.7.tgz", + "integrity": "sha512-L1sNw3DyM4mymIm4DBTTTOllk8LmhYlWMgDlaAW2MYWygjqDCsp99wRKT2175Ya5xHYBA6XetMoBryZD23qJYQ==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-icons": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-icons/-/preset-icons-0.55.7.tgz", + "integrity": "sha512-JXLOHkyEKKAjLTqjAxYfhwln05WXilGg3jctkZWKpMNawPaonrGt3kZT12YMuMmOryxk7UcyKB0dtYc+p3QYvw==", + "license": "MIT", + "dependencies": { + "@iconify/utils": "^2.1.9", + "@unocss/core": "0.55.7", + "ofetch": "^1.3.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-mini": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-mini/-/preset-mini-0.55.7.tgz", + "integrity": "sha512-ZCskE2uprjGkpQezEPM6KPMf84rIZEUNc1p2DxWVHaFUPRV24/JSNsO4PsKrQgNIb2dLQxzPNlMzQJI7ssdBXQ==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "@unocss/extractor-arbitrary-variants": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-tagify": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-tagify/-/preset-tagify-0.55.7.tgz", + "integrity": "sha512-aDsuN3a/ZirbCDKpFsue9tc8MHs3l0Rl81n2ZOdIrJoZW4YWyydMVl++cz/HERZW81ZySK8EJKwGBaMJMgsnHA==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-typography": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-typography/-/preset-typography-0.55.7.tgz", + "integrity": "sha512-hLV4nsgsDIk66pt7Ej4NYUmaGtI2EfGb1h2yl5FmBtdtACrgPq+Skr2Br9Iq+Bj1QFhbsMOWLDdbojFQwBdH6A==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "@unocss/preset-mini": "0.55.7" + } + }, + "node_modules/@unocss/preset-uno": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-uno/-/preset-uno-0.55.7.tgz", + "integrity": "sha512-z4pCxOv/OU1ARo++cvbijWNW2zy/EVTMqJXa+SEep9b99wFXPQE3gaPvLdURp/e5f1PoxVyPZ6JiBknbClSDuA==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "@unocss/preset-mini": "0.55.7", + "@unocss/preset-wind": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-web-fonts": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-web-fonts/-/preset-web-fonts-0.55.7.tgz", + "integrity": "sha512-ygAz0540kdBapErW2BcObWfQT/6g0SpVUPYg92PPiZD57CZAvuNXiYTfFMRXd88QrBL1zIrZ6NrzY0NZ645H+w==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "ofetch": "^1.3.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/preset-wind": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-wind/-/preset-wind-0.55.7.tgz", + "integrity": "sha512-vLi0mtYDnvx3uYtBR4fSCR52T59drTUp3XVAAqQTbhvRctnSWm65MWE4G+gqdt2qQ9fM4SVCsxLLaXuJkI2eqw==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "@unocss/preset-mini": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/reset": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Freset/-/reset-0.55.7.tgz", + "integrity": "sha512-yvmLhxqUNgf6wue7IvhV/FdrQW9H9LF1Bmmhwwaiz2aV0E74aN4pbuYPZwNq3YafsQvNQ0UdtuXjddY4QMRCPw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/scope": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fscope/-/scope-0.55.7.tgz", + "integrity": "sha512-r0CaS1aSpcC37ztqOJ3qaWIzM6zwdlX8r0rib2vTvWTckw1J0ocVhjNkWRBM9kRWte006JhecdiZzXNHA40akg==", + "license": "MIT" + }, + "node_modules/@unocss/transformer-attributify-jsx": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-attributify-jsx/-/transformer-attributify-jsx-0.55.7.tgz", + "integrity": "sha512-ZyUBc0wguBhd+nbIlcrSYpmzKtqBi+8BII8SK4lIB/Ol1wBboByPTjBENsQkxRyffp5K9VTuZZ/LamFgPGOWDg==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-attributify-jsx-babel": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.55.7.tgz", + "integrity": "sha512-xl5K/Zg7tLyI6Oee+xHgvBm0gSEviYdBDwaGC4O6cP9VXTBm6waz9NUU6CmmVYKh4dSeLQ1PKNboMeg2nFuJMw==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-compile-class": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-compile-class/-/transformer-compile-class-0.55.7.tgz", + "integrity": "sha512-tiYiT9EG4ucSBvMo+9Hv43GY0YvXQjfQCXDhDm3tcJyreMg6BRMO412eir54RBS+JAdNU0DUoITVYu+PkF7hLg==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/transformer-directives": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-directives/-/transformer-directives-0.55.7.tgz", + "integrity": "sha512-xNmR40FssHWYJSmJv/9TQC2IdTyZPV8U3Iv/PIuke1zndMwMciclghEFiw0wSeRmhoRI7iFZck5EI/Bokyo7CQ==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7", + "css-tree": "^2.3.1" + } + }, + "node_modules/@unocss/transformer-variant-group": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-variant-group/-/transformer-variant-group-0.55.7.tgz", + "integrity": "sha512-uLyZ08XXVriUDenZCTGA3xGgMD3B9GVr6mSz002pDlLpQDi8FcMQTOGg8X4ViCGzS3l03S/+r+JY7kJTpMFa9w==", + "license": "MIT", + "dependencies": { + "@unocss/core": "0.55.7" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@unocss/vite": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/@unocss%2Fvite/-/vite-0.55.7.tgz", + "integrity": "sha512-xmdyDnt9Ag4o7DGl22/P6MaB+HSjWOQw9qYYzIefSv3SVUvn3cEhIX/PCWqFp8Kts2HyvAoJLbZmygSf1XdZNQ==", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.1", + "@rollup/pluginutils": "^5.0.3", + "@unocss/config": "0.55.7", + "@unocss/core": "0.55.7", + "@unocss/inspector": "0.55.7", + "@unocss/scope": "0.55.7", + "@unocss/transformer-directives": "0.55.7", + "chokidar": "^3.5.3", + "fast-glob": "^3.3.1", + "magic-string": "^0.30.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.6.2", + "resolved": "https://mirror2.chabokan.net/npm/@vitejs%2Fplugin-vue/-/plugin-vue-4.6.2.tgz", + "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0 || ^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.15", + "resolved": "https://mirror2.chabokan.net/npm/@volar%2Flanguage-core/-/language-core-2.4.15.tgz", + "integrity": "sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.15" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.15", + "resolved": "https://mirror2.chabokan.net/npm/@volar%2Fsource-map/-/source-map-2.4.15.tgz", + "integrity": "sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.15", + "resolved": "https://mirror2.chabokan.net/npm/@volar%2Ftypescript/-/typescript-2.4.15.tgz", + "integrity": "sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-core/-/compiler-core-3.5.40.tgz", + "integrity": "sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/shared": "3.5.40", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-dom/-/compiler-dom-3.5.40.tgz", + "integrity": "sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.40", + "@vue/shared": "3.5.40" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-sfc/-/compiler-sfc-3.5.40.tgz", + "integrity": "sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/compiler-core": "3.5.40", + "@vue/compiler-dom": "3.5.40", + "@vue/compiler-ssr": "3.5.40", + "@vue/shared": "3.5.40", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.19", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-ssr/-/compiler-ssr-3.5.40.tgz", + "integrity": "sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.40", + "@vue/shared": "3.5.40" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "license": "MIT", + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fdevtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "8.0.0", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Feslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz", + "integrity": "sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "11.0.3", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Feslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz", + "integrity": "sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.59.1", + "@typescript-eslint/parser": "^5.59.1", + "vue-eslint-parser": "^9.1.1" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", + "eslint-plugin-vue": "^9.0.0", + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core": { + "version": "2.2.12", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Flanguage-core/-/language-core-2.2.12.tgz", + "integrity": "sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.15", + "@vue/compiler-dom": "^3.5.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.5.0", + "alien-signals": "^1.0.3", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.1.3", + "resolved": "https://mirror2.chabokan.net/npm/brace-expansion/-/brace-expansion-2.1.3.tgz", + "integrity": "sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://mirror2.chabokan.net/npm/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Freactivity/-/reactivity-3.5.40.tgz", + "integrity": "sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.40" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fruntime-core/-/runtime-core-3.5.40.tgz", + "integrity": "sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.40", + "@vue/shared": "3.5.40" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fruntime-dom/-/runtime-dom-3.5.40.tgz", + "integrity": "sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.40", + "@vue/runtime-core": "3.5.40", + "@vue/shared": "3.5.40", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fserver-renderer/-/server-renderer-3.5.40.tgz", + "integrity": "sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.40", + "@vue/runtime-dom": "3.5.40", + "@vue/shared": "3.5.40" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Fshared/-/shared-3.5.40.tgz", + "integrity": "sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg==", + "license": "MIT" + }, + "node_modules/@vue/tsconfig": { + "version": "0.4.0", + "resolved": "https://mirror2.chabokan.net/npm/@vue%2Ftsconfig/-/tsconfig-0.4.0.tgz", + "integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://mirror2.chabokan.net/npm/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://mirror2.chabokan.net/npm/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/agent-base": { + "version": "6.0.2", + "resolved": "https://mirror2.chabokan.net/npm/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://mirror2.chabokan.net/npm/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alien-signals": { + "version": "1.0.13", + "resolved": "https://mirror2.chabokan.net/npm/alien-signals/-/alien-signals-1.0.13.tgz", + "integrity": "sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://mirror2.chabokan.net/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://mirror2.chabokan.net/npm/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ant-design-vue": { + "version": "3.2.20", + "resolved": "https://mirror2.chabokan.net/npm/ant-design-vue/-/ant-design-vue-3.2.20.tgz", + "integrity": "sha512-YWpMfGaGoRastIXEYfCoJiaRiDHk4chqtYhlKQM5GqPt6NfvrM1Vg2e60yHtjxlZjed91wCMm0rAmyUr7Hwzdg==", + "license": "MIT", + "dependencies": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-vue": "^6.1.0", + "@babel/runtime": "^7.10.5", + "@ctrl/tinycolor": "^3.4.0", + "@simonwep/pickr": "~1.8.0", + "array-tree-filter": "^2.1.0", + "async-validator": "^4.0.0", + "dayjs": "^1.10.5", + "dom-align": "^1.12.1", + "dom-scroll-into-view": "^2.0.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.15", + "resize-observer-polyfill": "^1.5.1", + "scroll-into-view-if-needed": "^2.2.25", + "shallow-equal": "^1.0.0", + "vue-types": "^3.0.0", + "warning": "^4.0.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design-vue" + }, + "peerDependencies": { + "vue": ">=3.2.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://mirror2.chabokan.net/npm/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://mirror2.chabokan.net/npm/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-tree-filter": { + "version": "2.1.0", + "resolved": "https://mirror2.chabokan.net/npm/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==", + "license": "MIT" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://mirror2.chabokan.net/npm/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/async-validator": { + "version": "4.2.5", + "resolved": "https://mirror2.chabokan.net/npm/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://mirror2.chabokan.net/npm/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.19.0", + "resolved": "https://mirror2.chabokan.net/npm/axios/-/axios-1.19.0.tgz", + "integrity": "sha512-ht/iuYZXEjFxLH/Hkezgd7m6JKlHHXEUSneaDz8uZe1Gj5QZtCnpyDsckvAiEnT89OEbCLmnte4R4sn7P0EKFw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.6", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://mirror2.chabokan.net/npm/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://mirror2.chabokan.net/npm/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://mirror2.chabokan.net/npm/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.17", + "resolved": "https://mirror2.chabokan.net/npm/brace-expansion/-/brace-expansion-1.1.17.tgz", + "integrity": "sha512-w+aeW/mkgM4PyRMOJCgi3fOrTm5Q8QY1OSfn2TO2iuDj3ezIHqejmuxbjfPrqUkgqRew1iqkyAn0tr0ZwHD9+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://mirror2.chabokan.net/npm/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://mirror2.chabokan.net/npm/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://mirror2.chabokan.net/npm/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://mirror2.chabokan.net/npm/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://mirror2.chabokan.net/npm/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://mirror2.chabokan.net/npm/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://mirror2.chabokan.net/npm/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://mirror2.chabokan.net/npm/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://mirror2.chabokan.net/npm/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "license": "MIT" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://mirror2.chabokan.net/npm/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://mirror2.chabokan.net/npm/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://mirror2.chabokan.net/npm/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://mirror2.chabokan.net/npm/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "license": "MIT" + }, + "node_modules/consola": { + "version": "3.4.2", + "resolved": "https://mirror2.chabokan.net/npm/consola/-/consola-3.4.2.tgz", + "integrity": "sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==", + "license": "MIT", + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://mirror2.chabokan.net/npm/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-js": { + "version": "3.49.0", + "resolved": "https://mirror2.chabokan.net/npm/core-js/-/core-js-3.49.0.tgz", + "integrity": "sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://mirror2.chabokan.net/npm/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": ">= 8" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://mirror2.chabokan.net/npm/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://mirror2.chabokan.net/npm/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://mirror2.chabokan.net/npm/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/dayjs": { + "version": "1.11.21", + "resolved": "https://mirror2.chabokan.net/npm/dayjs/-/dayjs-1.11.21.tgz", + "integrity": "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==", + "license": "MIT" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://mirror2.chabokan.net/npm/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://mirror2.chabokan.net/npm/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://mirror2.chabokan.net/npm/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/defu": { + "version": "6.1.7", + "resolved": "https://mirror2.chabokan.net/npm/defu/-/defu-6.1.7.tgz", + "integrity": "sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://mirror2.chabokan.net/npm/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/destr": { + "version": "2.0.5", + "resolved": "https://mirror2.chabokan.net/npm/destr/-/destr-2.0.5.tgz", + "integrity": "sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==", + "license": "MIT" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://mirror2.chabokan.net/npm/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://mirror2.chabokan.net/npm/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-align": { + "version": "1.12.4", + "resolved": "https://mirror2.chabokan.net/npm/dom-align/-/dom-align-1.12.4.tgz", + "integrity": "sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==", + "license": "MIT" + }, + "node_modules/dom-scroll-into-view": { + "version": "2.0.1", + "resolved": "https://mirror2.chabokan.net/npm/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", + "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==", + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://mirror2.chabokan.net/npm/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "license": "MIT" + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://mirror2.chabokan.net/npm/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://mirror2.chabokan.net/npm/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "license": "MIT", + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://mirror2.chabokan.net/npm/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://mirror2.chabokan.net/npm/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://mirror2.chabokan.net/npm/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://mirror2.chabokan.net/npm/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://mirror2.chabokan.net/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://mirror2.chabokan.net/npm/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@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": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.2", + "resolved": "https://mirror2.chabokan.net/npm/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-plugin-prettier": { + "version": "5.5.6", + "resolved": "https://mirror2.chabokan.net/npm/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz", + "integrity": "sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.1", + "synckit": "^0.11.13" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@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": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.33.0", + "resolved": "https://mirror2.chabokan.net/npm/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz", + "integrity": "sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "vue-eslint-parser": "^9.4.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://mirror2.chabokan.net/npm/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/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://mirror2.chabokan.net/npm/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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://mirror2.chabokan.net/npm/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "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/esquery": { + "version": "1.7.0", + "resolved": "https://mirror2.chabokan.net/npm/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://mirror2.chabokan.net/npm/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://mirror2.chabokan.net/npm/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://mirror2.chabokan.net/npm/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://mirror2.chabokan.net/npm/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exsolve": { + "version": "1.1.0", + "resolved": "https://mirror2.chabokan.net/npm/exsolve/-/exsolve-1.1.0.tgz", + "integrity": "sha512-D+42+T12DdIlJM3uepa55qGiL3sYdLBOxIl2ifQCzCHz4c7eiolaHsi3BIqEr7JxBzxv2pYZQX9kw16ziMcEmw==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://mirror2.chabokan.net/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://mirror2.chabokan.net/npm/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://mirror2.chabokan.net/npm/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "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.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://mirror2.chabokan.net/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://mirror2.chabokan.net/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://mirror2.chabokan.net/npm/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://mirror2.chabokan.net/npm/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://mirror2.chabokan.net/npm/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://mirror2.chabokan.net/npm/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://mirror2.chabokan.net/npm/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.4.3", + "resolved": "https://mirror2.chabokan.net/npm/flatted/-/flatted-3.4.3.tgz", + "integrity": "sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/follow-redirects": { + "version": "1.16.0", + "resolved": "https://mirror2.chabokan.net/npm/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://mirror2.chabokan.net/npm/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://mirror2.chabokan.net/npm/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://mirror2.chabokan.net/npm/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://mirror2.chabokan.net/npm/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://mirror2.chabokan.net/npm/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "license": "ISC", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://mirror2.chabokan.net/npm/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://mirror2.chabokan.net/npm/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://mirror2.chabokan.net/npm/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC", + "optional": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://mirror2.chabokan.net/npm/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://mirror2.chabokan.net/npm/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://mirror2.chabokan.net/npm/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://mirror2.chabokan.net/npm/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://mirror2.chabokan.net/npm/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://mirror2.chabokan.net/npm/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://mirror2.chabokan.net/npm/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://mirror2.chabokan.net/npm/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://mirror2.chabokan.net/npm/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://mirror2.chabokan.net/npm/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://mirror2.chabokan.net/npm/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://mirror2.chabokan.net/npm/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://mirror2.chabokan.net/npm/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.16.2", + "resolved": "https://mirror2.chabokan.net/npm/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://mirror2.chabokan.net/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://mirror2.chabokan.net/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://mirror2.chabokan.net/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://mirror2.chabokan.net/npm/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://mirror2.chabokan.net/npm/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://mirror2.chabokan.net/npm/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://mirror2.chabokan.net/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://mirror2.chabokan.net/npm/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://mirror2.chabokan.net/npm/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.3.0", + "resolved": "https://mirror2.chabokan.net/npm/js-yaml/-/js-yaml-4.3.0.tgz", + "integrity": "sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://mirror2.chabokan.net/npm/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://mirror2.chabokan.net/npm/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-without-jsonify": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/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/keyv": { + "version": "4.5.4", + "resolved": "https://mirror2.chabokan.net/npm/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://mirror2.chabokan.net/npm/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "license": "MIT" + }, + "node_modules/less": { + "version": "4.8.1", + "resolved": "https://mirror2.chabokan.net/npm/less/-/less-4.8.1.tgz", + "integrity": "sha512-jQ3lRIo1aUtiWVYXZ7mk4+V4BjCGswF3IxTLJ+4RUta8ZiHh8lhkig2G8dya2eCcyR1dYUvzuV46EkJN8PSwww==", + "devOptional": true, + "license": "Apache-2.0", + "dependencies": { + "copy-anything": "^3.0.5", + "parse-node-version": "^1.0.1" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "make-dir": "^5.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "probe-image-size": "^7.2.3", + "source-map": "~0.6.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/local-pkg": { + "version": "0.4.3", + "resolved": "https://mirror2.chabokan.net/npm/local-pkg/-/local-pkg-0.4.3.tgz", + "integrity": "sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://mirror2.chabokan.net/npm/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://mirror2.chabokan.net/npm/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://mirror2.chabokan.net/npm/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://mirror2.chabokan.net/npm/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://mirror2.chabokan.net/npm/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/make-dir": { + "version": "5.1.0", + "resolved": "https://mirror2.chabokan.net/npm/make-dir/-/make-dir-5.1.0.tgz", + "integrity": "sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://mirror2.chabokan.net/npm/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://mirror2.chabokan.net/npm/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "license": "CC0-1.0" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://mirror2.chabokan.net/npm/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://mirror2.chabokan.net/npm/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://mirror2.chabokan.net/npm/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://mirror2.chabokan.net/npm/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://mirror2.chabokan.net/npm/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://mirror2.chabokan.net/npm/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://mirror2.chabokan.net/npm/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://mirror2.chabokan.net/npm/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://mirror2.chabokan.net/npm/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.16", + "resolved": "https://mirror2.chabokan.net/npm/nanoid/-/nanoid-3.3.16.tgz", + "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "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" + } + }, + "node_modules/nanopop": { + "version": "2.4.2", + "resolved": "https://mirror2.chabokan.net/npm/nanopop/-/nanopop-2.4.2.tgz", + "integrity": "sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==", + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://mirror2.chabokan.net/npm/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://mirror2.chabokan.net/npm/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true, + "license": "MIT" + }, + "node_modules/needle": { + "version": "3.5.0", + "resolved": "https://mirror2.chabokan.net/npm/needle/-/needle-3.5.0.tgz", + "integrity": "sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w==", + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.7", + "resolved": "https://mirror2.chabokan.net/npm/node-fetch-native/-/node-fetch-native-1.6.7.tgz", + "integrity": "sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://mirror2.chabokan.net/npm/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://mirror2.chabokan.net/npm/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/ofetch": { + "version": "1.5.1", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://mirror2.chabokan.net/npm/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://mirror2.chabokan.net/npm/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "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" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://mirror2.chabokan.net/npm/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://mirror2.chabokan.net/npm/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-manager-detector": { + "version": "1.8.0", + "resolved": "https://mirror2.chabokan.net/npm/package-manager-detector/-/package-manager-detector-1.8.0.tgz", + "integrity": "sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A==", + "license": "MIT" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "devOptional": true, + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://mirror2.chabokan.net/npm/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://mirror2.chabokan.net/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://mirror2.chabokan.net/npm/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://mirror2.chabokan.net/npm/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://mirror2.chabokan.net/npm/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://mirror2.chabokan.net/npm/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://mirror2.chabokan.net/npm/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://mirror2.chabokan.net/npm/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "2.3.1", + "resolved": "https://mirror2.chabokan.net/npm/pinia/-/pinia-2.3.1.tgz", + "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.3", + "vue-demi": "^0.14.10" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.4.4", + "vue": "^2.7.0 || ^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://mirror2.chabokan.net/npm/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/postcss": { + "version": "8.5.25", + "resolved": "https://mirror2.chabokan.net/npm/postcss/-/postcss-8.5.25.tgz", + "integrity": "sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.16", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.4", + "resolved": "https://mirror2.chabokan.net/npm/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", + "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://mirror2.chabokan.net/npm/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://mirror2.chabokan.net/npm/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/probe-image-size": { + "version": "7.3.0", + "resolved": "https://mirror2.chabokan.net/npm/probe-image-size/-/probe-image-size-7.3.0.tgz", + "integrity": "sha512-7CaDeBwiAbh6ohXsvLbAZhO7wzsZAmaevfxe39qvCwRh8LyaZfDlBGGLU1CCTgrTLtCOdwBBhjOrIHaIIimHfQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "lodash.merge": "^4.6.2", + "needle": "^2.5.2", + "stream-parser": "~0.3.1" + } + }, + "node_modules/probe-image-size/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://mirror2.chabokan.net/npm/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/probe-image-size/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://mirror2.chabokan.net/npm/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/probe-image-size/node_modules/needle": { + "version": "2.9.1", + "resolved": "https://mirror2.chabokan.net/npm/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://mirror2.chabokan.net/npm/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://mirror2.chabokan.net/npm/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT", + "optional": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://mirror2.chabokan.net/npm/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://mirror2.chabokan.net/npm/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://mirror2.chabokan.net/npm/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/readdirp": { + "version": "3.6.0", + "resolved": "https://mirror2.chabokan.net/npm/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://mirror2.chabokan.net/npm/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.12", + "resolved": "https://mirror2.chabokan.net/npm/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "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" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://mirror2.chabokan.net/npm/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://mirror2.chabokan.net/npm/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://mirror2.chabokan.net/npm/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.30.0", + "resolved": "https://mirror2.chabokan.net/npm/rollup/-/rollup-3.30.0.tgz", + "integrity": "sha512-kQvGasUgN+AlWGliFn2POSajRQEsULVYFGTvOZmK06d7vCD+YhZztt70kGk3qaeAXeWYL5eO7zx+rAubBc55eA==", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://mirror2.chabokan.net/npm/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://mirror2.chabokan.net/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT", + "optional": true + }, + "node_modules/sax": { + "version": "1.6.1", + "resolved": "https://mirror2.chabokan.net/npm/sax/-/sax-1.6.1.tgz", + "integrity": "sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q==", + "license": "BlueOak-1.0.0", + "optional": true, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://mirror2.chabokan.net/npm/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", + "license": "MIT", + "dependencies": { + "compute-scroll-into-view": "^1.0.20" + } + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://mirror2.chabokan.net/npm/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shallow-equal": { + "version": "1.2.1", + "resolved": "https://mirror2.chabokan.net/npm/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==", + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://mirror2.chabokan.net/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://mirror2.chabokan.net/npm/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://mirror2.chabokan.net/npm/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://mirror2.chabokan.net/npm/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/stream-parser": { + "version": "0.3.1", + "resolved": "https://mirror2.chabokan.net/npm/stream-parser/-/stream-parser-0.3.1.tgz", + "integrity": "sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==", + "license": "MIT", + "optional": true, + "dependencies": { + "debug": "2" + } + }, + "node_modules/stream-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://mirror2.chabokan.net/npm/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "optional": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stream-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://mirror2.chabokan.net/npm/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT", + "optional": true + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://mirror2.chabokan.net/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://mirror2.chabokan.net/npm/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/synckit": { + "version": "0.11.13", + "resolved": "https://mirror2.chabokan.net/npm/synckit/-/synckit-0.11.13.tgz", + "integrity": "sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.3.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://mirror2.chabokan.net/npm/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "1.2.4", + "resolved": "https://mirror2.chabokan.net/npm/tinyexec/-/tinyexec-1.2.4.tgz", + "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://mirror2.chabokan.net/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://mirror2.chabokan.net/npm/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://mirror2.chabokan.net/npm/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true, + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://mirror2.chabokan.net/npm/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://mirror2.chabokan.net/npm/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" + } + }, + "node_modules/typescript": { + "version": "5.1.6", + "resolved": "https://mirror2.chabokan.net/npm/typescript/-/typescript-5.1.6.tgz", + "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://mirror2.chabokan.net/npm/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "license": "MIT" + }, + "node_modules/unconfig": { + "version": "0.3.13", + "resolved": "https://mirror2.chabokan.net/npm/unconfig/-/unconfig-0.3.13.tgz", + "integrity": "sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng==", + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.7", + "defu": "^6.1.4", + "jiti": "^1.21.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://mirror2.chabokan.net/npm/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/unocss": { + "version": "0.55.7", + "resolved": "https://mirror2.chabokan.net/npm/unocss/-/unocss-0.55.7.tgz", + "integrity": "sha512-3W9P7vj2EhSk/4oPCHBS0VgrwSf5zZL6Az1/XARVOpBnRJtCM2szFInYxHkMgt9pkZTsW8SFCuk/g+QIJ6A8tg==", + "license": "MIT", + "dependencies": { + "@unocss/astro": "0.55.7", + "@unocss/cli": "0.55.7", + "@unocss/core": "0.55.7", + "@unocss/extractor-arbitrary-variants": "0.55.7", + "@unocss/postcss": "0.55.7", + "@unocss/preset-attributify": "0.55.7", + "@unocss/preset-icons": "0.55.7", + "@unocss/preset-mini": "0.55.7", + "@unocss/preset-tagify": "0.55.7", + "@unocss/preset-typography": "0.55.7", + "@unocss/preset-uno": "0.55.7", + "@unocss/preset-web-fonts": "0.55.7", + "@unocss/preset-wind": "0.55.7", + "@unocss/reset": "0.55.7", + "@unocss/transformer-attributify-jsx": "0.55.7", + "@unocss/transformer-attributify-jsx-babel": "0.55.7", + "@unocss/transformer-compile-class": "0.55.7", + "@unocss/transformer-directives": "0.55.7", + "@unocss/transformer-variant-group": "0.55.7", + "@unocss/vite": "0.55.7" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@unocss/webpack": "0.55.7", + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@unocss/webpack": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/unplugin": { + "version": "1.16.1", + "resolved": "https://mirror2.chabokan.net/npm/unplugin/-/unplugin-1.16.1.tgz", + "integrity": "sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==", + "license": "MIT", + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/unplugin-vue-components": { + "version": "0.25.2", + "resolved": "https://mirror2.chabokan.net/npm/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz", + "integrity": "sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA==", + "license": "MIT", + "dependencies": { + "@antfu/utils": "^0.7.5", + "@rollup/pluginutils": "^5.0.2", + "chokidar": "^3.5.3", + "debug": "^4.3.4", + "fast-glob": "^3.3.0", + "local-pkg": "^0.4.3", + "magic-string": "^0.30.1", + "minimatch": "^9.0.3", + "resolve": "^1.22.2", + "unplugin": "^1.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/unplugin-vue-components/node_modules/brace-expansion": { + "version": "2.1.3", + "resolved": "https://mirror2.chabokan.net/npm/brace-expansion/-/brace-expansion-2.1.3.tgz", + "integrity": "sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/unplugin-vue-components/node_modules/minimatch": { + "version": "9.0.9", + "resolved": "https://mirror2.chabokan.net/npm/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://mirror2.chabokan.net/npm/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://mirror2.chabokan.net/npm/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "4.5.14", + "resolved": "https://mirror2.chabokan.net/npm/vite/-/vite-4.5.14.tgz", + "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", + "license": "MIT", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://mirror2.chabokan.net/npm/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.40", + "resolved": "https://mirror2.chabokan.net/npm/vue/-/vue-3.5.40.tgz", + "integrity": "sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.40", + "@vue/compiler-sfc": "3.5.40", + "@vue/runtime-dom": "3.5.40", + "@vue/server-renderer": "3.5.40", + "@vue/shared": "3.5.40" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://mirror2.chabokan.net/npm/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://mirror2.chabokan.net/npm/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://mirror2.chabokan.net/npm/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-tsc": { + "version": "2.2.12", + "resolved": "https://mirror2.chabokan.net/npm/vue-tsc/-/vue-tsc-2.2.12.tgz", + "integrity": "sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.15", + "@vue/language-core": "2.2.12" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/vue-types": { + "version": "3.0.2", + "resolved": "https://mirror2.chabokan.net/npm/vue-types/-/vue-types-3.0.2.tgz", + "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", + "license": "MIT", + "dependencies": { + "is-plain-object": "3.0.1" + }, + "engines": { + "node": ">=10.15.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://mirror2.chabokan.net/npm/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://mirror2.chabokan.net/npm/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://mirror2.chabokan.net/npm/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://mirror2.chabokan.net/npm/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://mirror2.chabokan.net/npm/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://mirror2.chabokan.net/npm/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://mirror2.chabokan.net/npm/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..3c287b7 --- /dev/null +++ b/package.json @@ -0,0 +1,40 @@ +{ + "name": "landing", + "version": "1.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview", + "type-check": "vue-tsc --noEmit -p tsconfig.app.json --composite false", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", + "format": "prettier --write src/" + }, + "dependencies": { + "ant-design-vue": "^3.2.20", + "axios": "^1.6.2", + "lodash": "^4.17.21", + "pinia": "^2.1.4", + "unocss": "^0.55.1", + "unplugin-vue-components": "^0.25.1", + "vue": "^3.3.4", + "vue-router": "^4.2.4" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.3.2", + "@tsconfig/node18": "^18.2.0", + "@types/lodash": "^4.17.7", + "@types/node": "^18.17.0", + "@vitejs/plugin-vue": "^4.2.3", + "@vue/eslint-config-prettier": "^8.0.0", + "@vue/eslint-config-typescript": "^11.0.3", + "@vue/tsconfig": "^0.4.0", + "eslint": "^8.45.0", + "eslint-plugin-vue": "^9.15.1", + "less": "^4.2.0", + "prettier": "^3.0.0", + "typescript": "~5.1.6", + "vite": "^4.4.6", + "vue-tsc": "^2.1.10" + } +} diff --git a/public/192-logo.png b/public/192-logo.png new file mode 100644 index 0000000..4df3dc5 Binary files /dev/null and b/public/192-logo.png differ diff --git a/public/192.png b/public/192.png new file mode 100644 index 0000000..4bcab99 Binary files /dev/null and b/public/192.png differ diff --git a/public/32.png b/public/32.png new file mode 100644 index 0000000..86f1e38 Binary files /dev/null and b/public/32.png differ diff --git a/public/36-logo.png b/public/36-logo.png new file mode 100644 index 0000000..69399fc Binary files /dev/null and b/public/36-logo.png differ diff --git a/public/512-logo.png b/public/512-logo.png new file mode 100644 index 0000000..8f803b5 Binary files /dev/null and b/public/512-logo.png differ diff --git a/public/512.png b/public/512.png new file mode 100644 index 0000000..d670c73 Binary files /dev/null and b/public/512.png differ diff --git a/public/54136786.txt b/public/54136786.txt new file mode 100644 index 0000000..e69de29 diff --git a/public/animIsTracking.json b/public/animIsTracking.json new file mode 100644 index 0000000..568761c --- /dev/null +++ b/public/animIsTracking.json @@ -0,0 +1 @@ +{"v":"5.7.4","fr":29.9700012207031,"ip":0,"op":100.000004073084,"w":500,"h":500,"nm":"animation-deliver","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"star2 Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[44.643,395.975,0],"ix":2,"l":2},"a":{"a":0,"k":[27.712,27.691,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.691,0],[0,0.691],[0,0],[0.691,0],[0,-0.691],[0,0]],"o":[[0.691,0],[0,0],[0,-0.691],[-0.691,0],[0,0],[0,0.691]],"v":[[0,5.038],[1.25,3.786],[1.25,-3.788],[0,-5.038],[-1.25,-3.788],[-1.25,3.786]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.651000019148,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.868,50.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.69,0],[0,0],[0,0.691],[0.691,0],[0,0],[0,-0.69]],"o":[[0,0],[0.691,0],[0,-0.69],[0,0],[-0.69,0],[0,0.691]],"v":[[-3.788,1.251],[3.788,1.251],[5.038,-0.001],[3.788,-1.251],[-3.788,-1.251],[-5.038,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.651000019148,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.599,44.348],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.69,0],[0,0],[0,0.691],[0.691,0],[0,0],[0,-0.69]],"o":[[0,0],[0.691,0],[0,-0.69],[0,0],[-0.69,0],[0,0.691]],"v":[[-3.787,1.251],[3.788,1.251],[5.038,-0.001],[3.788,-1.251],[-3.787,-1.251],[-5.037,-0.001]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.651000019148,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.137,44.348],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.691,0],[0,0.69],[0,0],[0.691,0],[0,-0.691],[0,0]],"o":[[0.691,0],[0,0],[0,-0.691],[-0.691,0],[0,0],[0,0.69]],"v":[[0,5.038],[1.25,3.786],[1.25,-3.788],[0,-5.038],[-1.25,-3.788],[-1.25,3.786]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.651000019148,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.868,38.08],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.691,0],[0,0.69],[0,0],[0.691,0],[0,-0.691],[0,0]],"o":[[0.691,0],[0,0],[0,-0.691],[-0.691,0],[0,0],[0,0.69]],"v":[[0,5.037],[1.25,3.787],[1.25,-3.787],[0,-5.037],[-1.25,-3.787],[-1.25,3.787]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.556,27.016],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.69,0],[0,0],[0,0.69],[0.691,0],[0,0],[0,-0.69]],"o":[[0,0],[0.691,0],[0,-0.69],[0,0],[-0.69,0],[0,0.69]],"v":[[-3.788,1.25],[3.788,1.25],[5.038,0],[3.788,-1.25],[-3.788,-1.25],[-5.038,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.288,21.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.69,0],[0,0],[0,0.69],[0.691,0],[0,0],[0,-0.69]],"o":[[0,0],[0.691,0],[0,-0.69],[0,0],[-0.69,0],[0,0.69]],"v":[[-3.788,1.25],[3.788,1.25],[5.038,0],[3.788,-1.25],[-3.788,-1.25],[-5.038,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.825,21.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.691,0],[0,0.69],[0,0],[0.691,0],[0,-0.692],[0,0]],"o":[[0.691,0],[0,0],[0,-0.692],[-0.691,0],[0,0],[0,0.69]],"v":[[0,5.038],[1.25,3.788],[1.25,-3.786],[0,-5.038],[-1.25,-3.786],[-1.25,3.788]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.556,15.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-3.864],[-3.865,0],[0,3.865],[3.864,0]],"o":[[0,3.865],[3.864,0],[0,-3.864],[-3.865,0]],"v":[[-7.008,-0.001],[0.001,7.008],[7.008,-0.001],[0.001,-7.008]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[0,5.356],[-5.356,0],[0,-5.355],[5.355,0]],"o":[[0,-5.355],[5.355,0],[0,5.356],[-5.356,0]],"v":[[-9.714,-0.001],[0.001,-9.714],[9.714,-0.001],[0.001,9.714]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.868,9.964],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":4,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":30,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":50,"s":[0]},{"t":70.0000028511585,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Trim Paths 1').offset;"},"m":1,"ix":10,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"star Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[345.161,128.371,0],"ix":2,"l":2},"a":{"a":0,"k":[27.712,27.691,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0.69],[0,0],[-0.691,0],[0,-0.691],[0,0]],"o":[[-0.691,0],[0,0],[0,-0.691],[0.69,0],[0,0],[0,0.69]],"v":[[0.001,5.037],[-1.251,3.787],[-1.251,-3.787],[0.001,-5.037],[1.251,-3.787],[1.251,3.787]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.556,50.094],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0],[0,0.69],[-0.691,0],[0,0],[0,-0.691]],"o":[[0,0],[-0.691,0],[0,-0.691],[0,0],[0.69,0],[0,0.69]],"v":[[3.788,1.25],[-3.788,1.25],[-5.038,0],[-3.788,-1.25],[3.788,-1.25],[5.038,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[17.825,44.348],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0],[0,0.69],[-0.691,0],[0,0],[0,-0.691]],"o":[[0,0],[-0.691,0],[0,-0.691],[0,0],[0.69,0],[0,0.69]],"v":[[3.788,1.25],[-3.788,1.25],[-5.038,0],[-3.788,-1.25],[3.788,-1.25],[5.038,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[5.288,44.348],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0.69],[0,0],[-0.691,0],[0,-0.691],[0,0]],"o":[[-0.691,0],[0,0],[0,-0.691],[0.69,0],[0,0],[0,0.69]],"v":[[0.001,5.037],[-1.251,3.787],[-1.251,-3.786],[0.001,-5.037],[1.251,-3.786],[1.251,3.787]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.556,38.079],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0.69],[0,0],[-0.69,0],[0,-0.69],[0,0]],"o":[[-0.69,0],[0,0],[0,-0.69],[0.69,0],[0,0],[0,0.69]],"v":[[0.001,5.037],[-1.251,3.787],[-1.251,-3.787],[0.001,-5.037],[1.251,-3.787],[1.251,3.787]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.868,27.016],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0],[0,0.69],[-0.692,0],[0,0],[0,-0.691]],"o":[[0,0],[-0.692,0],[0,-0.691],[0,0],[0.69,0],[0,0.69]],"v":[[3.787,1.25],[-3.787,1.25],[-5.038,0],[-3.787,-1.25],[3.787,-1.25],[5.038,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.137,21.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":2,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0],[0,0.69],[-0.692,0],[0,0],[0,-0.691]],"o":[[0,0],[-0.692,0],[0,-0.691],[0,0],[0.69,0],[0,0.69]],"v":[[3.787,1.25],[-3.787,1.25],[-5.038,0],[-3.787,-1.25],[3.787,-1.25],[5.038,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[37.6,21.27],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":2,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.69,0],[0,0.691],[0,0],[-0.69,0],[0,-0.691],[0,0]],"o":[[-0.69,0],[0,0],[0,-0.691],[0.69,0],[0,0],[0,0.691]],"v":[[0.001,5.037],[-1.251,3.787],[-1.251,-3.786],[0.001,-5.037],[1.251,-3.786],[1.251,3.787]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.868,15.001],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":2,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[3.864,0],[0,-3.864],[-3.864,0],[0,3.865]],"o":[[-3.864,0],[0,3.865],[3.864,0],[0,-3.864]],"v":[[0.001,-7.008],[-7.008,0],[0.001,7.008],[7.009,0]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ind":1,"ty":"sh","ix":2,"ks":{"a":0,"k":{"i":[[5.355,0],[0,5.356],[-5.356,0],[0,-5.356]],"o":[[-5.356,0],[0,-5.356],[5.355,0],[0,5.356]],"v":[[0.001,9.713],[-9.714,0],[0.001,-9.713],[9.714,0]],"c":true},"ix":2},"nm":"Path 2","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":1,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.651000019148,0.352999997606,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[11.556,9.963],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":4,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":0,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":20,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[100]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":60,"s":[0]},{"t":80.0000032584668,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3,"x":"var $bm_rt;\n$bm_rt = content('Trim Paths 1').offset;"},"m":1,"ix":10,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"men Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[299.564,277.306,0],"ix":2,"l":2},"a":{"a":0,"k":[192.066,204.884,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":34,"nm":"Puppet","np":6,"mn":"ADBE FreePin3","ix":1,"en":1,"ef":[{"ty":7,"nm":"Puppet Engine","mn":"ADBE FreePin3 Puppet Engine","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Mesh Rotation Refinement","mn":"ADBE FreePin3 Auto Rotate Pins","ix":2,"v":{"a":0,"k":20,"ix":2}},{"ty":7,"nm":"On Transparent","mn":"ADBE FreePin3 On Transparent","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":29.9700012207031,"nm":"arap","np":3,"mn":"ADBE FreePin3 ARAP Group","ix":4,"en":1,"ef":[{"ty":6,"nm":"Auto-traced Shapes","mn":"ADBE FreePin3 Outlines","ix":1,"v":0},{"ty":1,"nm":"Mesh","np":2,"mn":"ADBE FreePin3 Mesh Group","ix":2,"en":1,"ef":[{"nm":"Mesh 1","np":8,"mn":"ADBE FreePin3 Mesh Atom","ix":1,"en":1,"ef":[{"ty":6,"nm":"Mesh","mn":"ADBE FreePin3 Mesh","ix":1,"v":0},{"ty":0,"nm":"Triangles","mn":"ADBE FreePin3 Mesh Tri Count","ix":2,"v":{"a":0,"k":50,"ix":2}},{"ty":0,"nm":"Density","mn":"ADBE FreePin3 Mesh Tri Density","ix":3,"v":{"a":0,"k":10,"ix":3}},{"ty":0,"nm":"Expansion","mn":"ADBE FreePin3 Mesh Expansion","ix":4,"v":{"a":0,"k":3,"ix":4}},{"nm":"Deform","np":9,"mn":"ADBE FreePin3 PosPins","ix":5,"en":1,"ef":[{"nm":"Puppet Pin 8","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":1,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":73,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":1,"k":[{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[240,101],"to":[3.333,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[260,101],"to":[0,0],"ti":[3.333,0]},{"i":{"x":0.667,"y":0},"o":{"x":0.333,"y":0},"t":0,"s":[240,101],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[240,101],"to":[3.333,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[260,101],"to":[0,0],"ti":[3.333,0]},{"t":null,"s":[240,101]}],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"nm":"Puppet Pin 7","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":2,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":74,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":0,"k":[245,434],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"nm":"Puppet Pin 6","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":3,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":75,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":1,"k":[{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[433,269],"to":[0,5.167],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[433,300],"to":[0,0],"ti":[0,5.167]},{"i":{"x":0.667,"y":0},"o":{"x":0.167,"y":0},"t":0,"s":[433,269],"to":[0,0],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[433,269],"to":[0,5.167],"ti":[0,0]},{"i":{"x":0,"y":0},"o":{"x":0,"y":0},"t":0,"s":[433,300],"to":[0,0],"ti":[0,5.167]},{"t":null,"s":[433,269]}],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"nm":"Puppet Pin 5","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":4,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":76,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":0,"k":[305,298],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"nm":"Puppet Pin 4","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":5,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":77,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":0,"k":[240,211],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"nm":"Puppet Pin 3","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":6,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":78,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":0,"k":[251,318],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"nm":"Puppet Pin 2","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":7,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":79,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":0,"k":[142,367],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]},{"nm":"Puppet Pin 1","np":7,"mn":"ADBE FreePin3 PosPin Atom","ix":8,"en":1,"ef":[{"ty":3,"nm":"Vertex Offset","mn":"ADBE FreePin3 PosPin Vtx Offset","ix":1,"v":{"a":0,"k":[0,0],"ix":1}},{"ty":0,"nm":"Vertex Index","mn":"ADBE FreePin3 PosPin Vtx Index","ix":2,"v":{"a":0,"k":80,"ix":2}},{"ty":7,"nm":"Pin Type","mn":"ADBE FreePin3 PosPin Type","ix":3,"v":{"a":0,"k":1,"ix":3}},{"ty":3,"nm":"Position","mn":"ADBE FreePin3 PosPin Position","ix":4,"v":{"a":0,"k":[138,315],"ix":4}},{"ty":0,"nm":"Scale","mn":"ADBE FreePin3 PosPin Scale","ix":5,"v":{"a":0,"k":100,"ix":5}},{"ty":0,"nm":"Rotation","mn":"ADBE FreePin3 PosPin Rotation","ix":6,"v":{"a":0,"k":0,"ix":6}}]}]},{"nm":"Overlap","np":1,"mn":"ADBE FreePin3 HghtPins","ix":6,"en":1,"ef":[]},{"nm":"Stiffness","np":1,"mn":"ADBE FreePin3 StarchPins","ix":7,"en":1,"ef":[]}]}]}]}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.074,0],[0.108,0.525],[-0.599,0.122],[0,0],[-0.122,-0.599],[0.599,-0.123],[0,0]],"o":[[-0.514,0],[-0.122,-0.597],[0,0],[0.594,-0.12],[0.122,0.599],[0,0],[-0.075,0.014]],"v":[[-3.707,1.912],[-4.79,1.026],[-3.926,-0.277],[3.485,-1.792],[4.79,-0.929],[3.927,0.376],[-3.484,1.89]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[92.977,202.9],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.395,0],[0.166,0.088],[-0.287,0.539],[0,0],[-0.538,-0.287],[0.287,-0.539],[0,0]],"o":[[-0.176,0],[-0.539,-0.286],[0,0],[0.287,-0.541],[0.539,0.286],[0,0],[-0.199,0.374]],"v":[[-12.014,23.779],[-12.534,23.649],[-12.991,22.154],[11.037,-23.034],[12.533,-23.492],[12.99,-21.996],[-11.038,23.192]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[83.044,215.339],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":3,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.278,-7.4],[-0.048,-0.933],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[-5.162,10.907],[-0.47,0.973],[-5.089,10.225],[-3.568,3.629],[-0.385,0.352],[-2.567,1.557],[-8.952,-5.429]],"o":[[0.126,0.875],[1.181,23.294],[0,0],[0,0],[0,0],[0,0],[0,0],[1.525,-4.942],[0.421,-0.891],[2.916,-6.094],[3.62,-7.278],[0.377,-0.382],[2.251,-2.109],[9.252,-5.608],[5.549,5.97]],"v":[[41.04,-23.547],[41.295,-20.839],[14.163,49.078],[10.562,47.646],[9.131,47.079],[-14.787,37.557],[-16.254,36.973],[-42.476,26.531],[-33.835,5.699],[-32.502,2.913],[-20.678,-21.171],[-10.128,-36.93],[-8.985,-38.042],[-1.816,-43.389],[27.875,-43.65]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[56.872,188.934],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.174,-2.662],[2.515,3.944],[-4.174,2.663],[-2.515,-3.945]],"o":[[-4.175,2.663],[-2.515,-3.945],[4.175,-2.662],[2.515,3.943]],"v":[[4.562,7.152],[-7.571,4.828],[-4.562,-7.154],[7.571,-4.828]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.15,261.246],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":3,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.5,-5.488],[5.809,-3.705],[3.5,5.487],[-5.81,3.705]],"o":[[3.5,5.488],[-5.81,3.706],[-3.501,-5.489],[5.809,-3.705]],"v":[[10.52,-6.709],[6.338,9.937],[-10.519,6.709],[-6.338,-9.938]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.224000010771,0.004000000393,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[115.15,261.246],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":3,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.808,-2.99],[-13.854,-11.899],[-2.027,2.455],[7.457,21.854]],"o":[[0,0],[3.082,-0.081],[0,0],[-3.507,0.809]],"v":[[-14.896,-13.869],[6.334,19.586],[14.896,14.721],[-6.922,-19.586]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.224000010771,0.004000000393,0.156999999402,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[120.22,263.323],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.363,0],[0.185,0.119],[0.076,-0.006],[0.054,0.608],[-0.608,0.055],[-4.909,-3.16],[0.33,-0.513]],"o":[[-0.206,0],[-4.265,-2.745],[-0.608,0.053],[-0.056,-0.609],[0.341,-0.031],[0.514,0.331],[-0.212,0.328]],"v":[[6.265,2.598],[5.667,2.422],[-6.27,0.328],[-7.469,-0.674],[-6.468,-1.875],[6.864,0.562],[7.196,2.09]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[39.252,270.64],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.2,0],[0.21,0.336],[-0.518,0.323],[-0.431,0.126],[-0.171,-0.585],[0.587,-0.171],[6.087,-3.806]],"o":[[-0.369,0],[-0.324,-0.517],[6.349,-3.969],[0.586,-0.171],[0.171,0.587],[-0.102,0.03],[-0.182,0.114]],"v":[[-8.341,4.658],[-9.28,4.137],[-8.928,2.614],[8.061,-4.487],[9.433,-3.736],[8.681,-2.364],[-7.756,4.489]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[38.276,275.557],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.702,6.729],[-0.935,3.72],[-5.942,3.558],[0,0],[-3.648,0.406],[1.082,-4.038],[2.198,-8.786],[1.081,-7.668],[0,-5.545]],"o":[[-7.075,10.388],[-13.747,-0.349],[-1.429,-3.559],[2.741,-10.901],[4.564,-2.733],[0,0],[3.649,-0.405],[0,0],[0,0],[0,0],[0,2.299]],"v":[[23.82,18.274],[0.29,30.952],[-22.419,14.233],[-23.535,3.003],[-22.879,-28.219],[-11.665,-11.332],[8.276,-27.407],[13.817,-18.606],[20.07,-7.539],[25.576,3.309],[28.82,9.895]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[139.735,238.772],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.532,-1.095],[1.33,-2.862],[0,0],[-0.912,2.101]],"o":[[-0.531,1.095],[-1.374,2.858],[0,0],[0.896,-2.116],[0,0]],"v":[[23.652,1.193],[22.058,4.481],[17.991,13.064],[-23.652,-6.738],[-20.936,-13.063]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[42.395,228.488],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[8.879,-6.001],[0,0],[0,0],[0,0],[2.242,-1.345],[4.638,-2.495],[10.477,-3.884],[5.891,-1.375],[7.177,-0.024],[4.059,0.803],[4.262,2.169],[1.999,1.48],[0.937,0.82],[0.446,0.425],[0,0],[0.243,0.275],[0.402,0.535],[0.5,0.92],[0.214,0.458],[0.178,0.447],[0,0],[0,0],[0.117,0.394],[0.166,0.701],[0.094,0.596],[0.008,1.464],[-0.101,1.111],[-0.134,0.969],[-0.754,2.907],[-0.84,2.627],[-1.849,4.861],[-2.802,6.597],[-0.913,2.101],[-0.264,0.601],[-4.225,9.058],[-2.153,4.517],[0,0],[0,0],[-12.103,-5.92],[5.923,-12.095],[0.151,-0.276],[0,0],[0,0],[0,0],[2.21,-4.29],[3.665,-7.525],[0.531,-1.095],[1.33,-2.862],[2.416,-5.701],[1.48,-4.068],[0.024,-0.074],[-1.894,0.369],[-4.01,1.309],[-8.158,4.018],[-4.01,2.237],[-1.959,1.163],[0,0],[0,0],[0,0],[-5.835,-9.406]],"o":[[0,0],[0,0],[0,0],[-2.226,1.408],[-4.48,2.697],[-9.289,4.987],[-5.242,1.934],[-5.899,1.355],[-3.584,0],[-4.05,-0.795],[-2.133,-1.094],[-0.989,-0.73],[-0.47,-0.409],[0,0],[-0.259,-0.259],[-0.486,-0.528],[-0.778,-1.013],[-0.267,-0.486],[-0.203,-0.438],[0,0],[0,0],[-0.142,-0.384],[-0.227,-0.753],[-0.126,-0.612],[-0.34,-2.214],[0,-1.455],[0.098,-1.139],[0.572,-3.791],[0.762,-2.887],[1.687,-5.231],[2.62,-6.868],[0.896,-2.116],[0.259,-0.604],[4.034,-9.232],[2.108,-4.533],[0,0],[0,0],[5.92,-12.103],[12.099,5.923],[-0.135,0.283],[0,0],[0,0],[0,0],[-2.262,4.26],[-3.864,7.489],[-0.532,1.095],[-1.375,2.858],[-2.692,5.758],[-1.801,4.257],[-0.024,0.072],[1.698,-0.15],[3.706,-0.71],[8.052,-2.644],[4.083,-2.015],[1.999,-1.119],[0,0],[0,0],[0,0],[9.406,-5.839],[5.704,9.179]],"v":[[61.759,49.07],[59.943,50.299],[58.26,51.415],[54.923,53.555],[48.229,57.686],[34.561,65.464],[5.157,78.969],[-11.446,84.025],[-30.835,86.432],[-42.301,85.363],[-54.931,81.061],[-61.155,77.197],[-64.05,74.853],[-65.416,73.589],[-65.631,73.385],[-66.385,72.592],[-67.776,70.937],[-69.824,67.823],[-70.585,66.343],[-71.165,65.017],[-71.433,64.348],[-71.64,63.764],[-72.025,62.592],[-72.568,60.517],[-72.897,58.733],[-73.29,53.405],[-73.112,49.59],[-72.747,46.476],[-70.687,36.749],[-68.266,28.535],[-62.947,13.496],[-54.797,-6.651],[-52.08,-12.976],[-51.298,-14.781],[-38.887,-42.181],[-32.493,-55.743],[-29.245,-62.498],[-25.901,-69.326],[6.739,-80.512],[17.926,-47.877],[17.499,-47.05],[17.325,-46.739],[13.927,-40.466],[10.521,-34.079],[3.807,-21.251],[-7.492,1.28],[-9.086,4.568],[-13.153,13.151],[-20.852,30.359],[-25.84,42.921],[-25.908,43.127],[-20.475,42.348],[-8.794,39.243],[15.699,29.017],[27.851,22.607],[33.803,19.185],[36.722,17.429],[39.406,15.771],[39.978,15.41],[67.586,21.873]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[73.54,228.401],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":3,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.991,-15.264],[15.519,11.895],[21.23,-28.86]],"o":[[0,0],[-15.517,-11.894],[0,0]],"v":[[14.594,19.125],[28.63,-11.143],[-44.149,23.038]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[151.261,23.288],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":3,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[12.505,-6.618],[0,0],[-8.705,0.262]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[10.597,-3.955],[-11.566,-0.212],[-9.144,6.83],[11.566,1.808]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[124.404,23.004],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":3,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.764,-5.067],[0,0],[-1.141,7.956],[-0.893,2.366],[0.842,-0.799],[0.343,-2.39]],"o":[[0,0],[-4.475,-4.647],[0.505,-3.545],[-0.961,0.716],[-0.593,1.941],[-1.212,8.433]],"v":[[2.625,14.665],[4.009,13.423],[-1.013,-5.538],[1.389,-14.665],[-1.316,-12.391],[-2.797,-5.83]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[99.224,36.078],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":3,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0,0],[25.916,-0.306],[5.563,-4.159],[0.843,-0.799],[0.904,-6.012]],"o":[[0,0],[0,0],[0,0],[21.467,-11.664],[0,0],[-9.388,0.109],[-0.961,0.715],[-5.015,4.726],[-1.933,12.886]],"v":[[-30.067,23.133],[-19.349,13.503],[-17.964,12.26],[-14.932,9.534],[34.12,-1.86],[1.861,-22.827],[-20.585,-15.827],[-23.29,-13.554],[-32.187,3.196]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[121.197,37.24],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":3,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[5.162,0],[0,0.481],[-0.48,0],[-0.498,0.731],[0.035,0.075],[-0.433,0.208],[-0.208,-0.434],[-3.54,-7.294],[0.11,-0.238]],"o":[[-0.48,0],[0,-0.481],[3.204,0],[-3.474,-7.163],[-0.207,-0.433],[0.435,-0.208],[0.035,0.075],[0.114,0.236],[-0.072,0.153]],"v":[[-2.558,9.995],[-3.429,9.124],[-2.558,8.253],[2.641,5.829],[-4.321,-8.626],[-3.911,-9.787],[-2.748,-9.377],[4.412,5.488],[4.419,6.237]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[148.474,69.114],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":3,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.193,0],[0.172,0.212],[-0.373,0.303],[-2.616,-0.669],[0.119,-0.465],[0.466,0.12],[0.758,-0.615]],"o":[[-0.254,0],[-0.302,-0.373],[0.347,-0.283],[0.466,0.119],[-0.12,0.467],[-1.504,-0.384],[-0.161,0.131]],"v":[[-2.652,2.144],[-3.329,1.822],[-3.204,0.598],[2.883,-1.476],[3.512,-0.416],[2.451,0.212],[-2.105,1.951]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[102.189,82.826],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":3,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.032,0],[0.05,0.446],[0.307,0.123],[-0.178,0.446],[-0.447,-0.179],[-1.058,-9.671],[0.478,-0.052]],"o":[[-0.438,0],[-0.94,-8.606],[-0.446,-0.18],[0.179,-0.446],[0.345,0.138],[0.052,0.479],[-0.033,0.003]],"v":[[4.533,7.151],[3.667,6.376],[-4.79,-5.354],[-5.273,-6.487],[-4.143,-6.973],[5.4,6.186],[4.629,7.147]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[103.132,83.099],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 18","np":3,"cix":2,"bm":0,"ix":18,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[6.202,-8.935],[-10.116,6.576]],"o":[[0,0],[-5.11,7.364],[0,0]],"v":[[9.889,-6.374],[-4.779,-8.809],[9.889,11.169]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[98.933,82.506],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 19","np":3,"cix":2,"bm":0,"ix":19,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-3.678,3.527],[4.007,-1.893],[0,0],[0,0]],"o":[[-0.1,0.235],[-0.013,-0.013],[0,0],[0,0]],"v":[[3.578,-4.296],[-3.317,4.296],[-3.339,4.274],[-3.578,-0.176]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[109.122,95.133],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 20","np":3,"cix":2,"bm":0,"ix":20,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.117],[1.185,0],[0,2.117],[-1.184,0]],"o":[[0,2.117],[-1.184,0],[0,-2.117],[1.185,0]],"v":[[2.145,0],[-0.001,3.833],[-2.145,0],[-0.001,-3.833]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[154.706,68.451],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 21","np":3,"cix":2,"bm":0,"ix":21,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-2.117],[1.185,0],[0,2.117],[-1.184,0]],"o":[[0,2.117],[-1.184,0],[0,-2.117],[1.185,0]],"v":[[2.145,0],[-0.001,3.833],[-2.146,0],[-0.001,-3.833]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.43,68.451],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 22","np":3,"cix":2,"bm":0,"ix":22,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.216,-0.273],[5.383,-2.365],[7.69,3.931],[-2.622,-3.589],[2.905,-4.576],[4.642,-3.589],[-0.79,-2.106],[2.411,0.449],[0,0],[0,0],[-21.125,4.054],[-7.303,-8.052]],"o":[[-3.456,-1.223],[-7.782,3.418],[-7.69,-3.93],[2.618,3.588],[-2.906,4.573],[-1.955,1.512],[0.862,2.297],[-2.505,-0.636],[0,0],[0,0],[15.436,-2.963],[0.236,0.26]],"v":[[29.51,-12.143],[18.175,-9.862],[-5.999,-13.452],[-15.68,-8.324],[-16.251,2.745],[-15.398,13.036],[-16.445,18.911],[-20.012,23.108],[-26.046,18.034],[-26.714,5.689],[-8.385,-20.595],[28.828,-12.943]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[130.346,53.827],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 23","np":3,"cix":2,"bm":0,"ix":23,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-4.699,-5.725],[0,0],[2.494,1.073],[1.811,0.395],[-0.694,2.535]],"o":[[0,0],[-1.118,2.475],[-1.457,-0.627],[-2.57,-0.559],[0,0]],"v":[[7.824,1.061],[7.824,1.061],[1.318,3.59],[-3.669,1.954],[-7.13,-3.723]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[156.127,56.489],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 24","np":3,"cix":2,"bm":0,"ix":24,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[4.7,-5.725],[0,0],[-2.495,1.073],[-1.812,0.395],[0.695,2.535]],"o":[[0,0],[1.118,2.475],[1.457,-0.627],[2.569,-0.559],[0,0]],"v":[[-7.824,1.061],[-7.824,1.061],[-1.319,3.59],[3.669,1.954],[7.129,-3.723]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[131.948,56.489],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 25","np":3,"cix":2,"bm":0,"ix":25,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.655,-0.12],[0.091,0.089],[-0.35,0.359],[-0.36,-0.349],[-9.646,7.564],[-0.311,-0.395],[0.394,-0.31]],"o":[[-8.06,0.366],[-0.359,-0.35],[0.35,-0.359],[0.452,0.439],[0.394,-0.309],[0.31,0.395],[-2.701,2.118]],"v":[[3.416,2.485],[-11.65,-3.852],[-11.667,-5.136],[-10.383,-5.154],[10.432,-2.061],[11.707,-1.907],[11.553,-0.631]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.187999994615,0.349000010771,0.611999990426,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[146.388,87.207],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 26","np":3,"cix":2,"bm":0,"ix":26,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-6.926,2.426],[-6.516,-2.684],[-6.591,-4.118],[14.898,-4.901],[5.549,14.006],[0,0]],"o":[[0,0],[6.927,-2.427],[0,0],[4.418,2.761],[-14.899,4.901],[-5.55,-14.006],[0,0]],"v":[[-25.112,-25.107],[-11.649,-14.142],[10.114,-14.142],[26.986,-16.839],[15.39,20.206],[-25.619,6.723],[-31.404,-19.408]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[138.408,95.378],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 27","np":3,"cix":2,"bm":0,"ix":27,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0.588,0],[0,1.541],[-3.913,0],[-0.496,-0.044]],"o":[[-0.547,0.055],[-3.913,0],[0,-1.541],[0.53,0],[0,0]],"v":[[4.399,2.71],[2.689,2.792],[-4.399,0.001],[2.689,-2.792],[4.231,-2.725]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[160.464,76.935],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 28","np":3,"cix":2,"bm":0,"ix":28,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,-1.541],[3.917,0],[0,1.542],[-3.916,0]],"o":[[0,1.542],[-3.916,0],[0,-1.541],[3.917,0]],"v":[[7.092,0],[0,2.792],[-7.092,0],[0,-2.792]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[128.878,76.935],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 29","np":3,"cix":2,"bm":0,"ix":29,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[22.023,0.048],[0.776,0.796],[0,0],[0,0],[0,0],[0,0],[-21.126,4.054],[-7.304,-8.052],[-0.216,-0.273],[-0.393,-4.07],[0,0],[0,0]],"o":[[0,0],[-21.888,-0.041],[-0.013,-0.014],[0,0],[0,0],[0,0],[0,0],[15.435,-2.963],[0.235,0.259],[2.299,2.831],[0,0],[0,0],[0,0]],"v":[[32.256,22.443],[10.263,43.568],[-27.316,25.543],[-27.339,25.523],[-27.579,21.072],[-28.823,-2.025],[-29.49,-14.37],[-11.16,-40.653],[26.053,-33],[26.734,-32.201],[30.889,-21.848],[31.572,0.326],[31.74,5.761]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.122,73.885],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 30","np":3,"cix":2,"bm":0,"ix":30,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-3.288,-6.872],[8.85,2.276]],"o":[[0,0],[3.288,6.872],[0,0]],"v":[[-6.196,-6.955],[2.908,-6.955],[-5.184,11.55]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[165.371,79.184],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 31","np":3,"cix":2,"bm":0,"ix":31,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.216,-0.729],[0,0],[0,0]],"o":[[0,0],[-1.198,0.968],[-15.142,-5.994],[0,0],[0,0]],"v":[[14.894,-2.135],[14.894,8.401],[11.269,10.94],[-14.894,-10.94],[10.053,-4.854]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[131.483,119.456],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 32","np":3,"cix":2,"bm":0,"ix":32,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[1.216,-0.729],[0,0],[0,0],[0,0]],"o":[[0,0],[-1.198,0.968],[-17.783,10.68],[0,0],[0,0],[0,0]],"v":[[20.296,0.903],[20.296,11.144],[16.671,13.684],[-20.296,11.144],[-20.296,-24.364],[15.455,-2.11]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.081,116.712],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 33","np":3,"cix":2,"bm":0,"ix":33,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[9.087,-14.793],[-3.168,-3.432],[-4.232,-3.287],[0,0],[-3.188,3.344]],"o":[[0,0],[3.168,3.431],[4.231,3.288],[0,0],[0,0]],"v":[[-9.322,-5.594],[-8.395,4.818],[-4.43,17.191],[6.596,18.441],[11.563,-20.479]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[101.138,59.8],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 34","np":3,"cix":2,"bm":0,"ix":34,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-18.615,-4.847],[0.092,-6.61],[0.91,-6.009],[0,0],[6.51,1.441],[0,0]],"o":[[0,0],[0,0],[-0.911,6.009],[0,0],[-6.509,-1.442],[0,0]],"v":[[6.558,-17.079],[11.949,-4.844],[14.573,8.124],[10.632,21.926],[-0.933,-7.936],[-15.483,-14.195]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[153.906,47.257],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 35","np":3,"cix":2,"bm":0,"ix":35,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.347,0],[-5.637,4.317],[0.365,0.477],[0.475,-0.366],[7.374,1.012],[0.155,0.206],[0.481,-0.36],[-0.36,-0.48],[-19.46,-2.677]],"o":[[6.459,0],[0.478,-0.365],[-0.366,-0.477],[-6.333,4.849],[-18.556,-2.549],[-0.36,-0.479],[-0.48,0.361],[0.652,0.869],[1.376,0.19]],"v":[[10.663,13.075],[28.866,6.584],[29.069,5.061],[27.545,4.859],[6.881,10.639],[-27.335,-12.498],[-28.857,-12.715],[-29.074,-11.193],[6.578,12.791]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[128.12,144.51],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 36","np":3,"cix":2,"bm":0,"ix":36,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-12.305,0],[-2.619,0.468],[0.105,0.591],[0.595,-0.109],[0.145,0.287],[0.537,-0.272],[-0.272,-0.536],[-7.586,-6.719]],"o":[[2.389,0],[0.591,-0.106],[-0.106,-0.59],[-29.229,5.232],[-0.272,-0.535],[-0.534,0.272],[0.156,0.307],[5.897,5.221]],"v":[[15.343,12.25],[22.856,11.569],[23.734,10.307],[22.472,9.429],[-21.628,-13.911],[-23.09,-14.389],[-23.567,-12.927],[-12.076,1.392]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[139.186,313.758],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 37","np":3,"cix":2,"bm":0,"ix":37,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-24.418,0],[-9.952,2.159],[0.127,0.587],[0.586,-0.128],[16.6,9.71],[0.092,0.126],[0.486,-0.35],[-0.351,-0.488],[-18.379,-10.773]],"o":[[8.571,0],[0.587,-0.127],[-0.128,-0.586],[-37.57,8.151],[-18.013,-10.537],[-0.351,-0.487],[-0.487,0.352],[0.381,0.529],[12.543,7.354]],"v":[[27.615,18.786],[55.405,15.71],[56.237,14.417],[54.944,13.585],[-26.898,2.164],[-54.251,-21.14],[-55.768,-21.386],[-56.014,-19.868],[-28.084,3.989]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.325,325.917],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 38","np":3,"cix":2,"bm":0,"ix":38,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.444,0],[-0.123,0.045],[0.207,0.565],[0.92,29.927],[-0.026,0.23],[0.597,0.068],[0.067,-0.596],[-0.999,-32.602],[-14.979,-41.018]],"o":[[0.124,0],[0.564,-0.206],[-14.875,-40.733],[-0.997,-32.455],[0.067,-0.596],[-0.591,-0.07],[-0.026,0.231],[0.922,30.097],[0.161,0.442]],"v":[[10.468,99.1],[10.841,99.034],[11.489,97.639],[-8.523,-17.247],[-6.933,-73.039],[-7.892,-74.241],[-9.094,-73.283],[-10.697,-17.219],[9.447,98.385]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[62.431,291.255],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 39","np":3,"cix":2,"bm":0,"ix":39,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.136,0],[-0.171,0.422],[0,0],[0.555,0.225],[0.224,-0.556],[0,0],[-0.557,-0.225]],"o":[[0.43,0],[0,0],[0.226,-0.557],[-0.558,-0.226],[0,0],[-0.225,0.556],[0.134,0.055]],"v":[[-2.031,6.174],[-1.023,5.496],[3.038,-4.532],[2.44,-5.948],[1.024,-5.348],[-3.039,4.68],[-2.439,6.095]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.45,194.739],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 40","np":3,"cix":2,"bm":0,"ix":40,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.592,0],[0,0],[0.011,0.6],[0,0],[0.592,0],[0,0],[-0.011,-0.6],[0,0]],"o":[[0,0],[0.6,-0.01],[0,0],[-0.011,-0.595],[0,0],[-0.601,0.011],[0,0],[0.011,0.593]],"v":[[0.544,31.725],[0.564,31.725],[1.631,30.62],[0.544,-30.657],[-0.543,-31.725],[-0.562,-31.725],[-1.631,-30.619],[-0.543,30.658]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.078000005086,0.216000007181,0.569000004787,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[190.389,211.776],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 41","np":3,"cix":2,"bm":0,"ix":41,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-40.443,14.023],[-2.094,0.332],[-1.473,0.32],[0,0],[-3.962,1.876],[-0.549,0.282],[0,0],[0,0],[-4.707,-2.246],[-0.533,-0.233],[-1,-0.358],[-3.609,-1.038],[-2.327,-11.677],[-0.87,-45.161],[-0.168,-3.566],[-0.267,-3.571],[-0.054,-0.696],[-0.283,-2.794],[-0.392,-3.24],[-0.5,-3.496],[-3.034,-24.954],[1.794,-1.408],[56.984,0.418],[0.336,2.784],[4.045,24.119],[0.343,3.375],[0.228,3.425],[-0.799,17.378],[-0.049,0.951],[1.056,16.52]],"o":[[1.886,-0.767],[1.603,-0.255],[0,0],[6.256,-1.365],[0.598,-0.282],[5.827,-2.968],[0,0],[3.469,5.056],[0.517,0.245],[0.984,0.424],[3.696,1.348],[9.616,2.767],[2.163,10.822],[0.065,3.315],[0.159,3.332],[0.049,0.685],[0.206,2.663],[0.304,3.082],[0.402,3.327],[2.686,18.775],[1.494,12.231],[-11.615,25.942],[-0.222,-1.2],[-4.74,-12.943],[-0.994,-5.892],[-0.348,-3.419],[-1.087,-16.481],[0.044,-0.94],[0.702,-14.291],[0,0]],"v":[[-49.479,-107.632],[-43.51,-109.285],[-38.895,-110.154],[-38.89,-110.154],[-23.567,-115.297],[-21.854,-116.139],[-12.733,-121.781],[25.9,-120.461],[40.104,-111.301],[41.681,-110.584],[44.664,-109.41],[55.754,-106.045],[76.095,-88.389],[70.828,-10.124],[71.174,0.187],[71.811,10.537],[71.969,12.603],[72.703,20.801],[73.746,30.286],[75.1,40.511],[82.493,98.364],[88.128,139.791],[-56.54,147.315],[-57.427,142.711],[-72.464,67.425],[-74.276,52.93],[-75,42.239],[-76.811,-8.379],[-76.674,-11.217],[-82.067,-61.767]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[120.368,243.786],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 42","np":3,"cix":2,"bm":0,"ix":42,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.089,0],[0.127,0.503],[-0.593,0.15],[0,0],[-0.149,-0.593],[0.593,-0.149],[0,0]],"o":[[-0.496,0],[-0.149,-0.593],[0,0],[0.595,-0.145],[0.149,0.593],[0,0],[-0.091,0.022]],"v":[[-4.869,2.385],[-5.943,1.548],[-5.138,0.204],[4.6,-2.24],[5.944,-1.436],[5.139,-0.092],[-4.599,2.353]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[220.823,220.367],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 43","np":3,"cix":2,"bm":0,"ix":43,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.509,0],[0.08,0.018],[-0.132,0.598],[-0.247,0.247],[-0.434,-0.43],[0.431,-0.434],[2.11,-9.633]],"o":[[-0.078,0],[-0.597,-0.131],[2.255,-10.295],[0.43,-0.431],[0.433,0.431],[-0.057,0.055],[-0.113,0.517]],"v":[[-4.006,9.116],[-4.244,9.091],[-5.088,7.772],[3.221,-8.684],[4.785,-8.686],[4.79,-7.12],[-2.926,8.247]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.501999978458,0.426999978458,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[221.689,227.102],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 44","np":3,"cix":2,"bm":0,"ix":44,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-28.81,-2.689],[-4.168,-8.568],[0,0],[0,0],[0.362,22.371]],"o":[[0,0],[4.167,8.567],[0,0],[0,0],[-0.362,-22.371]],"v":[[1.906,-48.083],[14.271,-22.256],[26.904,-1.211],[-4.641,50.772],[-22.217,9.951]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[192.961,198.426],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 45","np":3,"cix":2,"bm":0,"ix":45,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-7.011,-0.19],[-2.273,-6.064],[0,0],[0,0]],"o":[[0,0],[7.011,0.189],[2.275,6.064],[0,0],[0,0]],"v":[[-18.841,-1.479],[-1.815,-9.853],[16.565,3.98],[3.68,2.274],[-9.585,-1.781]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[319.208,177.951],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 46","np":3,"cix":2,"bm":0,"ix":46,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.854,-0.008],[0,0],[0.008,0.854],[0,0],[-0.853,0.009],[0,0],[-0.008,-0.853],[0,0]],"o":[[0,0],[-0.852,0.008],[0,0],[-0.008,-0.853],[0,0],[0.854,-0.008],[0,0],[0.008,0.854]],"v":[[37.715,4.589],[-37.621,5.322],[-39.181,3.792],[-39.246,-3.029],[-37.715,-4.589],[37.621,-5.322],[39.181,-3.792],[39.246,3.029]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[329.466,181.145],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 47","np":3,"cix":2,"bm":0,"ix":47,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.416,-1.68],[0,0],[-0.659,2.921],[0,0]],"o":[[0,0],[1.298,-5.683],[0,0],[0.286,1.155]],"v":[[35.151,-2.748],[-35.151,7.021],[-32.138,-6.253],[34.094,-7.021]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[328.495,190.193],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 48","np":3,"cix":2,"bm":0,"ix":48,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.257,-0.894],[15.466,-0.151],[10.094,0.924],[-0.253,0.981],[-43.819,5.147]],"o":[[-18.005,2.136],[-22.902,0.222],[0.239,-0.898],[17.004,1.529],[0.272,0.972]],"v":[[51.266,-0.278],[0.39,2.858],[-51.266,0.852],[-50.524,-1.968],[50.469,-3.08]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[330.182,256.476],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 49","np":3,"cix":2,"bm":0,"ix":49,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.095,-9.744],[9.745,-0.094],[0.095,9.744],[-9.745,0.095]],"o":[[0.095,9.745],[-9.744,0.095],[-0.095,-9.744],[9.744,-0.094]],"v":[[17.644,-0.173],[0.171,17.643],[-17.644,0.171],[-0.171,-17.645]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[329.053,223.343],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 50","np":3,"cix":2,"bm":0,"ix":50,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[7.328,33.667],[-8.379,-33.421],[-7.327,-33.667],[8.379,33.422]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[366.625,220.674],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 51","np":3,"cix":2,"bm":0,"ix":51,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-6.098,31.118],[-7.154,30.891],[6.098,-31.118],[7.154,-30.892]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.851000019148,0.277999997606,0.234999997008,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[293.214,224.068],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 52","np":3,"cix":2,"bm":0,"ix":52,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.659,-1.933],[35.768,3.049],[-0.868,3.243],[-0.253,0.982],[-3.781,16.566],[-0.66,2.921],[0,0],[-0.416,-1.68],[-5.274,-18.741],[-0.256,-0.894]],"o":[[-35.701,3.743],[0.611,-1.92],[0.239,-0.898],[4.062,-15.56],[1.298,-5.682],[0,0],[0.285,1.156],[3.607,14.612],[0.271,0.972],[0.947,3.286]],"v":[[53.604,38.439],[-53.604,39.481],[-51.362,31.627],[-50.62,28.806],[-36.934,-28.487],[-33.921,-41.76],[32.311,-42.53],[33.368,-38.255],[50.373,27.695],[51.169,30.497]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.980000035903,0.442999985639,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[330.278,225.701],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 53","np":3,"cix":2,"bm":0,"ix":53,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.843,7.958],[-9.665,-3.129],[0,0]],"o":[[0,0],[9.664,3.129],[0,0]],"v":[[-18.192,-1.307],[8.528,-4.436],[16.408,7.565]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[341.838,175.658],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 54","np":3,"cix":2,"bm":0,"ix":54,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0],[0.295,0.244],[0.788,0.788],[1.736,2.433],[1.682,2.903],[1.606,3.153],[1.485,3.328],[1.372,3.433],[0.947,2.493],[0.363,0.977],[0.614,1.728],[0,0],[0,0],[0,0],[3.965,2.669]],"o":[[0,0],[0,0],[0,0],[-0.204,-0.144],[-0.591,-0.461],[-1.577,-1.576],[-1.766,-2.433],[-1.684,-2.903],[-1.592,-3.161],[-1.494,-3.319],[-1.016,-2.456],[-0.363,-0.978],[-0.661,-1.736],[0,0],[0,0],[0,0],[-1.683,-4.783],[0,0]],"v":[[21.918,39.317],[21.909,39.309],[21.909,39.301],[21.826,39.241],[21.06,38.672],[18.953,36.77],[13.874,30.585],[8.684,22.52],[3.771,13.394],[-0.815,3.638],[-5.113,-6.503],[-8.047,-13.939],[-9.145,-16.872],[-11.056,-22.08],[-11.979,-24.657],[-12.798,-27.007],[-13.125,-27.947],[-21.918,-39.317]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[204.54,179.178],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 55","np":3,"cix":2,"bm":0,"ix":55,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[2.031,-0.561],[-3.358,-12.18],[0,0],[0,0],[-0.667,-2.047],[-1.508,-4.032],[-1.735,-4.002],[-2.015,-3.987],[-2.418,-3.973],[-3.017,-3.987],[-4.244,-3.919],[-0.016,-0.008],[-2.645,-1.842],[-1.515,-0.864],[0,0],[-0.227,-0.115],[0,0],[-0.978,-0.401],[-3.759,-0.403],[-3.275,0.333],[-4.987,1.925],[-4.184,2.365],[-3.699,2.616],[-6.359,5.829],[-2.978,3.085],[-1.463,1.584],[0,0],[0,0],[5.594,6.883],[7.67,-6.231],[0,0],[0,0],[0,0],[1.478,-1.137],[3.025,-2.145],[6.049,-3.449],[2.91,-1.349],[2.555,-0.705],[1.41,0.038],[0.197,0.091],[-0.212,-0.015],[-0.075,0.008],[-0.023,-0.015],[-0.007,-0.007]],"o":[[0,0],[-2.009,0],[-12.181,3.358],[0,0],[0,0],[0.63,2.068],[1.334,4.078],[1.555,4.018],[1.751,3.995],[2.009,3.987],[2.418,3.972],[3.07,3.964],[0.015,0.015],[2.115,1.947],[1.335,0.933],[0,0],[0.182,0.106],[0,0],[0.948,0.485],[3.911,1.547],[3.783,0.401],[6.579,-0.69],[5.01,-1.925],[4.192,-2.349],[7.414,-5.222],[3.154,-2.949],[1.493,-1.539],[0,0],[0,0],[5.685,-6.434],[-6.238,-7.671],[0,0],[0,0],[0,0],[-1.449,1.161],[-2.964,2.274],[-6.004,4.321],[-3.025,1.72],[-2.911,1.326],[-2.553,0.721],[-0.705,-0.008],[-0.197,-0.091],[0.061,-0.008],[0.038,0.008],[0.007,0],[0,0]],"v":[[-61.477,-63.948],[-61.485,-63.948],[-67.564,-63.121],[-83.542,-34.986],[-82.61,-31.59],[-81.701,-28.451],[-79.76,-22.288],[-75.47,-10.146],[-70.558,1.883],[-64.904,13.844],[-58.287,25.775],[-50.221,37.714],[-39.511,49.568],[-39.465,49.606],[-32.386,55.321],[-28.119,58.027],[-27.557,58.354],[-26.875,58.711],[-25.45,59.422],[-22.547,60.695],[-10.867,63.547],[-0.262,63.539],[16.861,59.302],[30.497,52.774],[42.253,45.262],[62.711,28.587],[71.936,19.59],[76.371,14.921],[78.553,12.503],[80.842,9.902],[81.305,-13.215],[56.125,-15.823],[55.313,-15.163],[53.336,-13.549],[51.168,-11.822],[46.771,-8.365],[37.804,-1.687],[19.62,10.092],[10.661,14.693],[2.337,17.831],[-3.885,18.885],[-5.265,18.688],[-5.159,18.536],[-4.985,18.558],[-4.893,18.589],[-4.871,18.596]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.991999966491,0.681999954523,0.564999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[231.32,199.891],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 56","np":3,"cix":2,"bm":0,"ix":56,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"clock Outlines","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[88.96,186.779,0],"ix":2,"l":2},"a":{"a":0,"k":[86.199,91.642,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[1.714,-0.794],[0.794,1.714],[-1.715,0.794],[-0.793,-1.714]],"o":[[-1.714,0.794],[-0.795,-1.714],[1.713,-0.795],[0.795,1.714]],"v":[[1.441,3.108],[-3.108,1.44],[-1.44,-3.107],[3.107,-1.439]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.337000020345,0.349000010771,0.375999989229,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[86.043,96.747],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.366,-2.946],[2.946,-1.365],[1.365,2.946],[-2.946,1.365]],"o":[[1.365,2.946],[-2.947,1.365],[-1.365,-2.946],[2.946,-1.365]],"v":[[5.335,-2.472],[2.472,5.335],[-5.335,2.472],[-2.472,-5.335]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[86.043,96.747],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0.209,0.452],[-0.452,0.209],[0,0],[0,0],[-0.452,0.209],[-0.209,-0.452]],"o":[[0,0],[-0.451,0.209],[-0.209,-0.452],[0,0],[0,0],[-0.209,-0.452],[0.452,-0.209],[0,0]],"v":[[15.159,5.468],[-13.754,18.865],[-14.95,18.426],[-14.51,17.23],[12.766,4.591],[2.452,-17.668],[2.891,-18.865],[4.087,-18.426]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[86.08,97.218],"ix":2},"a":{"a":0,"k":[14,5.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":10,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":48,"s":[360]},{"t":71.0000028918893,"s":[720]}],"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.498,-0.029],[0,0],[0,0],[0,0],[-0.029,-0.497]],"o":[[0,0],[0,0],[0,0],[0.496,-0.029],[0.029,0.497]],"v":[[9.821,0.313],[-10.591,1.516],[-10.697,-0.284],[9.716,-1.487],[10.668,-0.639]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.325,0.419999994016,0.795999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[101.959,95.606],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.2,-0.545],[0,0],[0.546,0.2],[0,0],[-0.2,0.545],[-0.546,-0.2],[0,0]],"o":[[0,0],[-0.2,0.545],[0,0],[-0.545,-0.2],[0.199,-0.545],[0,0],[0.545,0.2]],"v":[[5.5,2.017],[5.5,2.017],[4.15,2.642],[-4.875,-0.668],[-5.5,-2.017],[-4.151,-2.642],[4.875,0.668]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[133.976,114.637],"ix":2},"a":{"a":0,"k":[5.625,2.375],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":2,"cix":2,"bm":0,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.2,-0.545],[0,0],[0.545,0.2],[0,0],[-0.2,0.545],[-0.546,-0.2],[0,0]],"o":[[0,0],[-0.2,0.545],[0,0],[-0.545,-0.2],[0.2,-0.546],[0,0],[0.545,0.201]],"v":[[5.5,2.017],[5.5,2.017],[4.151,2.642],[-4.875,-0.668],[-5.5,-2.017],[-4.15,-2.642],[4.875,0.667]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[43.734,81.232],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 6","np":3,"cix":2,"bm":0,"ix":6,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.545,0.2],[0,0],[-0.201,0.545],[0,0],[-0.545,-0.2],[0,0],[0.2,-0.546],[0,0]],"o":[[0,0],[-0.546,-0.2],[0,0],[0.2,-0.545],[0,0],[0.545,0.2],[0,0],[-0.2,0.545]],"v":[[-2.016,5.5],[-2.016,5.5],[-2.641,4.15],[0.668,-4.875],[2.017,-5.5],[2.018,-5.5],[2.643,-4.151],[-0.667,4.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[70.527,139.056],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 7","np":3,"cix":2,"bm":0,"ix":7,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[-1.03,5.862],[-3.004,5.138],[1.03,-5.862],[3.004,-5.138]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[101.558,54.439],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 8","np":3,"cix":2,"bm":0,"ix":8,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.244,-0.527],[0,0],[0.527,-0.244],[0,0],[0.243,0.527],[-0.527,0.244],[0,0]],"o":[[0,0],[0.244,0.527],[0,0],[-0.527,0.245],[-0.245,-0.528],[0,0],[0.527,-0.244]],"v":[[5.316,-2.463],[5.316,-2.463],[4.803,-1.067],[-3.919,2.974],[-5.314,2.463],[-4.803,1.067],[3.919,-2.975]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[126.93,77.801],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 9","np":3,"cix":2,"bm":0,"ix":9,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-0.244,-0.527],[0,0],[0.527,-0.244],[0,0],[0.244,0.527],[-0.527,0.244],[0,0]],"o":[[0,0],[0.244,0.527],[0,0],[-0.527,0.244],[-0.244,-0.527],[0,0],[0.527,-0.244]],"v":[[5.316,-2.463],[5.316,-2.463],[4.803,-1.067],[-3.919,2.975],[-5.316,2.463],[-4.803,1.067],[3.919,-2.975]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[45.155,115.693],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 10","np":3,"cix":2,"bm":0,"ix":10,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.527,-0.244],[0,0],[0.243,0.527],[0,0],[-0.527,0.244],[0,0],[-0.244,-0.527],[0,0]],"o":[[0,0],[-0.527,0.245],[0,0],[-0.245,-0.527],[0,0],[0.527,-0.245],[0,0],[0.244,0.527]],"v":[[2.464,5.315],[2.464,5.315],[1.068,4.803],[-2.975,-3.919],[-2.464,-5.315],[-2.463,-5.315],[-1.067,-4.804],[2.975,3.919]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[104.988,137.634],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 11","np":3,"cix":2,"bm":0,"ix":11,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.527,-0.244],[0,0],[0.244,0.527],[0,0],[-0.527,0.244],[-0.244,-0.528],[0,0]],"o":[[0,0],[-0.527,0.245],[0,0],[-0.244,-0.527],[0.527,-0.245],[0,0],[0.244,0.527]],"v":[[2.463,5.315],[2.463,5.315],[1.067,4.803],[-2.975,-3.919],[-2.463,-5.315],[-1.067,-4.803],[2.975,3.919]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[67.097,55.859],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 12","np":3,"cix":2,"bm":0,"ix":12,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.062,-2.057],[-0.25,-7.435],[2.793,-7.617],[5.425,-5.979],[7.653,-3.546],[3.072,-0.885],[5.131,-0.173],[0.953,0.014],[6.716,2.463],[1.059,0.452],[5.126,4.649],[2.438,3.314],[1.516,2.939],[0.251,7.433],[-2.795,7.618],[-5.422,5.98],[-7.652,3.545],[-4.06,0.965],[-4.147,0.14],[-6.61,-2.025],[-1.09,-0.399],[-5.46,-4.518],[-0.707,-0.644],[-2.824,-4.248]],"o":[[2.845,6.903],[0.274,8.069],[-2.793,7.619],[-5.612,6.188],[-2.95,1.367],[-4.902,1.415],[-0.955,0.033],[-7.087,-0.08],[-1.088,-0.399],[-6.351,-2.729],[-3.073,-2.787],[-1.938,-2.632],[-2.841,-6.9],[-0.273,-8.07],[2.793,-7.618],[5.616,-6.19],[3.853,-1.785],[4.003,-0.952],[6.917,-0.233],[1.101,0.336],[6.714,2.463],[0.734,0.607],[3.805,3.45],[1.271,1.908]],"v":[[56.612,-26.134],[61.273,-4.547],[57.475,19.094],[45.089,39.587],[25.097,54.257],[16.056,57.638],[0.979,60.026],[-1.883,60.055],[-22.663,56.226],[-25.882,54.947],[-43.156,43.841],[-51.43,34.68],[-56.615,26.319],[-61.275,4.737],[-57.475,-18.904],[-45.092,-39.396],[-25.098,-54.068],[-13.215,-58.195],[-0.98,-59.836],[19.379,-57.139],[22.663,-56.036],[40.991,-45.526],[43.154,-43.651],[53.113,-32.082]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[87.203,99.155],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 13","np":2,"cix":2,"bm":0,"ix":13,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-1.366,-2.949],[-0.349,-0.849],[-0.25,-7.436],[2.794,-7.616],[5.425,-5.979],[7.653,-3.546],[3.072,-0.886],[5.131,-0.172],[0.953,0.013],[6.716,2.462],[1.058,0.452],[5.126,4.649],[2.439,3.315],[1.515,2.939],[0.387,0.835],[0.282,8.351],[-2.795,7.618],[-5.423,5.98],[-7.652,3.546],[-4.06,0.965],[-4.146,0.14],[-6.609,-2.024],[-1.089,-0.4],[-5.459,-4.518],[-0.707,-0.645],[-2.824,-4.249]],"o":[[0.389,0.837],[2.846,6.903],[0.274,8.069],[-2.792,7.619],[-5.612,6.188],[-2.95,1.368],[-4.902,1.414],[-0.954,0.034],[-7.086,-0.08],[-1.088,-0.4],[-6.352,-2.729],[-3.073,-2.787],[-1.938,-2.632],[-0.42,-0.812],[-3.545,-7.652],[-0.274,-8.069],[2.792,-7.618],[5.616,-6.189],[3.852,-1.785],[4.003,-0.952],[6.917,-0.234],[1.101,0.336],[6.715,2.462],[0.734,0.606],[3.804,3.449],[1.773,2.662]],"v":[[56.665,-26.162],[57.771,-23.631],[62.434,-2.044],[58.634,21.597],[46.249,42.09],[26.257,56.76],[17.215,60.142],[2.139,62.529],[-0.723,62.559],[-21.503,58.73],[-24.721,57.45],[-41.994,46.344],[-50.27,37.183],[-55.454,28.821],[-56.665,26.351],[-62.434,2.235],[-58.635,-21.407],[-46.251,-41.899],[-26.257,-56.571],[-14.374,-60.699],[-2.139,-62.338],[18.219,-59.643],[21.503,-58.538],[39.831,-48.028],[41.994,-46.153],[51.953,-34.584]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.922000002394,0.922000002394,0.984000052658,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[86.042,96.651],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 14","np":2,"cix":2,"bm":0,"ix":14,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-17.513,-37.796],[37.796,-17.514],[17.514,37.796],[-37.797,17.514]],"o":[[17.514,37.796],[-37.796,17.513],[-17.513,-37.796],[37.795,-17.513]],"v":[[68.436,-31.711],[31.711,68.436],[-68.436,31.711],[-31.711,-68.436]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.9607843137254902,0.43529411764705883,0.27450980392156865,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[86.199,97.085],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 15","np":2,"cix":2,"bm":0,"ix":15,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.16,-0.074],[0,0],[0,0],[-2.269,1.051],[0,0],[-0.978,-2.109],[0,0]],"o":[[0,0],[0,0],[-1.051,-2.269],[0,0],[2.109,-0.978],[0,0],[0.074,0.159]],"v":[[21.071,-2.375],[-16.072,14.836],[-20.249,5.824],[-18.044,-0.188],[11.458,-13.857],[17.049,-11.809],[21.226,-2.797]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0.102000000898,0.325,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[48.417,15.086],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 16","np":2,"cix":2,"bm":0,"ix":16,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0],[0,0]],"v":[[14.855,6.265],[-4.824,15.385],[-14.855,-6.266],[4.824,-15.385]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.996078431372549,0.7137254901960784,0.28627450980392155,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[54.323,28.292],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 17","np":2,"cix":2,"bm":0,"ix":17,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"bg Outlines","sr":1,"ks":{"o":{"a":0,"k":50,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[208.096,256.678,0],"ix":2,"l":2},"a":{"a":0,"k":[265.742,190.84,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"ef":[{"ty":34,"nm":"Puppet","np":6,"mn":"ADBE FreePin3","ix":1,"en":1,"ef":[{"ty":7,"nm":"Puppet Engine","mn":"ADBE FreePin3 Puppet Engine","ix":1,"v":{"a":0,"k":2,"ix":1}},{"ty":0,"nm":"Mesh Rotation Refinement","mn":"ADBE FreePin3 Auto Rotate Pins","ix":2,"v":{"a":0,"k":20,"ix":2}},{"ty":7,"nm":"On Transparent","mn":"ADBE FreePin3 On Transparent","ix":3,"v":{"a":0,"k":0,"ix":3}},{"ty":29.9700012207031,"nm":"arap","np":3,"mn":"ADBE FreePin3 ARAP Group","ix":4,"en":1,"ef":[{"ty":6,"nm":"Auto-traced Shapes","mn":"ADBE FreePin3 Outlines","ix":1,"v":0},{"ty":1,"nm":"Mesh","np":1,"mn":"ADBE FreePin3 Mesh Group","ix":2,"en":1,"ef":[]}]}]}],"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-63.878,-12.775],[-43.118,35.931],[-6.587,26.35],[54.767,-29.828],[72.923,73.98],[-91.026,-164.486]],"o":[[89.368,17.873],[17.763,-14.803],[23.954,-95.817],[-89.428,48.707],[-55.094,-55.893],[37.007,66.871]],"v":[[-40.275,172.716],[170.521,134.389],[212.84,70.512],[111.434,-74.811],[-64.231,-134.697],[-203.165,52.147]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,0.7764705882352941,0.6509803921568628,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[294.44,190.84],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":100.000004073084,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/public/boursecu-splash.png b/public/boursecu-splash.png new file mode 100644 index 0000000..1ec4e91 Binary files /dev/null and b/public/boursecu-splash.png differ diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000..51e0d8b Binary files /dev/null and b/public/favicon.png differ diff --git a/public/favicon_.png b/public/favicon_.png new file mode 100644 index 0000000..51e0d8b Binary files /dev/null and b/public/favicon_.png differ diff --git a/public/icon-192.png b/public/icon-192.png new file mode 100644 index 0000000..96df113 Binary files /dev/null and b/public/icon-192.png differ diff --git a/public/icon-36.png b/public/icon-36.png new file mode 100644 index 0000000..0188382 Binary files /dev/null and b/public/icon-36.png differ diff --git a/public/icon-512.png b/public/icon-512.png new file mode 100644 index 0000000..63f5d4f Binary files /dev/null and b/public/icon-512.png differ diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000..eef391c Binary files /dev/null and b/public/icon.png differ diff --git a/public/logo-montzar.png b/public/logo-montzar.png new file mode 100644 index 0000000..f2a8e0f Binary files /dev/null and b/public/logo-montzar.png differ diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..98240ae --- /dev/null +++ b/src/App.vue @@ -0,0 +1,3 @@ + diff --git a/src/api/configuration.ts b/src/api/configuration.ts new file mode 100644 index 0000000..5cc27e2 --- /dev/null +++ b/src/api/configuration.ts @@ -0,0 +1,5 @@ +import useAxios from "@/utils/useAxios"; + +export async function getSettings() { + return await useAxios.get(`api/get_settings`) +} \ No newline at end of file diff --git a/src/api/home.ts b/src/api/home.ts new file mode 100644 index 0000000..d230c2e --- /dev/null +++ b/src/api/home.ts @@ -0,0 +1,11 @@ +import useAxios from "@/utils/useAxios"; +import type {Price} from "@/models/home"; + +export const getChart = async () => await useAxios.get>>(`/api/candle`) + +/** @deprecated قیمت up داخل /api/price/last در فیلد up برمی‌گردد */ +export const getPrice = async () => await useAxios.get(`/api/price/up`) + +export const getLastPrice = async () => await useAxios.get(`/api/price/last`) + +export const getAllPrices = async () => await useAxios.post('/customer/prices/all') \ No newline at end of file diff --git a/src/api/products.ts b/src/api/products.ts new file mode 100644 index 0000000..f9f376d --- /dev/null +++ b/src/api/products.ts @@ -0,0 +1,14 @@ +import useAxios from "@/utils/useAxios"; +import type {PInventory, Product} from "@/models/products"; +import type { PWallet, Wallet } from '@/models/wallet' + + +export const getProducts = async (): Promise => { + return await useAxios.get(`/customer/product/list`) +} +export const getProductInventory = async (): Promise => { + return await useAxios.post(`/customer/wallet/product/table`) +} +export const getOneProductWallet = async (id: number): Promise => { + return await useAxios.get(`/customer/wallet/product/${id}`) +} \ No newline at end of file diff --git a/src/assets/css/fonts.less b/src/assets/css/fonts.less new file mode 100644 index 0000000..fb100bc --- /dev/null +++ b/src/assets/css/fonts.less @@ -0,0 +1,110 @@ +@import (less) './var.less'; + +/** + * Dana Pro (FaNum) — اعداد فارسی + * منبع: DanaPro Webfonts / Farsi numerals + */ + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 10; + src: url('../fonts/Dana/woff2/DanaFaNum-Hairline.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Hairline.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 100; + src: url('../fonts/Dana/woff2/DanaFaNum-Thin.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Thin.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 200; + src: url('../fonts/Dana/woff2/DanaFaNum-UltraLight.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-UltraLight.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 300; + src: url('../fonts/Dana/woff2/DanaFaNum-Light.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Light.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 400; + src: url('../fonts/Dana/woff2/DanaFaNum-Regular.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Regular.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 500; + src: url('../fonts/Dana/woff2/DanaFaNum-Medium.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Medium.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 600; + src: url('../fonts/Dana/woff2/DanaFaNum-DemiBold.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-DemiBold.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 700; + src: url('../fonts/Dana/woff2/DanaFaNum-Bold.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Bold.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 800; + src: url('../fonts/Dana/woff2/DanaFaNum-ExtraBold.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-ExtraBold.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 900; + src: url('../fonts/Dana/woff2/DanaFaNum-Black.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Black.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 930; + src: url('../fonts/Dana/woff2/DanaFaNum-ExtraBlack.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-ExtraBlack.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 960; + src: url('../fonts/Dana/woff2/DanaFaNum-Heavy.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-Heavy.woff') format('woff'); +} + +@font-face { + font-family: dana; + font-style: normal; + font-weight: 990; + src: url('../fonts/Dana/woff2/DanaFaNum-fat.woff2') format('woff2'), + url('../fonts/Dana/woff/DanaFaNum-fat.woff') format('woff'); +} diff --git a/src/assets/css/landing-entry.less b/src/assets/css/landing-entry.less new file mode 100644 index 0000000..7eda2b1 --- /dev/null +++ b/src/assets/css/landing-entry.less @@ -0,0 +1,13 @@ +@import (less) './var.less'; +@import (less) './fonts.less'; +@import (less) '../../views/base/aboutUs/desktop/styles/desktop-about-us.less'; +@import (less) '../../views/login/desktop/styles/desktop-auth.less'; + +html { + scroll-behavior: smooth; +} + +body { + font-family: var(--App-font-family) !important; + margin: 0; +} diff --git a/src/assets/css/var.less b/src/assets/css/var.less new file mode 100644 index 0000000..97aee86 --- /dev/null +++ b/src/assets/css/var.less @@ -0,0 +1,14 @@ +@prefixCls: 'noname'; + +@App-primary-color: var(--App-primary-color); +@secondary-color: var(--App-secondary-color); +@prefixCls-font-family: 'dana'; +@prefixCls-background-color: var(--App-background-color); + +@border-radius-base: 8px; +:root { + --App-primary-color: #0A1B37; + --App-secondary-color: #e0be7f; + --App-background-color: #ffffff; + --App-font-family: 'dana', sans-serif; +} \ No newline at end of file diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Black.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Black.woff new file mode 100644 index 0000000..7ea38f6 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Black.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Bold.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Bold.woff new file mode 100644 index 0000000..9edec21 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Bold.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-DemiBold.woff b/src/assets/fonts/Dana/woff/DanaFaNum-DemiBold.woff new file mode 100644 index 0000000..f32d826 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-DemiBold.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-ExtraBlack.woff b/src/assets/fonts/Dana/woff/DanaFaNum-ExtraBlack.woff new file mode 100644 index 0000000..4dc78a9 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-ExtraBlack.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-ExtraBold.woff b/src/assets/fonts/Dana/woff/DanaFaNum-ExtraBold.woff new file mode 100644 index 0000000..63077e4 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-ExtraBold.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Hairline.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Hairline.woff new file mode 100644 index 0000000..e94d3dc Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Hairline.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Heavy.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Heavy.woff new file mode 100644 index 0000000..3981e3e Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Heavy.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Light.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Light.woff new file mode 100644 index 0000000..f757105 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Light.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Medium.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Medium.woff new file mode 100644 index 0000000..8a4bcc3 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Medium.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Regular.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Regular.woff new file mode 100644 index 0000000..ba215ae Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Regular.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-Thin.woff b/src/assets/fonts/Dana/woff/DanaFaNum-Thin.woff new file mode 100644 index 0000000..f74a9bf Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-Thin.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-UltraLight.woff b/src/assets/fonts/Dana/woff/DanaFaNum-UltraLight.woff new file mode 100644 index 0000000..6927bd2 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-UltraLight.woff differ diff --git a/src/assets/fonts/Dana/woff/DanaFaNum-fat.woff b/src/assets/fonts/Dana/woff/DanaFaNum-fat.woff new file mode 100644 index 0000000..9434b40 Binary files /dev/null and b/src/assets/fonts/Dana/woff/DanaFaNum-fat.woff differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Black.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Black.woff2 new file mode 100644 index 0000000..7389c50 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Black.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Bold.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Bold.woff2 new file mode 100644 index 0000000..d31799e Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Bold.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-DemiBold.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-DemiBold.woff2 new file mode 100644 index 0000000..9ba6e10 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-DemiBold.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-ExtraBlack.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-ExtraBlack.woff2 new file mode 100644 index 0000000..e824fd0 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-ExtraBlack.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-ExtraBold.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-ExtraBold.woff2 new file mode 100644 index 0000000..456601d Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-ExtraBold.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Hairline.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Hairline.woff2 new file mode 100644 index 0000000..ad5aba7 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Hairline.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Heavy.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Heavy.woff2 new file mode 100644 index 0000000..2e7fab4 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Heavy.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Light.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Light.woff2 new file mode 100644 index 0000000..ebc3d85 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Light.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Medium.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Medium.woff2 new file mode 100644 index 0000000..15fe1e5 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Medium.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Regular.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Regular.woff2 new file mode 100644 index 0000000..36ae4a3 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Regular.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-Thin.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-Thin.woff2 new file mode 100644 index 0000000..6edb509 Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-Thin.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-UltraLight.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-UltraLight.woff2 new file mode 100644 index 0000000..677305b Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-UltraLight.woff2 differ diff --git a/src/assets/fonts/Dana/woff2/DanaFaNum-fat.woff2 b/src/assets/fonts/Dana/woff2/DanaFaNum-fat.woff2 new file mode 100644 index 0000000..47f167f Binary files /dev/null and b/src/assets/fonts/Dana/woff2/DanaFaNum-fat.woff2 differ diff --git a/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum).eot b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum).eot new file mode 100644 index 0000000..389ec4b Binary files /dev/null and b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum).eot differ diff --git a/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Black.eot b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Black.eot new file mode 100644 index 0000000..a9c2bef Binary files /dev/null and b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Black.eot differ diff --git a/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Bold.eot b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Bold.eot new file mode 100644 index 0000000..7ce9b1b Binary files /dev/null and b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Bold.eot differ diff --git a/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Light.eot b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Light.eot new file mode 100644 index 0000000..ee72989 Binary files /dev/null and b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Light.eot differ diff --git a/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Medium.eot b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Medium.eot new file mode 100644 index 0000000..3c20c14 Binary files /dev/null and b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_Medium.eot differ diff --git a/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_UltraLight.eot b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_UltraLight.eot new file mode 100644 index 0000000..c789bb3 Binary files /dev/null and b/src/assets/fonts/iranSans/eot/IRANSansWeb(FaNum)_UltraLight.eot differ diff --git a/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum).ttf b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum).ttf new file mode 100644 index 0000000..3835c1d Binary files /dev/null and b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum).ttf differ diff --git a/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Black.ttf b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Black.ttf new file mode 100644 index 0000000..42af658 Binary files /dev/null and b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Black.ttf differ diff --git a/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Bold.ttf b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Bold.ttf new file mode 100644 index 0000000..adbf9e4 Binary files /dev/null and b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Bold.ttf differ diff --git a/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Light.ttf b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Light.ttf new file mode 100644 index 0000000..fae92bd Binary files /dev/null and b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Light.ttf differ diff --git a/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Medium.ttf b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Medium.ttf new file mode 100644 index 0000000..9622928 Binary files /dev/null and b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_Medium.ttf differ diff --git a/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_UltraLight.ttf b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_UltraLight.ttf new file mode 100644 index 0000000..59dfb58 Binary files /dev/null and b/src/assets/fonts/iranSans/ttf/IRANSansWeb(FaNum)_UltraLight.ttf differ diff --git a/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum).woff b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum).woff new file mode 100644 index 0000000..1e6eb36 Binary files /dev/null and b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum).woff differ diff --git a/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Black.woff b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Black.woff new file mode 100644 index 0000000..019c556 Binary files /dev/null and b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Black.woff differ diff --git a/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Bold.woff b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Bold.woff new file mode 100644 index 0000000..7008b60 Binary files /dev/null and b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Bold.woff differ diff --git a/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Light.woff b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Light.woff new file mode 100644 index 0000000..ecea926 Binary files /dev/null and b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Light.woff differ diff --git a/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Medium.woff b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Medium.woff new file mode 100644 index 0000000..587883a Binary files /dev/null and b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_Medium.woff differ diff --git a/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_UltraLight.woff b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_UltraLight.woff new file mode 100644 index 0000000..c815b45 Binary files /dev/null and b/src/assets/fonts/iranSans/woff/IRANSansWeb(FaNum)_UltraLight.woff differ diff --git a/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum).woff2 b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum).woff2 new file mode 100644 index 0000000..c3dcbab Binary files /dev/null and b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum).woff2 differ diff --git a/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Black.woff2 b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Black.woff2 new file mode 100644 index 0000000..fc008ef Binary files /dev/null and b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Black.woff2 differ diff --git a/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Bold.woff2 b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Bold.woff2 new file mode 100644 index 0000000..69f7c66 Binary files /dev/null and b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Bold.woff2 differ diff --git a/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Light.woff2 b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Light.woff2 new file mode 100644 index 0000000..40f5b09 Binary files /dev/null and b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Light.woff2 differ diff --git a/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Medium.woff2 b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Medium.woff2 new file mode 100644 index 0000000..8273b0a Binary files /dev/null and b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_Medium.woff2 differ diff --git a/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_UltraLight.woff2 b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_UltraLight.woff2 new file mode 100644 index 0000000..8b77d17 Binary files /dev/null and b/src/assets/fonts/iranSans/woff2/IRANSansWeb(FaNum)_UltraLight.woff2 differ diff --git a/src/assets/img/Add-to-homeScreen.png b/src/assets/img/Add-to-homeScreen.png new file mode 100644 index 0000000..a413022 Binary files /dev/null and b/src/assets/img/Add-to-homeScreen.png differ diff --git a/src/assets/img/boursecu-assets-icon.png b/src/assets/img/boursecu-assets-icon.png new file mode 100644 index 0000000..c4b9eba Binary files /dev/null and b/src/assets/img/boursecu-assets-icon.png differ diff --git a/src/assets/img/boursecu-buy-sell-icon.png b/src/assets/img/boursecu-buy-sell-icon.png new file mode 100644 index 0000000..403085f Binary files /dev/null and b/src/assets/img/boursecu-buy-sell-icon.png differ diff --git a/src/assets/img/boursecu-convert-icon.png b/src/assets/img/boursecu-convert-icon.png new file mode 100644 index 0000000..65745b3 Binary files /dev/null and b/src/assets/img/boursecu-convert-icon.png differ diff --git a/src/assets/img/boursecu-home-icon.png b/src/assets/img/boursecu-home-icon.png new file mode 100644 index 0000000..b4df0dd Binary files /dev/null and b/src/assets/img/boursecu-home-icon.png differ diff --git a/src/assets/img/boursecu-physical-receive-icon.png b/src/assets/img/boursecu-physical-receive-icon.png new file mode 100644 index 0000000..510f96e Binary files /dev/null and b/src/assets/img/boursecu-physical-receive-icon.png differ diff --git a/src/assets/img/boursecu-settings-icon.png b/src/assets/img/boursecu-settings-icon.png new file mode 100644 index 0000000..373536f Binary files /dev/null and b/src/assets/img/boursecu-settings-icon.png differ diff --git a/src/assets/img/boursecu-transactions-icon.png b/src/assets/img/boursecu-transactions-icon.png new file mode 100644 index 0000000..b48b881 Binary files /dev/null and b/src/assets/img/boursecu-transactions-icon.png differ diff --git a/src/assets/img/boursecu-wallet-icon.png b/src/assets/img/boursecu-wallet-icon.png new file mode 100644 index 0000000..29ecfc3 Binary files /dev/null and b/src/assets/img/boursecu-wallet-icon.png differ diff --git a/src/assets/img/boursemes-login.png b/src/assets/img/boursemes-login.png new file mode 100644 index 0000000..3fc17a6 Binary files /dev/null and b/src/assets/img/boursemes-login.png differ diff --git a/src/assets/img/boursemes-splash.png b/src/assets/img/boursemes-splash.png new file mode 100644 index 0000000..1ec4e91 Binary files /dev/null and b/src/assets/img/boursemes-splash.png differ diff --git a/src/assets/img/boursemes_logofull.png b/src/assets/img/boursemes_logofull.png new file mode 100644 index 0000000..e6a4be8 Binary files /dev/null and b/src/assets/img/boursemes_logofull.png differ diff --git a/src/assets/img/landing-app-phones.png b/src/assets/img/landing-app-phones.png new file mode 100644 index 0000000..792795e Binary files /dev/null and b/src/assets/img/landing-app-phones.png differ diff --git a/src/assets/img/landing-download-icon.svg b/src/assets/img/landing-download-icon.svg new file mode 100644 index 0000000..45827fc --- /dev/null +++ b/src/assets/img/landing-download-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/img/landing-forecast-trend.svg b/src/assets/img/landing-forecast-trend.svg new file mode 100644 index 0000000..ddfe974 --- /dev/null +++ b/src/assets/img/landing-forecast-trend.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/img/landing-hero-pattern.png b/src/assets/img/landing-hero-pattern.png new file mode 100644 index 0000000..ddb8fa5 Binary files /dev/null and b/src/assets/img/landing-hero-pattern.png differ diff --git a/src/assets/img/landing-hero-pattern.svg b/src/assets/img/landing-hero-pattern.svg new file mode 100644 index 0000000..8956493 --- /dev/null +++ b/src/assets/img/landing-hero-pattern.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/img/landing-navbar-logo.png b/src/assets/img/landing-navbar-logo.png new file mode 100644 index 0000000..3fc17a6 Binary files /dev/null and b/src/assets/img/landing-navbar-logo.png differ diff --git a/src/assets/img/landing-sunrad-facility.png b/src/assets/img/landing-sunrad-facility.png new file mode 100644 index 0000000..12e1f08 Binary files /dev/null and b/src/assets/img/landing-sunrad-facility.png differ diff --git a/src/assets/img/share-apple.png b/src/assets/img/share-apple.png new file mode 100644 index 0000000..48e1ef9 Binary files /dev/null and b/src/assets/img/share-apple.png differ diff --git a/src/baseColor.json b/src/baseColor.json new file mode 100644 index 0000000..0266f19 --- /dev/null +++ b/src/baseColor.json @@ -0,0 +1,47 @@ +{ + "primary":"#81d8d0", + "primary-rgba":"#81d8d0", + "secondary": "#135953", + "secondary-rgba": "#135953", + "tertiary": "#feb701", + "tertiary-rgba": "#fec94114", + "gray": { + "50": "#f9fafd", + "70": "#f9f9f9", + "100": "#e8eaee", + "200": "#caced8", + "300": "#D1D5DB", + "400": "#9CA3AF", + "500": "#949db0", + "700": "#374151", + "900": "#656f87" + }, + "green": { + "100": "#ecf5ef", + "900": "#0f7f36" + }, + "green-rgba": "#ecf5ef", + "primary": "#1e2229", + "white": "#ffffff", + "red": { + "100": "#fee2e2", + "500": "#f4474d", + "600": "#dc2626" + }, + "red-rgba": "#fce6e6", + "yellow": { + "100": "#FFF6E1", + "900": "#FEB701" + }, + "blue": { + "100": "#ebf4fd", + "600": "#0891B2", + "900": "#0891B2" + }, + "cyan": { + "50": "#ECFEFF", + "300": "#67E8F9", + "600": "#0891B2", + "800": "#155E75" + } +} diff --git a/src/components/BasicPacks/BasicButton.vue b/src/components/BasicPacks/BasicButton.vue new file mode 100644 index 0000000..9fd61ae --- /dev/null +++ b/src/components/BasicPacks/BasicButton.vue @@ -0,0 +1,66 @@ + + + + + diff --git a/src/components/BasicPacks/BasicIcon.vue b/src/components/BasicPacks/BasicIcon.vue new file mode 100644 index 0000000..2a4a305 --- /dev/null +++ b/src/components/BasicPacks/BasicIcon.vue @@ -0,0 +1,54 @@ + + + + + + diff --git a/src/components/BasicPacks/BasicModal.vue b/src/components/BasicPacks/BasicModal.vue new file mode 100644 index 0000000..40875b5 --- /dev/null +++ b/src/components/BasicPacks/BasicModal.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/components/BasicPacks/tools/icons/icons.json b/src/components/BasicPacks/tools/icons/icons.json new file mode 100644 index 0000000..808834e --- /dev/null +++ b/src/components/BasicPacks/tools/icons/icons.json @@ -0,0 +1,1023 @@ +{ + "vuesax-linear:24-support": "\n\n\n\n\n", + "vuesax-linear:3d-cube-scan": "\n\n\n\n\n\n\n", + "vuesax-linear:3d-rotate": "\n\n\n\n\n\n\n", + "vuesax-linear:3d-square": "\n\n\n\n\n\n", + "vuesax-linear:3dcube": "\n\n\n\n\n", + "vuesax-linear:3full": "\n\n\n\n\n\n", + "vuesax-linear:3square": "\n\n\n\n\n", + "vuesax-linear:aave-(aave)": "\n\n\n\n\n", + "vuesax-linear:activity": "\n\n\n\n", + "vuesax-linear:add-circle": "\n\n\n\n\n", + "vuesax-linear:add-square": "\n\n\n\n\n", + "vuesax-linear:add": "\n\n\n\n", + "vuesax-linear:additem": "\n\n\n\n\n\n", + "vuesax-linear:airdrop": "\n\n\n\n\n\n", + "vuesax-linear:airplane-square": "\n\n\n\n", + "vuesax-linear:airplane": "\n\n\n", + "vuesax-linear:airpod": "\n\n\n\n\n\n", + "vuesax-linear:airpods": "\n\n\n\n\n\n\n\n", + "vuesax-linear:alarm": "\n\n\n\n\n\n\n", + "vuesax-linear:align-bottom": "\n\n\n\n\n", + "vuesax-linear:align-horizontally": "\n\n\n\n\n\n\n", + "vuesax-linear:align-left": "\n\n\n\n\n", + "vuesax-linear:align-right": "\n\n\n\n\n", + "vuesax-linear:align-vertically": "\n\n\n\n\n\n\n", + "vuesax-linear:android": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:ankr-(ankr)": "\n\n\n\n\n\n", + "vuesax-linear:apple": "\n\n\n", + "vuesax-linear:aquarius": "\n\n\n\n\n", + "vuesax-linear:archive-1": "\n\n\n\n\n", + "vuesax-linear:archive-add": "\n\n\n\n\n", + "vuesax-linear:archive-book": "\n\n\n\n\n\n", + "vuesax-linear:archive-minus": "\n\n\n\n", + "vuesax-linear:archive-slash": "\n\n\n\n\n", + "vuesax-linear:archive-tick": "\n\n\n\n", + "vuesax-linear:archive": "\n\n\n\n\n\n\n\n", + "vuesax-linear:arrange-circle-2": "\n\n\n\n\n\n\n", + "vuesax-linear:arrange-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:arrange-square-2": "\n\n\n\n\n\n\n", + "vuesax-linear:arrange-square": "\n\n\n\n\n\n\n", + "vuesax-linear:arrow-2": "\n\n\n\n\n\n", + "vuesax-linear:arrow-3": "\n\n\n\n\n\n", + "vuesax-linear:arrow-bottom": "\n\n\n", + "vuesax-linear:arrow-circle-down": "\n\n\n\n", + "vuesax-linear:arrow-circle-left": "\n\n\n\n", + "vuesax-linear:arrow-circle-right": "\n\n\n\n", + "vuesax-linear:arrow-down-1": "\n\n\n\n", + "vuesax-linear:arrow-down-2": "\n\n\n\n\n", + "vuesax-linear:arrow-down": "\n\n\n", + "vuesax-linear:arrow-left-1": "\n\n\n", + "vuesax-linear:arrow-left-2": "\n\n\n\n\n", + "vuesax-linear:arrow-left-3": "\n\n\n", + "vuesax-linear:arrow-left": "\n\n\n\n", + "vuesax-linear:arrow-right-1": "\n\n\n", + "vuesax-linear:arrow-right-2": "\n\n\n\n\n", + "vuesax-linear:arrow-right-3": "\n\n\n", + "vuesax-linear:arrow-right": "\n\n\n\n", + "vuesax-linear:arrow-square-down": "\n\n\n\n", + "vuesax-linear:arrow-square-left": "\n\n\n\n", + "vuesax-linear:arrow-square-right": "\n\n\n\n", + "vuesax-linear:arrow-square-up": "\n\n\n\n", + "vuesax-linear:arrow-square": "\n\n\n\n\n\n\n", + "vuesax-linear:arrow-swap-horizontal": "\n\n\n\n\n\n", + "vuesax-linear:arrow-up-1": "\n\n\n", + "vuesax-linear:arrow-up-2": "\n\n\n\n\n", + "vuesax-linear:arrow-up-3": "\n\n\n", + "vuesax-linear:arrow-up": "\n\n\n\n", + "vuesax-linear:arrow": "\n\n\n\n\n\n\n\n", + "vuesax-linear:attach-circle": "\n\n\n\n", + "vuesax-linear:attach-square": "\n\n\n\n", + "vuesax-linear:audio-square": "\n\n\n\n\n\n", + "vuesax-linear:augur-(rep)": "\n\n\n\n\n", + "vuesax-linear:autobrightness": "\n\n\n\n\n", + "vuesax-linear:autonio-(niox)": "\n\n\n\n\n\n", + "vuesax-linear:avalanche-(avax)": "\n\n\n\n\n", + "vuesax-linear:award": "\n\n\n\n\n", + "vuesax-linear:back-square": "\n\n\n\n\n", + "vuesax-linear:backward-10-seconds": "\n\n\n\n\n\n", + "vuesax-linear:backward-15-seconds": "\n\n\n\n\n\n", + "vuesax-linear:backward-5-seconds": "\n\n\n\n\n", + "vuesax-linear:backward-item-1": "\n\n\n\n\n", + "vuesax-linear:backward-item": "\n\n\n\n\n", + "vuesax-linear:backward": "\n\n\n\n", + "vuesax-linear:bag-2": "\n\n\n\n\n\n", + "vuesax-linear:bag-cross-1": "\n\n\n\n\n\n\n", + "vuesax-linear:bag-cross": "\n\n\n\n\n\n\n\n", + "vuesax-linear:bag-happy": "\n\n\n\n\n\n\n", + "vuesax-linear:bag-tick-2": "\n\n\n\n\n\n", + "vuesax-linear:bag-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:bag-timer": "\n\n\n\n\n\n", + "vuesax-linear:bag": "\n\n\n\n\n\n\n\n", + "vuesax-linear:bank": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:barcode": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:battery-3full": "\n\n\n\n\n\n", + "vuesax-linear:battery-charging": "\n\n\n\n\n\n", + "vuesax-linear:battery-disable": "\n\n\n\n\n\n", + "vuesax-linear:battery-empty-1": "\n\n\n\n\n", + "vuesax-linear:battery-empty": "\n\n\n\n", + "vuesax-linear:battery-full": "\n\n\n\n\n\n\n", + "vuesax-linear:be": "\n\n\n\n\n", + "vuesax-linear:bezier-1": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bezier": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bill": "\n\n\n\n\n\n", + "vuesax-linear:binance-coin-(bnb)": "\n\n\n\n\n\n\n", + "vuesax-linear:binance-usd-(busd)": "\n\n\n\n\n\n", + "vuesax-linear:bitcoin-(btc)": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bitcoin-card": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bitcoin-convert": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bitcoin-refresh": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:blend-2": "\n\n\n\n\n\n\n", + "vuesax-linear:blend": "\n\n\n\n", + "vuesax-linear:blogger": "\n\n\n\n\n\n", + "vuesax-linear:bluetooth-2": "\n\n\n\n\n", + "vuesax-linear:bluetooth-circle": "\n\n\n\n", + "vuesax-linear:bluetooth-rectangle": "\n\n\n\n", + "vuesax-linear:bluetooth": "\n\n\n", + "vuesax-linear:blur-1": "\n\n\n\n\n\n\n", + "vuesax-linear:blur": "\n\n\n\n\n\n\n", + "vuesax-linear:book-1": "\n\n\n\n\n\n", + "vuesax-linear:book-saved": "\n\n\n\n\n", + "vuesax-linear:book-square": "\n\n\n\n\n", + "vuesax-linear:book": "\n\n\n\n\n\n", + "vuesax-linear:bookmark-2": "\n\n\n\n", + "vuesax-linear:bookmark": "\n\n\n\n\n\n", + "vuesax-linear:bootsrap": "\n\n\n\n", + "vuesax-linear:box-1": "\n\n\n\n\n", + "vuesax-linear:box-2": "\n\n\n", + "vuesax-linear:box-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:box-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:box-search": "\n\n\n\n\n\n\n", + "vuesax-linear:box-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:box-time": "\n\n\n\n\n\n\n", + "vuesax-linear:box": "\n\n\n\n\n\n", + "vuesax-linear:briefcase": "\n\n\n\n\n\n\n", + "vuesax-linear:brifecase-cross": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:brifecase-tick": "\n\n\n\n\n\n\n\n", + "vuesax-linear:brifecase-timer": "\n\n\n\n\n\n\n\n", + "vuesax-linear:broom": "\n\n\n\n\n\n\n\n", + "vuesax-linear:brush-1": "\n\n\n\n\n\n", + "vuesax-linear:brush-2": "\n\n\n\n\n\n", + "vuesax-linear:brush-3": "\n\n\n\n\n\n\n", + "vuesax-linear:brush": "\n\n\n\n\n", + "vuesax-linear:bubble": "\n\n\n\n\n", + "vuesax-linear:bucket-circle-1": "\n\n\n\n\n\n\n", + "vuesax-linear:bucket-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:bucket-square-1": "\n\n\n\n\n\n\n", + "vuesax-linear:bucket-square": "\n\n\n\n\n\n\n", + "vuesax-linear:building-3": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:building-4": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:building": "\n\n\n\n\n\n\n\n", + "vuesax-linear:buildings-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:buildings": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:buliding": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:bus": "\n\n\n\n\n\n\n", + "vuesax-linear:buy-crypto": "\n\n\n\n\n", + "vuesax-linear:cake": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calculator": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-1": "\n\n\n\n\n\n\n", + "vuesax-linear:calendar-2": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-add": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:calendar-edit": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-remove": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-search": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar-tick": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:calendar": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:call-add": "\n\n\n\n\n", + "vuesax-linear:call-calling": "\n\n\n\n\n", + "vuesax-linear:call-incoming": "\n\n\n\n", + "vuesax-linear:call-minus": "\n\n\n\n", + "vuesax-linear:call-outgoing": "\n\n\n\n", + "vuesax-linear:call-received": "\n\n\n\n", + "vuesax-linear:call-remove": "\n\n\n\n\n", + "vuesax-linear:call-slash": "\n\n\n\n\n", + "vuesax-linear:call": "\n\n\n", + "vuesax-linear:camera-slash": "\n\n\n\n\n\n\n", + "vuesax-linear:camera": "\n\n\n\n\n", + "vuesax-linear:candle-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:candle": "\n\n\n\n\n\n\n\n", + "vuesax-linear:car": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:card-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-coin": "\n\n\n\n\n\n\n", + "vuesax-linear:card-edit": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-pos": "\n\n\n\n\n\n\n", + "vuesax-linear:card-receive": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-remove-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-send": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-slash": "\n\n\n\n\n\n\n\n", + "vuesax-linear:card-tick-1": "\n\n\n\n\n\n\n", + "vuesax-linear:card-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:card": "\n\n\n\n\n\n", + "vuesax-linear:cardano-(ada)": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cards": "\n\n\n\n\n\n\n", + "vuesax-linear:category-2": "\n\n\n\n\n\n", + "vuesax-linear:category": "\n\n\n\n\n\n", + "vuesax-linear:cd": "\n\n\n\n", + "vuesax-linear:celo-(celo)": "\n\n\n\n", + "vuesax-linear:celsius-(cel)-": "\n\n\n\n\n", + "vuesax-linear:chainlink-(link)": "\n\n\n", + "vuesax-linear:chart-1": "\n\n\n\n\n\n", + "vuesax-linear:chart-2": "\n\n\n\n\n", + "vuesax-linear:chart-21": "\n\n\n\n\n\n", + "vuesax-linear:chart-3": "\n\n\n\n\n", + "vuesax-linear:chart-square": "\n\n\n\n\n\n", + "vuesax-linear:chart-success": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:chart": "\n\n\n\n\n\n", + "vuesax-linear:check": "\n\n\n\n\n\n", + "vuesax-linear:chrome": "\n\n\n\n\n\n\n", + "vuesax-linear:civic-(cvc)": "\n\n\n\n", + "vuesax-linear:clipboard-close": "\n\n\n\n\n\n", + "vuesax-linear:clipboard-export": "\n\n\n\n\n\n\n", + "vuesax-linear:clipboard-import": "\n\n\n\n\n\n\n", + "vuesax-linear:clipboard-text": "\n\n\n\n\n\n", + "vuesax-linear:clipboard-tick": "\n\n\n\n\n", + "vuesax-linear:clipboard": "\n\n\n\n\n", + "vuesax-linear:clock-1": "\n\n\n\n", + "vuesax-linear:clock": "\n\n\n\n\n\n", + "vuesax-linear:close-circle": "\n\n\n\n\n", + "vuesax-linear:close-square": "\n\n\n\n\n", + "vuesax-linear:cloud-add": "\n\n\n\n\n\n", + "vuesax-linear:cloud-change": "\n\n\n\n\n", + "vuesax-linear:cloud-connection": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-cross": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-drizzle": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cloud-fog": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-lightning": "\n\n\n\n\n\n", + "vuesax-linear:cloud-minus": "\n\n\n\n\n\n", + "vuesax-linear:cloud-notif": "\n\n\n\n\n", + "vuesax-linear:cloud-plus": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:cloud-snow": "\n\n\n\n\n\n\n\n", + "vuesax-linear:cloud-sunny": "\n\n\n\n\n\n", + "vuesax-linear:cloud": "\n\n\n\n", + "vuesax-linear:code-1": "\n\n\n\n\n", + "vuesax-linear:code-circle": "\n\n\n\n\n\n", + "vuesax-linear:code": "\n\n\n\n\n\n", + "vuesax-linear:coffee": "\n\n\n\n\n\n\n\n", + "vuesax-linear:coin-1": "\n\n\n\n\n\n\n", + "vuesax-linear:coin": "\n\n\n\n\n", + "vuesax-linear:color-swatch": "\n\n\n\n\n\n\n", + "vuesax-linear:colorfilter": "\n\n\n\n\n", + "vuesax-linear:colors-square-1": "\n\n\n\n\n\n", + "vuesax-linear:colors-square": "\n\n\n\n\n\n", + "vuesax-linear:command-square": "\n\n\n\n\n\n\n\n", + "vuesax-linear:command": "\n\n\n\n\n\n\n", + "vuesax-linear:component-1": "\n\n\n", + "vuesax-linear:component": "\n\n\n", + "vuesax-linear:computing": "\n\n\n\n\n\n\n", + "vuesax-linear:convert-3d-cube": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:convert": "\n\n\n\n\n", + "vuesax-linear:convertshape-2": "\n\n\n\n\n\n", + "vuesax-linear:convertshape": "\n\n\n\n\n\n", + "vuesax-linear:copy-success": "\n\n\n\n\n", + "vuesax-linear:copy": "\n\n\n\n", + "vuesax-linear:copyright": "\n\n\n\n", + "vuesax-linear:courthouse": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cpu-charge": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cpu-setting": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:cpu": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:creative-commons": "\n\n\n\n\n", + "vuesax-linear:crop": "\n\n\n\n\n\n\n", + "vuesax-linear:crown-1": "\n\n\n\n\n", + "vuesax-linear:crown": "\n\n\n", + "vuesax-linear:cup": "\n\n\n\n\n\n\n\n", + "vuesax-linear:dai-(dai)": "\n\n\n\n\n\n", + "vuesax-linear:danger": "\n\n\n\n\n", + "vuesax-linear:dash-(dash)": "\n\n\n\n", + "vuesax-linear:data-2": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:data": "\n\n\n\n\n\n\n\n", + "vuesax-linear:decred-(dcr)": "\n\n\n\n", + "vuesax-linear:dent-(dent)": "\n\n\n\n\n\n", + "vuesax-linear:designtools": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:device-message": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:devices-1": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:devices": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:diagram": "\n\n\n\n", + "vuesax-linear:diamonds": "\n\n\n\n", + "vuesax-linear:direct-down": "\n\n\n", + "vuesax-linear:direct-inbox": "\n\n\n\n\n\n", + "vuesax-linear:direct-left": "\n\n\n", + "vuesax-linear:direct-normal": "\n\n\n\n", + "vuesax-linear:direct-notification": "\n\n\n\n\n", + "vuesax-linear:direct-right": "\n\n\n", + "vuesax-linear:direct-send": "\n\n\n\n\n\n", + "vuesax-linear:direct-up": "\n\n\n", + "vuesax-linear:direct": "\n\n\n\n\n\n", + "vuesax-linear:directbox-default": "\n\n\n\n", + "vuesax-linear:directbox-notif": "\n\n\n\n\n\n", + "vuesax-linear:directbox-receive": "\n\n\n\n\n\n\n", + "vuesax-linear:directbox-send": "\n\n\n\n\n\n\n", + "vuesax-linear:discount-circle": "\n\n\n\n\n\n", + "vuesax-linear:discount-shape": "\n\n\n\n\n\n", + "vuesax-linear:discover-1": "\n\n\n\n", + "vuesax-linear:discover": "\n\n\n\n", + "vuesax-linear:dislike": "\n\n\n\n", + "vuesax-linear:document-1": "\n\n\n\n", + "vuesax-linear:document-cloud": "\n\n\n\n\n\n", + "vuesax-linear:document-code-2": "\n\n\n\n\n\n", + "vuesax-linear:document-code": "\n\n\n\n\n\n", + "vuesax-linear:document-copy": "\n\n\n\n\n\n\n\n", + "vuesax-linear:document-download": "\n\n\n\n\n\n", + "vuesax-linear:document-favorite": "\n\n\n\n\n", + "vuesax-linear:document-filter": "\n\n\n\n\n\n", + "vuesax-linear:document-forward": "\n\n\n\n\n", + "vuesax-linear:document-like": "\n\n\n\n\n", + "vuesax-linear:document-normal": "\n\n\n\n", + "vuesax-linear:document-previous": "\n\n\n\n\n\n", + "vuesax-linear:document-sketch": "\n\n\n\n\n", + "vuesax-linear:document-text-1": "\n\n\n\n\n\n", + "vuesax-linear:document-text": "\n\n\n\n\n\n", + "vuesax-linear:document-upload": "\n\n\n\n\n\n", + "vuesax-linear:document": "\n\n\n\n\n", + "vuesax-linear:dollar-circle": "\n\n\n\n\n", + "vuesax-linear:dollar-square": "\n\n\n\n\n", + "vuesax-linear:dribbble": "\n\n\n\n\n\n", + "vuesax-linear:driver-2": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:driver-refresh": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:driver": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:driving": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:drop": "\n\n\n", + "vuesax-linear:dropbox": "\n\n\n\n\n\n\n", + "vuesax-linear:edit-2": "\n\n\n\n\n", + "vuesax-linear:edit": "\n\n\n\n\n", + "vuesax-linear:educare-(ekt)": "\n\n\n\n\n\n", + "vuesax-linear:electricity": "\n\n\n\n\n\n", + "vuesax-linear:element-1": "\n\n\n\n\n", + "vuesax-linear:element-2": "\n\n\n\n\n", + "vuesax-linear:element-3": "\n\n\n\n\n\n", + "vuesax-linear:element-4": "\n\n\n\n\n\n", + "vuesax-linear:element-equal": "\n\n\n\n\n\n\n", + "vuesax-linear:element-plus": "\n\n\n\n\n\n\n", + "vuesax-linear:emercoin-(emc)": "\n\n\n\n\n", + "vuesax-linear:emoji-happy": "\n\n\n\n\n\n", + "vuesax-linear:emoji-normal": "\n\n\n\n\n\n", + "vuesax-linear:emoji-sad": "\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-add": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-change": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-tick": "\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet-time": "\n\n\n\n\n\n\n\n", + "vuesax-linear:empty-wallet": "\n\n\n\n\n\n", + "vuesax-linear:enjin-coin-(enj)": "\n\n\n\n\n", + "vuesax-linear:eos-(eos)": "\n\n\n\n", + "vuesax-linear:eraser-1": "\n\n\n\n\n\n\n", + "vuesax-linear:eraser-2": "\n\n\n\n\n\n\n", + "vuesax-linear:eraser": "\n\n\n\n\n", + "vuesax-linear:ethereum-(eth)": "\n\n\n\n\n\n", + "vuesax-linear:ethereum-classic-(etc)": "\n\n\n\n\n", + "vuesax-linear:export-1": "\n\n\n\n\n", + "vuesax-linear:export-2": "\n\n\n\n\n", + "vuesax-linear:export-3": "\n\n\n\n\n", + "vuesax-linear:export": "\n\n\n\n\n", + "vuesax-linear:external-drive": "\n\n\n\n\n\n\n\n", + "vuesax-linear:eye-slash": "\n\n\n\n\n\n\n\n", + "vuesax-linear:eye": "\n\n\n\n", + "vuesax-linear:facebook": "\n\n\n\n", + "vuesax-linear:fatrows": "\n\n\n\n", + "vuesax-linear:favorite-chart": "\n\n\n\n\n", + "vuesax-linear:figma-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:figma": "\n\n\n\n\n\n\n", + "vuesax-linear:filter-add": "\n\n\n\n\n\n", + "vuesax-linear:filter-edit": "\n\n\n\n\n", + "vuesax-linear:filter-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:filter-search": "\n\n\n\n\n", + "vuesax-linear:filter-square": "\n\n\n\n", + "vuesax-linear:filter-tick": "\n\n\n\n\n", + "vuesax-linear:filter": "\n\n\n\n", + "vuesax-linear:finger-cricle": "\n\n\n\n\n", + "vuesax-linear:finger-scan": "\n\n\n\n\n\n\n\n", + "vuesax-linear:firstline": "\n\n\n\n\n\n\n", + "vuesax-linear:flag-2": "\n\n\n\n", + "vuesax-linear:flag": "\n\n\n\n", + "vuesax-linear:flash-1": "\n\n\n", + "vuesax-linear:flash-circle-1": "\n\n\n\n", + "vuesax-linear:flash-circle-2": "\n\n\n\n", + "vuesax-linear:flash-circle": "\n\n\n\n", + "vuesax-linear:flash-slash": "\n\n\n\n\n", + "vuesax-linear:flash": "\n\n\n\n\n\n", + "vuesax-linear:folder-2": "\n\n\n\n", + "vuesax-linear:folder-add": "\n\n\n\n\n", + "vuesax-linear:folder-cloud": "\n\n\n\n", + "vuesax-linear:folder-connection": "\n\n\n\n\n\n\n", + "vuesax-linear:folder-cross": "\n\n\n\n\n", + "vuesax-linear:folder-favorite": "\n\n\n\n", + "vuesax-linear:folder-minus": "\n\n\n\n", + "vuesax-linear:folder-open": "\n\n\n\n\n", + "vuesax-linear:folder": "\n\n\n", + "vuesax-linear:format-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:format-square": "\n\n\n\n\n\n\n", + "vuesax-linear:forward-10-seconds": "\n\n\n\n\n\n", + "vuesax-linear:forward-15-seconds": "\n\n\n\n\n\n", + "vuesax-linear:forward-5-seconds": "\n\n\n\n\n", + "vuesax-linear:forward-item-1": "\n\n\n\n\n", + "vuesax-linear:forward-item": "\n\n\n\n\n", + "vuesax-linear:forward-square": "\n\n\n\n\n", + "vuesax-linear:forward": "\n\n\n\n", + "vuesax-linear:frame-1": "\n\n\n\n\n\n", + "vuesax-linear:frame-2": "\n\n\n\n\n", + "vuesax-linear:frame-3": "\n\n\n\n\n\n\n\n", + "vuesax-linear:frame-4": "\n\n\n\n\n", + "vuesax-linear:frame-5": "\n\n\n\n\n", + "vuesax-linear:frame": "\n\n\n\n", + "vuesax-linear:framer": "\n\n\n\n", + "vuesax-linear:ftx-token-(ftt)": "\n\n\n\n\n\n", + "vuesax-linear:gallery-add": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-edit": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-export": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-favorite": "\n\n\n\n\n\n", + "vuesax-linear:gallery-import": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-slash": "\n\n\n\n\n\n\n", + "vuesax-linear:gallery-tick": "\n\n\n\n\n\n", + "vuesax-linear:gallery": "\n\n\n\n\n", + "vuesax-linear:game": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:gameboy": "\n\n\n\n\n\n\n\n", + "vuesax-linear:gas-station": "\n\n\n\n\n\n\n", + "vuesax-linear:gemini-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:gemini": "\n\n\n\n\n\n", + "vuesax-linear:ghost": "\n\n\n\n\n", + "vuesax-linear:gift": "\n\n\n\n\n\n\n", + "vuesax-linear:glass-1": "\n\n\n\n\n\n\n", + "vuesax-linear:glass": "\n\n\n\n", + "vuesax-linear:global-edit": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:global-refresh": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:global-search": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:global": "\n\n\n\n\n\n\n", + "vuesax-linear:google-1": "\n\n\n", + "vuesax-linear:google-play": "\n\n\n\n\n\n", + "vuesax-linear:google": "\n\n\n\n\n\n", + "vuesax-linear:gps-slash": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:gps": "\n\n\n\n\n\n\n\n", + "vuesax-linear:grammerly": "\n\n\n\n", + "vuesax-linear:graph": "\n\n\n\n", + "vuesax-linear:grid-1": "\n\n\n\n\n\n\n", + "vuesax-linear:grid-2": "\n\n\n\n\n", + "vuesax-linear:grid-3": "\n\n\n\n\n\n", + "vuesax-linear:grid-4": "\n\n\n\n", + "vuesax-linear:grid-5": "\n\n\n\n\n", + "vuesax-linear:grid-6": "\n\n\n\n\n\n", + "vuesax-linear:grid-7": "\n\n\n\n\n", + "vuesax-linear:grid-8": "\n\n\n\n\n\n\n\n", + "vuesax-linear:grid-9": "\n\n\n\n", + "vuesax-linear:grid-edit": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:grid-eraser": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:grid-lock": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:group-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:group-10": "\n\n\n\n", + "vuesax-linear:group-11": "\n\n\n\n\n\n\n", + "vuesax-linear:group-2": "\n\n\n\n\n\n\n", + "vuesax-linear:group-3": "\n\n\n\n", + "vuesax-linear:group-4": "\n\n\n\n\n\n\n", + "vuesax-linear:group-5": "\n\n\n\n", + "vuesax-linear:group-6": "\n\n\n\n\n\n\n", + "vuesax-linear:group-7": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:group-8": "\n\n\n\n", + "vuesax-linear:group-9": "\n\n\n\n\n", + "vuesax-linear:group": "\n\n\n\n\n\n", + "vuesax-linear:happyemoji": "\n\n\n\n", + "vuesax-linear:harmony-(one)": "\n\n\n\n\n\n\n", + "vuesax-linear:hashtag-1": "\n\n\n\n\n\n", + "vuesax-linear:hashtag-down": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:hashtag-up": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:hashtag": "\n\n\n\n\n\n", + "vuesax-linear:headphone": "\n\n\n", + "vuesax-linear:headphones": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:health": "\n\n\n\n", + "vuesax-linear:heart-add": "\n\n\n\n\n\n", + "vuesax-linear:heart-circle": "\n\n\n\n", + "vuesax-linear:heart-edit": "\n\n\n\n\n", + "vuesax-linear:heart-remove": "\n\n\n\n\n\n", + "vuesax-linear:heart-search": "\n\n\n\n\n", + "vuesax-linear:heart-slash": "\n\n\n\n\n", + "vuesax-linear:heart-tick": "\n\n\n\n\n", + "vuesax-linear:heart": "\n\n\n", + "vuesax-linear:hedera-hashgraph-(hbar)": "\n\n\n\n\n\n\n", + "vuesax-linear:hex-(hex)": "\n\n\n\n\n", + "vuesax-linear:hierarchy-2": "\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy-3": "\n\n\n\n\n\n", + "vuesax-linear:hierarchy-square-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy-square-3": "\n\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy-square": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:hierarchy": "\n\n\n\n\n\n\n", + "vuesax-linear:home-2": "\n\n\n\n", + "vuesax-linear:home-hashtag": "\n\n\n\n\n\n", + "vuesax-linear:home-trend-down": "\n\n\n\n\n", + "vuesax-linear:home-trend-up": "\n\n\n\n\n", + "vuesax-linear:home-wifi": "\n\n\n\n\n\n", + "vuesax-linear:home": "\n\n\n\n", + "vuesax-linear:hospital": "\n\n\n\n\n\n\n", + "vuesax-linear:house-2": "\n\n\n\n\n\n\n", + "vuesax-linear:house": "\n\n\n\n\n\n\n\n", + "vuesax-linear:html-3": "\n\n\n\n\n", + "vuesax-linear:html-5": "\n\n\n\n", + "vuesax-linear:huobi-token-(ht)": "\n\n\n\n", + "vuesax-linear:icon-(icx)": "\n\n\n\n\n\n", + "vuesax-linear:illustrator": "\n\n\n\n\n\n\n", + "vuesax-linear:image": "\n\n\n\n", + "vuesax-linear:import-1": "\n\n\n\n\n", + "vuesax-linear:import-2": "\n\n\n\n\n", + "vuesax-linear:import": "\n\n\n\n\n", + "vuesax-linear:info-circle": "\n\n\n\n\n", + "vuesax-linear:information": "\n\n\n\n\n", + "vuesax-linear:instagram": "\n\n\n\n\n", + "vuesax-linear:iost-(iost)": "\n\n\n\n\n\n", + "vuesax-linear:java-script": "\n\n\n\n\n", + "vuesax-linear:js": "\n\n\n\n", + "vuesax-linear:judge": "\n\n\n\n\n\n", + "vuesax-linear:kanban": "\n\n\n\n", + "vuesax-linear:key-square": "\n\n\n\n\n\n", + "vuesax-linear:key": "\n\n\n\n\n", + "vuesax-linear:keyboard-open": "\n\n\n\n\n\n\n\n", + "vuesax-linear:keyboard": "\n\n\n\n\n\n\n", + "vuesax-linear:kyber-network-(knc)": "\n\n\n\n\n", + "vuesax-linear:lamp-1": "\n\n\n\n\n", + "vuesax-linear:lamp-charge": "\n\n\n\n\n", + "vuesax-linear:lamp-on": "\n\n\n\n", + "vuesax-linear:lamp-slash": "\n\n\n\n\n\n", + "vuesax-linear:lamp": "\n\n\n\n\n", + "vuesax-linear:language-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:language-square": "\n\n\n\n\n\n\n", + "vuesax-linear:layer": "\n\n\n\n\n", + "vuesax-linear:level": "\n\n\n\n\n", + "vuesax-linear:lifebuoy": "\n\n\n\n\n\n\n\n", + "vuesax-linear:like-1": "\n\n\n\n", + "vuesax-linear:like-dislike": "\n\n\n\n\n\n", + "vuesax-linear:like-shapes": "\n\n\n\n\n", + "vuesax-linear:like-tag": "\n\n\n\n\n", + "vuesax-linear:like": "\n\n\n\n", + "vuesax-linear:link-1": "\n\n\n\n\n", + "vuesax-linear:link-2": "\n\n\n\n", + "vuesax-linear:link-21": "\n\n\n\n", + "vuesax-linear:link-circle": "\n\n\n\n\n", + "vuesax-linear:link-square": "\n\n\n\n\n", + "vuesax-linear:link": "\n\n\n\n", + "vuesax-linear:litecoin(ltc)": "\n\n\n\n\n", + "vuesax-linear:location-add": "\n\n\n\n\n", + "vuesax-linear:location-cross": "\n\n\n\n\n", + "vuesax-linear:location-minus": "\n\n\n\n", + "vuesax-linear:location-slash": "\n\n\n\n\n\n", + "vuesax-linear:location-tick": "\n\n\n\n", + "vuesax-linear:location": "\n\n\n\n", + "vuesax-linear:lock-1": "\n\n\n\n\n", + "vuesax-linear:lock-circle": "\n\n\n\n\n\n", + "vuesax-linear:lock-slash": "\n\n\n\n\n\n", + "vuesax-linear:lock": "\n\n\n\n\n\n\n", + "vuesax-linear:login-1": "\n\n\n\n\n", + "vuesax-linear:login": "\n\n\n\n\n", + "vuesax-linear:logout-1": "\n\n\n\n\n", + "vuesax-linear:logout": "\n\n\n\n\n", + "vuesax-linear:lovely": "\n\n\n\n", + "vuesax-linear:magic-star": "\n\n\n\n", + "vuesax-linear:magicpen": "\n\n\n\n\n\n\n", + "vuesax-linear:main-component-1": "\n\n\n\n\n", + "vuesax-linear:main-component": "\n\n\n\n\n", + "vuesax-linear:maker-(mkr)": "\n\n\n\n\n", + "vuesax-linear:man": "\n\n\n\n\n", + "vuesax-linear:map-1": "\n\n\n\n\n", + "vuesax-linear:map": "\n\n\n\n\n\n\n", + "vuesax-linear:mask-1": "\n\n\n\n\n\n\n", + "vuesax-linear:mask-2": "\n\n\n\n\n\n\n", + "vuesax-linear:mask-3": "\n\n\n\n", + "vuesax-linear:mask": "\n\n\n\n\n\n\n", + "vuesax-linear:math": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:maximize-1": "\n\n\n\n\n\n", + "vuesax-linear:maximize-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:maximize-21": "\n\n\n\n\n\n", + "vuesax-linear:maximize-3": "\n\n\n\n\n\n", + "vuesax-linear:maximize-4": "\n\n\n\n\n\n", + "vuesax-linear:maximize-circle": "\n\n\n\n\n\n\n\n", + "vuesax-linear:maximize": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:medal-star": "\n\n\n\n\n", + "vuesax-linear:medal": "\n\n\n\n", + "vuesax-linear:menu-1": "\n\n\n\n\n\n", + "vuesax-linear:menu-board": "\n\n\n\n\n\n\n\n", + "vuesax-linear:menu": "\n\n\n\n\n", + "vuesax-linear:message-2": "\n\n\n\n", + "vuesax-linear:message-add-1": "\n\n\n\n\n", + "vuesax-linear:message-add": "\n\n\n\n\n\n\n", + "vuesax-linear:message-circle": "\n\n\n\n", + "vuesax-linear:message-edit": "\n\n\n\n\n", + "vuesax-linear:message-favorite": "\n\n\n\n\n\n\n", + "vuesax-linear:message-minus": "\n\n\n\n", + "vuesax-linear:message-notif": "\n\n\n\n\n\n\n", + "vuesax-linear:message-programming": "\n\n\n\n\n\n", + "vuesax-linear:message-question": "\n\n\n\n\n", + "vuesax-linear:message-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:message-search": "\n\n\n\n\n\n\n\n", + "vuesax-linear:message-square": "\n\n\n\n", + "vuesax-linear:message-text-1": "\n\n\n\n\n", + "vuesax-linear:message-text": "\n\n\n\n\n", + "vuesax-linear:message-tick": "\n\n\n\n\n\n", + "vuesax-linear:message-time": "\n\n\n\n\n\n", + "vuesax-linear:message": "\n\n\n\n\n\n", + "vuesax-linear:messages-1": "\n\n\n\n\n\n\n", + "vuesax-linear:messages-2": "\n\n\n\n", + "vuesax-linear:messages-3": "\n\n\n\n", + "vuesax-linear:messages": "\n\n\n\n\n", + "vuesax-linear:messenger": "\n\n\n\n", + "vuesax-linear:microphone-2": "\n\n\n\n\n\n\n", + "vuesax-linear:microphone-slash-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:microphone-slash": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:microphone": "\n\n\n\n\n\n", + "vuesax-linear:microscope": "\n\n\n\n\n\n\n", + "vuesax-linear:milk": "\n\n\n\n\n\n\n", + "vuesax-linear:mini-music-sqaure": "\n\n\n\n\n\n\n", + "vuesax-linear:minus-cirlce": "\n\n\n\n", + "vuesax-linear:minus-square": "\n\n\n\n", + "vuesax-linear:minus": "\n\n\n", + "vuesax-linear:mirror": "\n\n\n\n", + "vuesax-linear:mirroring-screen": "\n\n\n\n\n\n", + "vuesax-linear:mobile-programming": "\n\n\n\n\n\n", + "vuesax-linear:mobile": "\n\n\n\n\n", + "vuesax-linear:monero-(xmr)": "\n\n\n\n", + "vuesax-linear:money-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-3": "\n\n\n\n\n\n", + "vuesax-linear:money-4": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-change": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:money-forbidden": "\n\n\n\n\n\n\n", + "vuesax-linear:money-receive": "\n\n\n\n\n\n\n", + "vuesax-linear:money-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:money-send": "\n\n\n\n\n\n\n", + "vuesax-linear:money-tick": "\n\n\n\n\n\n\n", + "vuesax-linear:money-time": "\n\n\n\n\n\n\n", + "vuesax-linear:money": "\n\n\n\n\n\n", + "vuesax-linear:moneys": "\n\n\n\n\n\n\n", + "vuesax-linear:monitor-mobbile": "\n\n\n\n\n\n\n\n", + "vuesax-linear:monitor-recorder": "\n\n\n\n\n\n\n\n", + "vuesax-linear:monitor": "\n\n\n\n\n\n", + "vuesax-linear:moon": "\n\n\n", + "vuesax-linear:more-2": "\n\n\n\n\n", + "vuesax-linear:more-circle": "\n\n\n\n\n\n", + "vuesax-linear:more-square": "\n\n\n\n\n\n", + "vuesax-linear:more": "\n\n\n\n\n", + "vuesax-linear:mouse-1": "\n\n\n\n", + "vuesax-linear:mouse-circle": "\n\n\n\n", + "vuesax-linear:mouse-square": "\n\n\n\n", + "vuesax-linear:mouse": "\n\n\n\n\n", + "vuesax-linear:music-circle": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-dashboard": "\n\n\n\n\n\n\n\n", + "vuesax-linear:music-filter": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-library-2": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-play": "\n\n\n\n", + "vuesax-linear:music-playlist": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square-add": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square-remove": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square-search": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:music-square": "\n\n\n\n\n\n\n", + "vuesax-linear:music": "\n\n\n\n\n\n", + "vuesax-linear:musicnote": "\n\n\n\n\n", + "vuesax-linear:nebulas-(nas)": "\n\n\n\n\n\n", + "vuesax-linear:nem-(xem)": "\n\n\n\n\n", + "vuesax-linear:nexo-(nexo)": "\n\n\n\n", + "vuesax-linear:next": "\n\n\n\n", + "vuesax-linear:note-1": "\n\n\n\n\n\n\n", + "vuesax-linear:note-2": "\n\n\n\n\n\n", + "vuesax-linear:note-21": "\n\n\n\n", + "vuesax-linear:note-add": "\n\n\n\n\n\n\n", + "vuesax-linear:note-favorite": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:note-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:note-square": "\n\n\n\n\n\n", + "vuesax-linear:note-text": "\n\n\n\n\n\n\n", + "vuesax-linear:note": "\n\n\n\n\n\n", + "vuesax-linear:notification-1": "\n\n\n\n", + "vuesax-linear:notification-bing": "\n\n\n\n\n", + "vuesax-linear:notification-circle": "\n\n\n\n", + "vuesax-linear:notification-favorite": "\n\n\n\n\n", + "vuesax-linear:notification-status": "\n\n\n\n\n\n", + "vuesax-linear:notification": "\n\n\n\n\n", + "vuesax-linear:ocean-protocol-(ocean)": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:okb-(okb)": "\n\n\n\n\n\n", + "vuesax-linear:omega-circle-1": "\n\n\n\n", + "vuesax-linear:omega-circle": "\n\n\n\n", + "vuesax-linear:omega-square-1": "\n\n\n\n", + "vuesax-linear:omega-square": "\n\n\n\n", + "vuesax-linear:ontology-(ont)": "\n\n\n\n", + "vuesax-linear:paintbucket": "\n\n\n\n\n", + "vuesax-linear:paperclip-2": "\n\n\n", + "vuesax-linear:paperclip": "\n\n\n", + "vuesax-linear:password-check": "\n\n\n\n\n\n\n", + "vuesax-linear:path-2": "\n\n\n\n\n", + "vuesax-linear:path-square": "\n\n\n\n\n\n", + "vuesax-linear:path": "\n\n\n\n\n", + "vuesax-linear:pause-circle": "\n\n\n\n\n", + "vuesax-linear:pause": "\n\n\n\n", + "vuesax-linear:paypal": "\n\n\n\n", + "vuesax-linear:pen-add-1": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-add": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-close-1": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-close": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-remove-1": "\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool-1": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool-2-1": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool-2": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:pen-tool": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:people": "\n\n\n\n\n\n\n\n", + "vuesax-linear:percentage-square": "\n\n\n\n\n\n", + "vuesax-linear:personalcard": "\n\n\n\n\n\n\n\n", + "vuesax-linear:pet": "\n\n\n\n\n\n\n", + "vuesax-linear:pharagraphspacing": "\n\n\n\n\n\n\n", + "vuesax-linear:photoshop": "\n\n\n\n\n", + "vuesax-linear:picture-frame": "\n\n\n\n\n", + "vuesax-linear:play-add": "\n\n\n\n\n\n\n", + "vuesax-linear:play-circle": "\n\n\n\n", + "vuesax-linear:play-cricle": "\n\n\n\n\n\n\n", + "vuesax-linear:play-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:play": "\n\n\n", + "vuesax-linear:polkadot-(dot)": "\n\n\n\n", + "vuesax-linear:polygon-(matic)": "\n\n\n\n", + "vuesax-linear:polyswarm-(nct)": "\n\n\n\n\n\n", + "vuesax-linear:presention-chart": "\n\n\n\n\n\n\n", + "vuesax-linear:previous": "\n\n\n\n", + "vuesax-linear:printer-slash": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:printer": "\n\n\n\n\n\n\n", + "vuesax-linear:profile-2user": "\n\n\n\n\n\n", + "vuesax-linear:profile-add": "\n\n\n\n\n\n", + "vuesax-linear:profile-circle": "\n\n\n\n\n", + "vuesax-linear:profile-delete": "\n\n\n\n\n\n", + "vuesax-linear:profile-remove": "\n\n\n\n\n", + "vuesax-linear:profile-tick": "\n\n\n\n\n", + "vuesax-linear:profile": "\n\n\n\n", + "vuesax-linear:programming-arrow": "\n\n\n\n\n\n\n\n", + "vuesax-linear:programming-arrows": "\n\n\n\n\n\n\n\n", + "vuesax-linear:python": "\n\n\n\n\n\n\n", + "vuesax-linear:quant-(qnt)": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:quote-down-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-down-square": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-down": "\n\n\n\n\n\n", + "vuesax-linear:quote-up-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-up-square": "\n\n\n\n\n\n\n", + "vuesax-linear:quote-up": "\n\n\n\n\n\n", + "vuesax-linear:radar-1": "\n\n\n\n\n\n\n", + "vuesax-linear:radar-2": "\n\n\n\n", + "vuesax-linear:radar": "\n\n\n", + "vuesax-linear:radio": "\n\n\n\n\n\n\n\n", + "vuesax-linear:ram-2": "\n\n\n\n\n\n\n", + "vuesax-linear:ram": "\n\n\n\n\n", + "vuesax-linear:ranking-1": "\n\n\n\n\n\n", + "vuesax-linear:ranking": "\n\n\n\n\n\n", + "vuesax-linear:receipt-1": "\n\n\n\n\n", + "vuesax-linear:receipt-2-1": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-2": "\n\n\n\n\n", + "vuesax-linear:receipt-add": "\n\n\n\n\n\n", + "vuesax-linear:receipt-discount": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-disscount": "\n\n\n\n\n\n", + "vuesax-linear:receipt-edit": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-item": "\n\n\n\n\n\n\n\n", + "vuesax-linear:receipt-minus": "\n\n\n\n\n", + "vuesax-linear:receipt-search": "\n\n\n\n\n\n\n", + "vuesax-linear:receipt-square": "\n\n\n\n", + "vuesax-linear:receipt-text": "\n\n\n\n\n\n", + "vuesax-linear:receipt": "\n\n\n\n", + "vuesax-linear:receive-square-2": "\n\n\n\n\n\n", + "vuesax-linear:receive-square": "\n\n\n\n\n\n", + "vuesax-linear:received": "\n\n\n\n\n", + "vuesax-linear:record-circle": "\n\n\n\n", + "vuesax-linear:record": "\n\n\n", + "vuesax-linear:recovery-convert": "\n\n\n\n\n\n", + "vuesax-linear:redo": "\n\n\n\n", + "vuesax-linear:refresh-2": "\n\n\n", + "vuesax-linear:refresh-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:refresh-left-square": "\n\n\n\n\n\n", + "vuesax-linear:refresh-right-square": "\n\n\n\n\n\n", + "vuesax-linear:refresh-square-2": "\n\n\n\n", + "vuesax-linear:refresh": "\n\n\n\n", + "vuesax-linear:repeat-circle": "\n\n\n\n\n\n\n", + "vuesax-linear:repeat": "\n\n\n\n\n\n", + "vuesax-linear:repeate-music": "\n\n\n\n\n", + "vuesax-linear:repeate-one": "\n\n\n\n\n", + "vuesax-linear:reserve": "\n\n\n\n\n\n", + "vuesax-linear:rotate-left-1": "\n\n\n\n", + "vuesax-linear:rotate-left": "\n\n\n\n\n", + "vuesax-linear:rotate-right-1": "\n\n\n\n", + "vuesax-linear:rotate-right": "\n\n\n\n\n", + "vuesax-linear:route-square": "\n\n\n\n", + "vuesax-linear:routing-2": "\n\n\n\n\n\n\n", + "vuesax-linear:routing": "\n\n\n\n\n\n\n", + "vuesax-linear:row-horizontal": "\n\n\n\n", + "vuesax-linear:row-vertical": "\n\n\n\n", + "vuesax-linear:ruler&pen": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:ruler": "\n\n\n\n\n\n\n", + "vuesax-linear:safe-home": "\n\n\n\n", + "vuesax-linear:sagittarius": "\n\n\n\n\n", + "vuesax-linear:save-2": "\n\n\n\n\n", + "vuesax-linear:save-add": "\n\n\n\n\n\n", + "vuesax-linear:save-minus": "\n\n\n\n\n", + "vuesax-linear:save-remove": "\n\n\n\n\n\n", + "vuesax-linear:scan-barcode": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:scan": "\n\n\n\n\n\n\n\n", + "vuesax-linear:scanner": "\n\n\n\n\n", + "vuesax-linear:scanning": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:scissor-1": "\n\n\n\n\n\n", + "vuesax-linear:scissor-2": "\n\n\n\n\n\n\n", + "vuesax-linear:scissor": "\n\n\n\n\n\n", + "vuesax-linear:screenmirroring": "\n\n\n\n", + "vuesax-linear:scroll": "\n\n\n\n\n", + "vuesax-linear:search-favorite-1": "\n\n\n\n\n", + "vuesax-linear:search-favorite": "\n\n\n\n\n", + "vuesax-linear:search-normal-1": "\n\n\n\n", + "vuesax-linear:search-normal": "\n\n\n\n", + "vuesax-linear:search-status-1": "\n\n\n\n\n\n", + "vuesax-linear:search-status": "\n\n\n\n\n\n", + "vuesax-linear:search-zoom-in-1": "\n\n\n\n\n\n", + "vuesax-linear:search-zoom-in": "\n\n\n\n\n\n", + "vuesax-linear:search-zoom-out-1": "\n\n\n\n\n", + "vuesax-linear:search-zoom-out": "\n\n\n\n\n", + "vuesax-linear:security-card": "\n\n\n\n\n\n\n", + "vuesax-linear:security-safe": "\n\n\n\n\n", + "vuesax-linear:security-time": "\n\n\n\n\n", + "vuesax-linear:security-user": "\n\n\n\n\n", + "vuesax-linear:security": "\n\n\n", + "vuesax-linear:send-1": "\n\n\n\n", + "vuesax-linear:send-2": "\n\n\n\n", + "vuesax-linear:send-sqaure-2": "\n\n\n\n\n\n", + "vuesax-linear:send-square": "\n\n\n\n\n\n", + "vuesax-linear:send": "\n\n\n\n\n", + "vuesax-linear:setting-2": "\n\n\n\n", + "vuesax-linear:setting-3": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:setting-4": "\n\n\n\n\n\n\n\n", + "vuesax-linear:setting-5": "\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:setting": "\n\n\n\n", + "vuesax-linear:settings": "\n\n\n\n\n", + "vuesax-linear:shapes-1": "\n\n\n\n", + "vuesax-linear:shapes-2": "\n\n\n\n", + "vuesax-linear:shapes": "\n\n\n\n", + "vuesax-linear:share": "\n\n\n\n\n\n\n\n", + "vuesax-linear:shield-cross": "\n\n\n\n\n", + "vuesax-linear:shield-search": "\n\n\n\n\n", + "vuesax-linear:shield-security": "\n\n\n\n\n", + "vuesax-linear:shield-slash": "\n\n\n\n\n", + "vuesax-linear:shield-tick": "\n\n\n\n", + "vuesax-linear:shield": "\n\n\n", + "vuesax-linear:ship": "\n\n\n\n\n\n", + "vuesax-linear:shop-add": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:shop-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:shop": "\n\n\n\n\n\n\n", + "vuesax-linear:shopping-bag": "\n\n\n\n\n", + "vuesax-linear:shopping-cart": "\n\n\n\n\n\n", + "vuesax-linear:siacoin-(sc)": "\n\n\n\n\n", + "vuesax-linear:sidebar-bottom": "\n\n\n\n\n", + "vuesax-linear:sidebar-left": "\n\n\n\n\n", + "vuesax-linear:sidebar-right": "\n\n\n\n\n", + "vuesax-linear:sidebar-top": "\n\n\n\n\n", + "vuesax-linear:signpost": "\n\n\n\n\n\n\n", + "vuesax-linear:simcard-1": "\n\n\n\n\n\n", + "vuesax-linear:simcard-2": "\n\n\n\n", + "vuesax-linear:simcard": "\n\n\n\n\n", + "vuesax-linear:size": "\n\n\n\n", + "vuesax-linear:slack": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:slash": "\n\n\n\n", + "vuesax-linear:slider-horizontal-1": "\n\n\n\n\n", + "vuesax-linear:slider-horizontal": "\n\n\n\n\n", + "vuesax-linear:slider-vertical-1": "\n\n\n\n\n", + "vuesax-linear:slider-vertical": "\n\n\n\n\n", + "vuesax-linear:slider": "\n\n\n\n\n\n", + "vuesax-linear:smallcaps": "\n\n\n\n\n\n\n\n", + "vuesax-linear:smart-car": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:smart-home": "\n\n\n\n\n\n", + "vuesax-linear:smileys": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:sms-edit": "\n\n\n\n\n\n", + "vuesax-linear:sms-notification": "\n\n\n\n\n", + "vuesax-linear:sms-search": "\n\n\n\n\n\n", + "vuesax-linear:sms-star": "\n\n\n\n\n", + "vuesax-linear:sms-tracking": "\n\n\n\n\n\n", + "vuesax-linear:sms": "\n\n\n\n", + "vuesax-linear:snapchat": "\n\n\n\n", + "vuesax-linear:solana-(sol)": "\n\n\n\n\n", + "vuesax-linear:sort": "\n\n\n\n\n", + "vuesax-linear:sound": "\n\n\n\n\n\n\n", + "vuesax-linear:speaker": "\n\n\n\n\n", + "vuesax-linear:speedometer": "\n\n\n\n\n", + "vuesax-linear:spotify": "\n\n\n\n\n\n", + "vuesax-linear:stacks-(stx)": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:star-1": "\n\n\n", + "vuesax-linear:star-slash": "\n\n\n\n\n", + "vuesax-linear:star": "\n\n\n\n\n\n", + "vuesax-linear:status-up": "\n\n\n\n\n\n\n\n", + "vuesax-linear:status": "\n\n\n\n\n", + "vuesax-linear:stellar-(xlm)": "\n\n\n\n\n\n", + "vuesax-linear:sticker": "\n\n\n\n", + "vuesax-linear:stickynote": "\n\n\n\n\n\n\n\n", + "vuesax-linear:stop-circle": "\n\n\n\n", + "vuesax-linear:stop": "\n\n\n", + "vuesax-linear:story": "\n\n\n\n\n\n", + "vuesax-linear:strongbox-2": "\n\n\n\n\n\n\n\n", + "vuesax-linear:strongbox": "\n\n\n\n\n\n", + "vuesax-linear:subtitle": "\n\n\n\n\n\n\n", + "vuesax-linear:sun-1": "\n\n\n\n", + "vuesax-linear:sun-fog": "\n\n\n\n\n\n\n", + "vuesax-linear:sun": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:tag-2": "\n\n\n\n\n", + "vuesax-linear:tag-cross": "\n\n\n\n\n", + "vuesax-linear:tag-right": "\n\n\n", + "vuesax-linear:tag-user": "\n\n\n\n\n", + "vuesax-linear:tag": "\n\n\n\n", + "vuesax-linear:task-square": "\n\n\n\n\n\n\n", + "vuesax-linear:task": "\n\n\n\n\n\n\n\n", + "vuesax-linear:teacher": "\n\n\n\n\n", + "vuesax-linear:tenx-(pay)": "\n\n\n\n", + "vuesax-linear:tether-(usdt)": "\n\n\n\n\n", + "vuesax-linear:text-block": "\n\n\n\n\n", + "vuesax-linear:text-bold": "\n\n\n\n", + "vuesax-linear:text-italic": "\n\n\n\n\n", + "vuesax-linear:text-underline": "\n\n\n\n", + "vuesax-linear:text": "\n\n\n\n\n", + "vuesax-linear:textalign-center": "\n\n\n\n\n\n", + "vuesax-linear:textalign-justifycenter": "\n\n\n\n\n\n", + "vuesax-linear:textalign-justifyleft": "\n\n\n\n\n\n", + "vuesax-linear:textalign-justifyright": "\n\n\n\n\n\n", + "vuesax-linear:textalign-left": "\n\n\n\n\n\n", + "vuesax-linear:textalign-right": "\n\n\n\n\n\n", + "vuesax-linear:the-graph-(grt)": "\n\n\n\n\n\n", + "vuesax-linear:theta-(theta)": "\n\n\n\n\n\n\n\n", + "vuesax-linear:thorchain-(rune)": "\n\n\n", + "vuesax-linear:tick-circle": "\n\n\n\n", + "vuesax-linear:tick-square": "\n\n\n\n", + "vuesax-linear:ticket-2": "\n\n\n\n\n", + "vuesax-linear:ticket-discount": "\n\n\n\n\n\n", + "vuesax-linear:ticket-expired": "\n\n\n\n\n", + "vuesax-linear:ticket-star": "\n\n\n\n\n\n", + "vuesax-linear:ticket": "\n\n\n\n", + "vuesax-linear:timer-1": "\n\n\n\n\n", + "vuesax-linear:timer-pause": "\n\n\n\n\n\n\n", + "vuesax-linear:timer-start": "\n\n\n\n\n\n", + "vuesax-linear:timer": "\n\n\n", + "vuesax-linear:toggle-off-circle": "\n\n\n\n", + "vuesax-linear:toggle-off": "\n\n\n\n", + "vuesax-linear:toggle-on-circle": "\n\n\n\n", + "vuesax-linear:toggle-on": "\n\n\n\n", + "vuesax-linear:trade": "\n\n\n\n\n\n", + "vuesax-linear:transaction-minus": "\n\n\n\n", + "vuesax-linear:translate": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:trash": "\n\n\n\n\n\n\n", + "vuesax-linear:tree": "\n\n\n\n\n", + "vuesax-linear:trello": "\n\n\n\n\n", + "vuesax-linear:trend-down": "\n\n\n\n\n", + "vuesax-linear:trend-up": "\n\n\n\n\n", + "vuesax-linear:triangle": "\n\n\n\n\n", + "vuesax-linear:trontron-(trx)": "\n\n\n\n\n", + "vuesax-linear:truck-remove": "\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:truck-tick": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:truck-time": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:trush-square": "\n\n\n\n\n\n", + "vuesax-linear:twitch": "\n\n\n\n\n", + "vuesax-linear:ui8": "\n\n\n\n\n\n\n", + "vuesax-linear:undo": "\n\n\n\n", + "vuesax-linear:unlimited": "\n\n\n", + "vuesax-linear:unlock": "\n\n\n\n\n", + "vuesax-linear:usd-coin-(usdc)": "\n\n\n\n\n\n\n", + "vuesax-linear:user-add": "\n\n\n\n\n\n\n", + "vuesax-linear:user-cirlce-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:user-edit": "\n\n\n\n\n\n", + "vuesax-linear:user-minus": "\n\n\n\n\n\n", + "vuesax-linear:user-octagon": "\n\n\n\n\n", + "vuesax-linear:user-remove": "\n\n\n\n\n\n\n", + "vuesax-linear:user-search": "\n\n\n\n\n\n", + "vuesax-linear:user-square": "\n\n\n\n\n", + "vuesax-linear:user-tag": "\n\n\n\n\n", + "vuesax-linear:user-tick": "\n\n\n\n\n\n", + "vuesax-linear:user": "\n\n\n\n", + "vuesax-linear:velas-(vlx)": "\n\n\n\n", + "vuesax-linear:verify": "\n\n\n\n", + "vuesax-linear:vibe-(vibe)": "\n\n\n\n\n", + "vuesax-linear:video-add": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video-circle": "\n\n\n\n", + "vuesax-linear:video-horizontal": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video-octagon": "\n\n\n\n", + "vuesax-linear:video-play": "\n\n\n\n\n\n\n", + "vuesax-linear:video-remove": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video-slash": "\n\n\n\n\n\n", + "vuesax-linear:video-square": "\n\n\n\n", + "vuesax-linear:video-tick": "\n\n\n\n\n\n\n\n", + "vuesax-linear:video-time": "\n\n\n\n\n\n\n\n", + "vuesax-linear:video-vertical": "\n\n\n\n\n\n\n\n\n\n\n\n", + "vuesax-linear:video": "\n\n\n\n\n", + "vuesax-linear:voice-cricle": "\n\n\n\n\n\n\n\n", + "vuesax-linear:voice-square": "\n\n\n\n\n\n\n\n", + "vuesax-linear:volume-cross": "\n\n\n\n\n", + "vuesax-linear:volume-high": "\n\n\n\n\n", + "vuesax-linear:volume-low-1": "\n\n\n\n", + "vuesax-linear:volume-low": "\n\n\n\n", + "vuesax-linear:volume-mute": "\n\n\n", + "vuesax-linear:volume-slash": "\n\n\n\n\n\n\n", + "vuesax-linear:volume-up": "\n\n\n\n\n", + "vuesax-linear:vuesax": "\n\n\n\n\n", + "vuesax-linear:wallet-1": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet-2": "\n\n\n\n\n", + "vuesax-linear:wallet-3": "\n\n\n\n\n\n", + "vuesax-linear:wallet-add-1": "\n\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-add": "\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-check": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet-minus": "\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-money": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet-remove": "\n\n\n\n\n\n\n\n", + "vuesax-linear:wallet-search": "\n\n\n\n\n\n\n", + "vuesax-linear:wallet": "\n\n\n\n\n", + "vuesax-linear:wanchain-(wan)-1": "\n\n\n", + "vuesax-linear:wanchain-(wan)": "\n\n\n\n\n\n", + "vuesax-linear:warning-2": "\n\n\n\n\n", + "vuesax-linear:watch-status": "\n\n\n\n\n\n\n\n", + "vuesax-linear:watch": "\n\n\n\n\n\n", + "vuesax-linear:weight-1": "\n\n\n\n\n\n\n", + "vuesax-linear:weight": "\n\n\n\n", + "vuesax-linear:whatsapp": "\n\n\n\n", + "vuesax-linear:wifi-square": "\n\n\n\n\n\n", + "vuesax-linear:wifi": "\n\n\n\n\n\n", + "vuesax-linear:wind-2": "\n\n\n\n\n", + "vuesax-linear:wind": "\n\n\n\n\n", + "vuesax-linear:windows": "\n\n\n\n\n\n", + "vuesax-linear:wing-(wing)": "\n\n\n\n\n", + "vuesax-linear:woman": "\n\n\n\n\n", + "vuesax-linear:xd": "\n\n\n\n\n\n", + "vuesax-linear:xiaomi": "\n\n\n\n\n\n", + "vuesax-linear:xrp-(xrp)": "\n\n\n\n", + "vuesax-linear:youtube": "\n\n\n\n", + "vuesax-linear:zel-(zel)": "\n\n\n\n\n\n", + "vuesax-linear:zoom": "\n\n\n\n\n", + "other:target": "\n\n\n\n\n", + "vuesax-linear:record-plus":"\n\n\n\n\n", + "other:more-square":"\n \n \n\n" +} \ No newline at end of file diff --git a/src/composables/useOnceAsync.ts b/src/composables/useOnceAsync.ts new file mode 100644 index 0000000..faf1de5 --- /dev/null +++ b/src/composables/useOnceAsync.ts @@ -0,0 +1,44 @@ +/** + * Deduplicate async work across remounts (e.g. accidental v-if layout switches). + * Prefer fixing layout with v-show + parent-level fetch; use this in stores/shared loaders. + */ + +const cache = new Map() +const inflight = new Map>() + +export async function runOnceAsync(key: string, fn: () => Promise, force = false): Promise { + if (!force && cache.has(key)) { + return cache.get(key) as T + } + + if (!force && inflight.has(key)) { + return inflight.get(key) as Promise + } + + const promise = fn() + .then((result) => { + cache.set(key, result) + return result + }) + .finally(() => { + if (inflight.get(key) === promise) { + inflight.delete(key) + } + }) + + inflight.set(key, promise) + return promise +} + +export function resetOnceAsync(key: string) { + cache.delete(key) + inflight.delete(key) +} + +export function resetOnceAsyncByPrefix(prefix: string) { + for (const key of [...cache.keys(), ...inflight.keys()]) { + if (key.startsWith(prefix)) { + resetOnceAsync(key) + } + } +} diff --git a/src/composables/useProductsCatalog.ts b/src/composables/useProductsCatalog.ts new file mode 100644 index 0000000..8944f96 --- /dev/null +++ b/src/composables/useProductsCatalog.ts @@ -0,0 +1,42 @@ +import { ref } from 'vue' +import { getProducts } from '@/api/products' +import type { Product } from '@/models/products' +import { syncProductTradingHoursFromProducts } from '@/utils/storeHours' + +/** Shared product catalog — dedupes getProducts() across wallet assets and chart offset. */ +const catalogProducts = ref([]) +let catalogPromise: Promise | null = null + +export function getProductsCatalogRef() { + return catalogProducts +} + +export function getProductsCatalog(force = false): Promise { + if (!force && catalogProducts.value.length > 0) { + return Promise.resolve(catalogProducts.value) + } + + if (!force && catalogPromise) { + return catalogPromise + } + + catalogPromise = getProducts() + .then((products) => { + // وقتی فروشگاه بسته است API گاهی [] برمی‌گرداند — کاتالوگ قبلی را پاک نکن + if (Array.isArray(products) && products.length > 0) { + catalogProducts.value = products + syncProductTradingHoursFromProducts(catalogProducts.value) + } + return catalogProducts.value + }) + .finally(() => { + catalogPromise = null + }) + + return catalogPromise +} + +export function clearProductsCatalog() { + catalogProducts.value = [] + catalogPromise = null +} diff --git a/src/config/app-config.ts b/src/config/app-config.ts new file mode 100644 index 0000000..c8f1785 --- /dev/null +++ b/src/config/app-config.ts @@ -0,0 +1,37 @@ +import type { AppConfig } from './types' + +type RawAppConfig = AppConfig & { + user?: Record +} + +let appConfig: RawAppConfig | null = null + +export function setAppConfig(config: RawAppConfig) { + appConfig = config || {} + window.__APP_CONFIG__ = appConfig +} + +export function getRawAppConfig() { + return appConfig ?? window.__APP_CONFIG__ ?? null +} + +export function getTenantConfig() { + const rawConfig = getRawAppConfig() + + if (rawConfig?.user && typeof rawConfig.user === 'object') { + return rawConfig.user + } + + if (rawConfig && Object.keys(rawConfig).length > 0) { + return rawConfig + } + + return {} +} + +export function getConfig(key: string, fallback?: T): T { + const config = getTenantConfig() + const value = config?.[key] + + return (value ?? fallback ?? null) as T +} diff --git a/src/config/config-cache.ts b/src/config/config-cache.ts new file mode 100644 index 0000000..55d0d2b --- /dev/null +++ b/src/config/config-cache.ts @@ -0,0 +1,281 @@ +import type { AppConfig } from '@/config/types' +import { resetVersionCheckCache } from '@/config/load-version' +import { clearCachedPwaManifest } from '@/modules/pwa/manifest-cache' +import { collectAuthTokensForPreserve } from '@/utils/authToken' + +const CONFIG_COOKIE_NAME = 'APP_CONFIG_CACHE' +const CONFIG_SUCCESS_URL_KEY = 'CONFIG_Success_URL' +const VERSION_SUCCESS_URL_KEY = 'VERSION_Success_URL' +const CONFIG_COOKIE_MAX_AGE_SECONDS = 60 * 60 * 24 * 7 +const MAX_COOKIE_VALUE_LENGTH = 3500 + +const VERSION_STORAGE_KEY = 'version' +const VERSION_UPDATE_LOCK_KEY = 'version_update_lock' +const VERSION_LAST_RELOAD_KEY = 'version_last_reload' + +type CachedConfigPayload = { + cached_at: number + config: AppConfig +} + +type VersionUpdateLock = { + version: string + started_at: number +} + +function getCookie(name: string) { + const cookie = document.cookie.split('; ').find((row) => row.startsWith(`${name}=`)) + + if (!cookie) return null + + return cookie.substring(name.length + 1) +} + +function setCookie(name: string, value: string, maxAgeSeconds: number) { + const secure = window.location.protocol === 'https:' ? '; Secure' : '' + + document.cookie = [ + `${name}=${value}`, + 'Path=/', + `Max-Age=${maxAgeSeconds}`, + 'SameSite=Lax', + secure + ].join('; ') +} + +export function readCachedAppConfig(): AppConfig | null { + try { + const rawCookie = getCookie(CONFIG_COOKIE_NAME) + + if (!rawCookie) return null + + const decoded = decodeURIComponent(rawCookie) + const payload = JSON.parse(decoded) as CachedConfigPayload + + if (!payload?.config) return null + + return payload.config + } catch (error) { + console.warn('Failed to read cached app config:', error) + clearCachedAppConfig() + return null + } +} + +export function writeCachedAppConfig(config: AppConfig) { + try { + const payload: CachedConfigPayload = { + cached_at: Date.now(), + config + } + + const encoded = encodeURIComponent(JSON.stringify(payload)) + + if (encoded.length > MAX_COOKIE_VALUE_LENGTH) { + console.warn(`App config is too large for cookie cache. Size: ${encoded.length}`) + return + } + + setCookie(CONFIG_COOKIE_NAME, encoded, CONFIG_COOKIE_MAX_AGE_SECONDS) + } catch (error) { + console.warn('Failed to write app config cache:', error) + } +} + +export function clearCachedAppConfig() { + document.cookie = `${CONFIG_COOKIE_NAME}=; Path=/; Max-Age=0; SameSite=Lax` + clearCachedPwaManifest() +} + +export function getStoredAppVersion() { + return localStorage.getItem(VERSION_STORAGE_KEY) +} + +export function getDisplayAppVersion(fallbackVersion: string) { + return getStoredAppVersion() || fallbackVersion +} + +export function writeStoredAppVersion(version: string) { + localStorage.setItem(VERSION_STORAGE_KEY, String(version).trim()) +} + +export function getNormalizedVersion(version: unknown) { + if (version === null || version === undefined) return '' + return String(version).trim() +} + +export function shouldUpdateForVersion(serverVersion: unknown) { + const normalizedServerVersion = getNormalizedVersion(serverVersion) + + if (!normalizedServerVersion) return false + + const storedVersion = getStoredAppVersion() + + if (!storedVersion) { + writeStoredAppVersion(normalizedServerVersion) + return false + } + + return storedVersion !== normalizedServerVersion +} + +export function canStartVersionUpdate(serverVersion: string) { + const version = getNormalizedVersion(serverVersion) + + if (!version) return false + + const lastReloadVersion = sessionStorage.getItem(VERSION_LAST_RELOAD_KEY) + + if (lastReloadVersion === version) { + return false + } + + const rawLock = sessionStorage.getItem(VERSION_UPDATE_LOCK_KEY) + + if (rawLock) { + try { + const lock = JSON.parse(rawLock) as VersionUpdateLock + const isSameVersion = lock.version === version + const isFreshLock = Date.now() - lock.started_at < 60_000 + + if (isSameVersion && isFreshLock) { + return false + } + } catch { + sessionStorage.removeItem(VERSION_UPDATE_LOCK_KEY) + } + } + + return true +} + +export function startVersionUpdateLock(serverVersion: string) { + const version = getNormalizedVersion(serverVersion) + + const lock: VersionUpdateLock = { + version, + started_at: Date.now() + } + + sessionStorage.setItem(VERSION_UPDATE_LOCK_KEY, JSON.stringify(lock)) +} + +export function finishVersionUpdateBeforeReload(serverVersion: string) { + const version = getNormalizedVersion(serverVersion) + + writeStoredAppVersion(version) + + sessionStorage.setItem(VERSION_LAST_RELOAD_KEY, version) + sessionStorage.removeItem(VERSION_UPDATE_LOCK_KEY) +} + +export function cancelVersionUpdateLock() { + sessionStorage.removeItem(VERSION_UPDATE_LOCK_KEY) +} + +function clearReadableCookiesExceptConfigAlreadyHandled() { + document.cookie.split(';').forEach((cookie) => { + const name = cookie.split('=')[0]?.trim() + + if (!name) return + + document.cookie = `${name}=; Path=/; Max-Age=0; SameSite=Lax` + }) +} + +export async function clearBrowserRuntimeCaches() { + try { + if ('serviceWorker' in navigator) { + const registrations = await navigator.serviceWorker.getRegistrations() + + await Promise.all(registrations.map((registration) => registration.unregister())) + } + } catch (error) { + console.warn('Could not unregister service workers:', error) + } + + try { + if (!('caches' in window)) return + + const cacheKeys = await caches.keys() + await Promise.all(cacheKeys.map((key) => caches.delete(key))) + } catch (error) { + console.warn('Could not clear browser caches:', error) + } +} + +function clearLocalStorageExceptToken() { + const preserved = collectAuthTokensForPreserve() + + localStorage.clear() + + for (const [key, value] of Object.entries(preserved)) { + localStorage.setItem(key, value) + } +} + +export function clearAppStorageExceptToken() { + clearReadableCookiesExceptConfigAlreadyHandled() + clearLocalStorageExceptToken() + sessionStorage.clear() +} + +export function clearAllBootstrapFetchCaches() { + localStorage.removeItem(CONFIG_SUCCESS_URL_KEY) + localStorage.removeItem(VERSION_SUCCESS_URL_KEY) + clearCachedPwaManifest() + resetVersionCheckCache() + window.__APP_CONFIG__ = undefined +} + +export function hardReloadApp() { + const refreshUrl = `${window.location.origin}${window.location.pathname}?__app_refresh=${Date.now()}` + window.location.href = refreshUrl +} + +export async function refreshConfigCacheForVersion( + newVersion: string, + fetchConfig: () => Promise +) { + const normalizedVersion = getNormalizedVersion(newVersion) + + if (!normalizedVersion) { + throw new Error('Version is empty') + } + + startVersionUpdateLock(normalizedVersion) + + const freshConfig = await fetchConfig() + + clearCachedAppConfig() + clearAppStorageExceptToken() + clearAllBootstrapFetchCaches() + await clearBrowserRuntimeCaches() + + writeCachedAppConfig(freshConfig) + finishVersionUpdateBeforeReload(normalizedVersion) + + return freshConfig +} + +export async function resetAppAndRefreshConfig( + fetchConfig: () => Promise, + version?: string | null +) { + const normalizedVersion = getNormalizedVersion(version) + + const freshConfig = await fetchConfig() + + clearCachedAppConfig() + clearAppStorageExceptToken() + clearAllBootstrapFetchCaches() + await clearBrowserRuntimeCaches() + + writeCachedAppConfig(freshConfig) + + if (normalizedVersion) { + writeStoredAppVersion(normalizedVersion) + } + + return freshConfig +} diff --git a/src/config/load-config.ts b/src/config/load-config.ts new file mode 100644 index 0000000..b73be78 --- /dev/null +++ b/src/config/load-config.ts @@ -0,0 +1,102 @@ +import type { AppConfig } from '@/config/types' +import { readCachedAppConfig, writeCachedAppConfig } from '@/config/config-cache' + +const CONFIG_SUCCESS_URL_KEY = 'CONFIG_Success_URL' +export const CONFIG_RETRY_ROUNDS = 5 + +function getProtocol() { + return window.location.protocol === 'https:' ? 'https:' : 'http:' +} + +export function getConfigUrls() { + const protocol = getProtocol() + + return [ + `${protocol}//nerkh.gold/get_user`, + `${protocol}//tablo.talasevin.ir/get_user`, + `${protocol}//abshode-service.montgit.ir/server/get_user`, + `${protocol}//212.23.201.173:8381/get_user`, + `${protocol}//91.212.174.137:4040/server/get_user` + ] +} + +export function sortConfigUrls(urls: string[]) { + const lastSuccessUrl = localStorage.getItem(CONFIG_SUCCESS_URL_KEY) + + return [...urls].sort((a, b) => { + if (a === lastSuccessUrl) return -1 + if (b === lastSuccessUrl) return 1 + return 0 + }) +} + +function clearStaleConfigSuccessUrl(url: string) { + if (localStorage.getItem(CONFIG_SUCCESS_URL_KEY) === url) { + localStorage.removeItem(CONFIG_SUCCESS_URL_KEY) + } +} + +async function fetchConfig(url: string, timeout = 3000): Promise { + const controller = new AbortController() + const timeoutId = window.setTimeout(() => controller.abort(), timeout) + + try { + const response = await fetch(url, { + method: 'GET', + headers: { + Accept: 'application/json' + }, + cache: 'no-store', + signal: controller.signal + }) + + if (!response.ok) { + throw new Error(`Config request failed with status ${response.status}`) + } + + const contentType = response.headers.get('content-type') ?? '' + + if (!contentType.includes('application/json')) { + throw new Error('Config response is not JSON') + } + + return await response.json() + } finally { + clearTimeout(timeoutId) + } +} + +export async function fetchFreshAppConfig(rounds = CONFIG_RETRY_ROUNDS): Promise { + const urls = sortConfigUrls(getConfigUrls()) + + for (let round = 1; round <= rounds; round++) { + for (let index = 0; index < urls.length; index++) { + const url = urls[index] + + try { + const timeout = index === urls.length - 1 ? 7000 : 4000 + const config = await fetchConfig(url, timeout) + + localStorage.setItem(CONFIG_SUCCESS_URL_KEY, url) + writeCachedAppConfig(config) + + return config + } catch (error) { + clearStaleConfigSuccessUrl(url) + console.warn(`Config failed from ${url}. Round: ${round}`, error) + } + } + } + + throw new Error('Cannot load app config from any server') +} + +export async function loadAppConfig(): Promise { + const cachedConfig = readCachedAppConfig() + + if (cachedConfig) { + return cachedConfig + } + + return await fetchFreshAppConfig() +} diff --git a/src/config/load-version.ts b/src/config/load-version.ts new file mode 100644 index 0000000..5cbd77d --- /dev/null +++ b/src/config/load-version.ts @@ -0,0 +1,179 @@ +type VersionResponse = + | string + | number + | { + version?: string | number + data?: string | number | { version?: string | number; value?: string | number } + value?: string | number + user?: unknown + } + +const VERSION_SUCCESS_URL_KEY = 'VERSION_Success_URL' +export const VERSION_RETRY_ROUNDS = 5 + +let versionFetchPromise: Promise | null = null +let cachedVersionResult: string | null | undefined + +function getProtocol() { + return window.location.protocol === 'https:' ? 'https:' : 'http:' +} + +function getVersionUrls() { + const protocol = getProtocol() + + return [ + 'https://nerkh.gold/get_version', + 'https://tablo.talasevin.ir/get_version', + 'https://abshode-service.montgit.ir/server/get_version', + `${protocol}//212.23.201.173:8381/get_version`, + `${protocol}//91.212.174.137:4040/server/get_version` + ] +} + +function sortVersionUrls(urls: string[]) { + const lastSuccessUrl = localStorage.getItem(VERSION_SUCCESS_URL_KEY) + + if (!lastSuccessUrl) { + return urls + } + + const others = urls.filter((url) => url !== lastSuccessUrl) + return [lastSuccessUrl, ...others] +} + +function clearStaleVersionSuccessUrl(url: string) { + if (localStorage.getItem(VERSION_SUCCESS_URL_KEY) === url) { + localStorage.removeItem(VERSION_SUCCESS_URL_KEY) + } +} + +function readUserVersion(user: unknown) { + if (!user || typeof user !== 'object' || Array.isArray(user)) { + return '' + } + + const record = user as { version?: string | number; value?: string | number } + const version = record.version ?? record.value + + return version === undefined || version === null ? '' : String(version).trim() +} + +function normalizeVersionResponse(response: VersionResponse) { + if (typeof response === 'string' || typeof response === 'number') { + return String(response).trim() + } + + if (!response) return '' + + if (typeof response.data === 'string' || typeof response.data === 'number') { + return String(response.data).trim() + } + + const directVersion = + response.version ?? + response.value ?? + (typeof response.data === 'object' ? response.data?.version ?? response.data?.value : undefined) + + if (directVersion !== undefined && directVersion !== null) { + return String(directVersion).trim() + } + + return readUserVersion(response.user) +} + +async function fetchVersion(url: string, timeout = 3500): Promise { + const controller = new AbortController() + const timeoutId = window.setTimeout(() => controller.abort(), timeout) + + try { + const response = await fetch(url, { + method: 'GET', + headers: { + Accept: 'application/json' + }, + cache: 'no-store', + signal: controller.signal + }) + + if (!response.ok) { + throw new Error(`Version request failed with status ${response.status}`) + } + + const contentType = response.headers.get('content-type') ?? '' + + const data = contentType.includes('application/json') + ? ((await response.json()) as VersionResponse) + : ((await response.text()) as VersionResponse) + + const version = normalizeVersionResponse(data) + + if (!version) { + throw new Error('Version response is empty') + } + + localStorage.setItem(VERSION_SUCCESS_URL_KEY, url) + + return version + } finally { + window.clearTimeout(timeoutId) + } +} + +async function fetchVersionWithRetry(rounds = VERSION_RETRY_ROUNDS): Promise { + const urls = sortVersionUrls(getVersionUrls()) + + for (let round = 1; round <= rounds; round++) { + for (let index = 0; index < urls.length; index++) { + const url = urls[index] + const timeout = index === urls.length - 1 ? 6000 : 3500 + + try { + const version = await fetchVersion(url, timeout) + if (version) { + return version + } + } catch (error) { + clearStaleVersionSuccessUrl(url) + console.warn(`Version failed from ${url}. Round: ${round}`, error) + } + } + } + + return null +} + +export function resetVersionCheckCache() { + cachedVersionResult = undefined + versionFetchPromise = null +} + +export async function loadRemoteAppVersion(options?: { + rounds?: number + force?: boolean +}): Promise { + const rounds = options?.rounds ?? VERSION_RETRY_ROUNDS + const force = options?.force ?? false + + if (force) { + resetVersionCheckCache() + } + + if (cachedVersionResult !== undefined) { + return cachedVersionResult + } + + if (versionFetchPromise) { + return versionFetchPromise + } + + versionFetchPromise = fetchVersionWithRetry(rounds) + .then((version) => { + cachedVersionResult = version + return version + }) + .finally(() => { + versionFetchPromise = null + }) + + return versionFetchPromise +} diff --git a/src/config/types.ts b/src/config/types.ts new file mode 100644 index 0000000..c6b9b8c --- /dev/null +++ b/src/config/types.ts @@ -0,0 +1,20 @@ +export interface AppConfig { + mode?: string + theme?: string + name?: string + name_fa?: string + + avatar?: string + color?: string + background_color?: string + secondary_color?: string + + node_server?: string + node_ws?: string + + manifest_url?: string + + user?: Record + + [key: string]: any +} diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..234dd6f --- /dev/null +++ b/src/main.ts @@ -0,0 +1,32 @@ +import 'ant-design-vue/dist/antd.less' +import './assets/css/landing-entry.less' +import 'virtual:uno.css' +import '@unocss/reset/tailwind-compat.css' + +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import App from '@/App.vue' +import router from '@/router' +import { loadAppConfig } from '@/config/load-config' +import { setAppConfig } from '@/config/app-config' +import { applyProjectTheme } from '@/utils/config' +import { useSettingsStore } from '@/store/settingsStore' + +async function bootstrapLanding() { + const config = await loadAppConfig() + setAppConfig(config) + applyProjectTheme() + + const app = createApp(App) + const pinia = createPinia() + app.use(pinia) + app.use(router) + + const settingsStore = useSettingsStore() + await settingsStore.fetchSettings() + + app.mount('#app') + ;(window as Window & { __APP_BOOTSTRAPPED__?: boolean }).__APP_BOOTSTRAPPED__ = true +} + +void bootstrapLanding() diff --git a/src/models/home.ts b/src/models/home.ts new file mode 100644 index 0000000..f68f6ac --- /dev/null +++ b/src/models/home.ts @@ -0,0 +1,34 @@ +/*export interface Series { + x: string + y: Array +}*/ +export interface Series { + +} + +/* + export interface Chart { + Array +} +*/ + +export interface PriceUp { + buy: number + sell: number +} + +export type PriceStatus = 'open' | 'closed' | 'no_quote' + +export interface Price { + sell: number + buy: number + price: number + price_last: number + goldir?: number + up?: PriceUp + closed?: boolean + status?: PriceStatus + time?: string + main_product?: number + montzar?: number +} \ No newline at end of file diff --git a/src/models/login.ts b/src/models/login.ts new file mode 100644 index 0000000..1974c6b --- /dev/null +++ b/src/models/login.ts @@ -0,0 +1,68 @@ +/* +export interface UserMobile { + mobile: string +} +export interface UserPassword { + password: string +} + +export interface Token { + access_token: string +} +*/ +import type {PWallet, Wallet, Wallets} from '@/models/wallet' + +export interface User { + id: number; + fname: string; + lname: string; + name: string; + active: boolean; + mobile: string; + avatar_id?: number | null; + avatar_url?: string | null; + full_src?: string | null; + avatar?: { id?: number; src?: string; full_src?: string; url?: string }; + file?: { id?: number; src?: string; full_src?: string; url?: string }; + last_seen_at: string; + default_address_id?: any; + sts?: any; + gold_sum?: number + type: number; + total_transaction: number; + orders_count: number; + birth_date: string; + shop_name: string; + phone_number?: any; + city?: any; + province?: any; + n_code: string; + is_archive: boolean; + trade_active: number; + referral_id: string; + gram: number; + is_legal: number; + created_at: string; + updated_at: string; + access_token?: string; + deleted_at?: any; + wallet: Wallet; + pwallet:PWallet; + wallets: Wallets[] + + finger_print: boolean + gold: number; +} + +export interface Login { + id?: number + mobile?: string + password?: string + token?: string + provider: string +} + +export interface Password{ + password?: string +} + diff --git a/src/models/products.ts b/src/models/products.ts new file mode 100644 index 0000000..280c1bf --- /dev/null +++ b/src/models/products.ts @@ -0,0 +1,80 @@ +import type {Wallet} from "@/models/wallet"; +import type { ProductFile } from '@/utils/file' + +export interface Product { + id: number + img: string | undefined + title: string + amount: any + metal_id: any + file_id: any + file?: ProductFile | null + unit: string + active: boolean + show: boolean + show_in_assets?: boolean + open_sell: boolean + open_buy: boolean + group_type:string + percent_fee_buy: number | undefined + percent_fee_sell: number | undefined + cash_fee_buy: number | undefined + cash_fee_sell: number | undefined + cash_fee_buy_is_percent?: boolean + cash_fee_sell_is_percent?: boolean + order_limit_enabled?: boolean + min_order_cash?: number | null + max_order_cash?: number | null + has_physical_delivery?: boolean + min_physical_delivery_quantity?: number | null + direct_price: number | undefined + price_offset_percent?: number | null + use_last_price_if_zero?: boolean + reference_provider_active?: boolean + trade_by_quantity?: boolean + reading_method: any + created_at: any + updated_at: any + deleted_at: any + price?:number | undefined + sellPrice?:number | undefined + wallet: Wallet + auto_close_at: string + auto_open_at: string + price_profit: number +} + +export interface PInventory { + id: number + title: string + amount: any + metal_id: any + file_id: any + file?: ProductFile | null + active: boolean + show: boolean + open_sell: boolean + open_buy: boolean + group_type:string + percent_fee_buy: number + percent_fee_sell: number + cash_fee_buy: number + cash_fee_sell: number + cash_fee_buy_is_percent?: boolean + cash_fee_sell_is_percent?: boolean + has_physical_delivery?: boolean + min_physical_delivery_quantity?: number | null + reading_method: any + created_at: any + updated_at: any + deleted_at: any + price?:number + unit?: string + direct_price?: number + wallet:Wallet +} + +export interface CountPInventory { + count: number + product: PInventory +} \ No newline at end of file diff --git a/src/models/wallet.ts b/src/models/wallet.ts new file mode 100644 index 0000000..95aa40e --- /dev/null +++ b/src/models/wallet.ts @@ -0,0 +1,97 @@ +/* +export interface deposit { + price?: number +} +export interface endurance { + price?: number + percentWallet?: number +}*/ + +/*export interface Wallet { + price?: number + percentWallet?: number +}*/ + +import type {Product} from "@/models/products"; + +export interface Wallet { + owner: number, + treasure: number, + treasure_sum: number, + id: number, + gold: number, + gold_block: number, + cash: number + gold_sum: number + product: Product + cash_block: number + count_cash: number + count_cash_wallet: number + count_cash_wallets: number + count_gold: number + count_gold_wallet: number + count_gold_wallets: number + count_silver: number + count_copper: number + count_product: number + count_cash_total: number + /** boursecu: موجودی دارایی کاتد مس (کیلوگرم) — API field: count_katod_mes */ + count_katod_mes?: number + /** boursecu: موجودی دارایی مفتول مس (کیلوگرم) */ + count_maftol_mes?: number +} +export interface Wallets { + cash : number + created_at : string + fund_id : null | number + gold : number + hash : string + id : number + number : number + owner : number + owner_type : number + product : Product | null + product_id : null | number + updated_at : string +} + +export type UserWalletLine = Wallets + +export interface PWallet { + id: number + owner_type: number + created_at: string + updated_at: string + owner: number + cash: number + hash: string + gold: number + fund_id: any + product_id: number + number: number + product: Product +} + +export interface Test { + price?: number, + percentWallet: number +} + +export interface WithdrawConfirm { + account_number?: string + bank_name?: string + birth_date?: string + cart_number?: string + shaba_number?: string +} + +export interface Card { + id?: number + birth_date: number + cart_number?: string + shaba_number?: string + bank_name?: string + account_number?: string + sts?: number + sts_str?: string +} \ No newline at end of file diff --git a/src/modules/pwa/manifest-cache.ts b/src/modules/pwa/manifest-cache.ts new file mode 100644 index 0000000..53e743b --- /dev/null +++ b/src/modules/pwa/manifest-cache.ts @@ -0,0 +1,72 @@ +export type PwaManifestIcon = { + src: string + sizes?: string + type?: string + purpose?: string +} + +export type PwaManifest = { + id?: string + name?: string + short_name?: string + lang?: string + dir?: string + start_url?: string + scope?: string + display?: string + background_color?: string + theme_color?: string + description?: string + icons?: PwaManifestIcon[] +} + +const MANIFEST_CACHE_KEY = 'PWA_MANIFEST_CACHE_V5' +const MANIFEST_CACHE_MAX_AGE_MS = 60 * 60 * 24 * 7 + +export type CachedPwaManifest = { + cached_at: number + user_id: string | number + config_base: string + manifest_url: string + manifest: PwaManifest +} + +export function readCachedPwaManifest( + userId: string | number | null | undefined, + configBase: string +): CachedPwaManifest | null { + if (userId == null || userId === '' || !configBase) return null + + try { + const raw = localStorage.getItem(MANIFEST_CACHE_KEY) + if (!raw) return null + + const payload = JSON.parse(raw) as CachedPwaManifest + + if (!payload?.manifest || !payload.manifest_url) return null + if (String(payload.user_id) !== String(userId)) return null + if (payload.config_base !== configBase) return null + + if (Date.now() - Number(payload.cached_at || 0) > MANIFEST_CACHE_MAX_AGE_MS) { + localStorage.removeItem(MANIFEST_CACHE_KEY) + return null + } + + return payload + } catch { + localStorage.removeItem(MANIFEST_CACHE_KEY) + return null + } +} + +export function writeCachedPwaManifest(entry: CachedPwaManifest) { + try { + localStorage.setItem(MANIFEST_CACHE_KEY, JSON.stringify(entry)) + } catch (error) { + console.warn('Failed to cache PWA manifest:', error) + } +} + +export function clearCachedPwaManifest() { + localStorage.removeItem(MANIFEST_CACHE_KEY) +} diff --git a/src/router/index.ts b/src/router/index.ts new file mode 100644 index 0000000..76f5571 --- /dev/null +++ b/src/router/index.ts @@ -0,0 +1,30 @@ +import {createRouter, createWebHistory} from 'vue-router' +import { getLoginAppUrl, getLoginInstallPwaUrl } from '@/utils/config' + +const router = createRouter({ + history: createWebHistory(import.meta.env.BASE_URL), + routes: [ + { + path: '/', + name: 'landing', + component: () => import('@/views/base/aboutUs/index.vue') + }, + { + path: '/aboutUs', + name: 'aboutUs', + redirect: { name: 'landing' }, + }, + { + path: '/login', + name: 'login', + beforeEnter(to) { + window.location.href = + to.query.installPwa === 'true' ? getLoginInstallPwaUrl() : getLoginAppUrl() + return false + }, + component: { render: () => null }, + }, + ] +}) + +export default router diff --git a/src/store/configStore.ts b/src/store/configStore.ts new file mode 100644 index 0000000..fb8aefa --- /dev/null +++ b/src/store/configStore.ts @@ -0,0 +1,16 @@ +import {ref} from 'vue' +import {defineStore} from 'pinia' + +export const useConfigStore = defineStore('config', () => { + const config = ref(window.__APP_CONFIG__?.user) + + async function getConfigData() { + config.value = window.__APP_CONFIG__?.user + console.log(config.value) + } + + return { + config, + getConfigData + } +}) diff --git a/src/store/settingsStore.ts b/src/store/settingsStore.ts new file mode 100644 index 0000000..77384ea --- /dev/null +++ b/src/store/settingsStore.ts @@ -0,0 +1,99 @@ +import { computed, ref } from 'vue' +import { defineStore } from 'pinia' +import { getSettings } from '@/api/configuration' +import { resolveMeltedGoldLabel, resolveMetalTypeLabel } from '@/utils/metalLabels' +import { resolveTradeWeightUnit } from '@/utils/weightUnit' +import { runOnceAsync } from '@/composables/useOnceAsync' + +export interface AppSetting { + id?: number + key?: string | number + title_fa?: string + value?: string | number + description?: string + is_active?: boolean + type?: string +} + +export const useSettingsStore = defineStore('settings', () => { + const settings = ref([]) + const loaded = ref(false) + + function getSettingByKey(key: string) { + const item = settings.value.find((setting) => setting?.key === key) + return item?.value ?? null + } + + function isSettingTruthy(key: string) { + const value = getSettingByKey(key) + if (value == null) { + return false + } + if (value === true) { + return true + } + const normalized = String(value).trim().toLowerCase() + return normalized === 'true' || normalized === '1' || normalized === 'yes' + } + + function mergeSettings(items?: AppSetting[] | null) { + if (!items?.length) { + return + } + + const merged = [...settings.value] + items.forEach((item) => { + if (!item?.key) { + return + } + + const index = merged.findIndex((setting) => setting.key === item.key) + if (index >= 0) { + merged[index] = { ...merged[index], ...item } + } else { + merged.push(item) + } + }) + + settings.value = merged + } + + async function fetchSettings(force = false) { + return runOnceAsync('settings:all', async () => { + try { + const data = await getSettings() + if (Array.isArray(data)) { + mergeSettings(data) + } + } catch (e) { + console.log(e) + } finally { + loaded.value = true + } + return settings.value + }, force) + } + + const metalTypeSettingValue = computed(() => getSettingByKey('metal_type')) + const metalTypeLabel = computed(() => resolveMetalTypeLabel(metalTypeSettingValue.value)) + const meltedGoldLabel = computed(() => resolveMeltedGoldLabel(metalTypeSettingValue.value)) + const tradeWeightUnit = computed(() => resolveTradeWeightUnit(getSettingByKey('unit'))) + const isReferralRequired = computed(() => { + const value = getSettingByKey('referral_id') + return String(value ?? '').trim().toLowerCase() === 'required' + }) + + return { + settings, + loaded, + fetchSettings, + mergeSettings, + getSettingByKey, + isSettingTruthy, + isReferralRequired, + metalTypeSettingValue, + metalTypeLabel, + meltedGoldLabel, + tradeWeightUnit, + } +}) diff --git a/src/themeConfig.ts b/src/themeConfig.ts new file mode 100644 index 0000000..9ca0c7f --- /dev/null +++ b/src/themeConfig.ts @@ -0,0 +1,51 @@ +import colors from './baseColor.json' +import { getConfigApp } from '@/utils/config' + +const prefixCls = 'noname' +const baseButtonIconSize = '24' + +function readCachedTenantField(key: string): string { + try { + const cookie = document.cookie.split('; ').find((row) => row.startsWith('APP_CONFIG_CACHE=')) + if (!cookie) return '' + + const payload = JSON.parse(decodeURIComponent(cookie.slice('APP_CONFIG_CACHE='.length))) + const user = payload?.config?.user + const value = user?.[key] + + return value != null ? String(value) : '' + } catch { + return '' + } +} + +export function resolveProjectBase(): string { + return getConfigApp('node_server') || readCachedTenantField('node_server') || '' +} + +/** fallback خالی — useAxios در هر درخواست node_server را از config می‌گیرد */ +export const baseURL = '' + +export function getAvatarUploadURL(): string { + const base = resolveProjectBase().replace(/\/$/, '') + return base ? `${base}/customer/avatar` : '/customer/avatar' +} + +/** کلید ثابت — وقتی config پاک می‌شود (به‌روزرسانی نسخه) توکن گم نشود */ +export const SESSION_AUTH_KEY = 'customer_session_token' + +export const LEGACY_TOKEN_SUFFIX = '_app_token' + +export function getTokenName(): string { + const name = readCachedTenantField('name') || getConfigApp('name') || 'app' + return `${name}${LEGACY_TOKEN_SUFFIX}` +} + +/** @deprecated از getTokenName() استفاده کن */ +export const tokenName = 'app_app_token' + +export { + prefixCls, + colors, + baseButtonIconSize, +} diff --git a/src/utils/authToken.ts b/src/utils/authToken.ts new file mode 100644 index 0000000..a853617 --- /dev/null +++ b/src/utils/authToken.ts @@ -0,0 +1,72 @@ +import { + getTokenName, + LEGACY_TOKEN_SUFFIX, + SESSION_AUTH_KEY, +} from '@/themeConfig' + +function legacyTokenKeys(): string[] { + const keys: string[] = [] + + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i) + if (key?.endsWith(LEGACY_TOKEN_SUFFIX)) { + keys.push(key) + } + } + + return keys +} + +/** خواندن توکن — اول session ثابت، بعد کلید tenant، بعد هر *_app_token */ +export function findStoredAuthToken(): string | null { + const session = localStorage.getItem(SESSION_AUTH_KEY) + if (session) { + return session + } + + const named = localStorage.getItem(getTokenName()) + if (named) { + localStorage.setItem(SESSION_AUTH_KEY, named) + return named + } + + for (const key of legacyTokenKeys()) { + const value = localStorage.getItem(key) + if (value) { + localStorage.setItem(SESSION_AUTH_KEY, value) + return value + } + } + + return null +} + +export function persistAuthToken(token: string | undefined | null) { + if (!token) { + return + } + + localStorage.setItem(SESSION_AUTH_KEY, token) + localStorage.setItem(getTokenName(), token) +} + +export function clearStoredAuthTokens() { + localStorage.removeItem(SESSION_AUTH_KEY) + + for (const key of legacyTokenKeys()) { + localStorage.removeItem(key) + } +} + +export function collectAuthTokensForPreserve(): Record { + const preserved: Record = {} + + for (const key of [SESSION_AUTH_KEY, getTokenName(), ...legacyTokenKeys()]) { + const value = localStorage.getItem(key) + if (value) { + preserved[key] = value + } + } + + return preserved +} diff --git a/src/utils/config.ts b/src/utils/config.ts new file mode 100644 index 0000000..2eea10f --- /dev/null +++ b/src/utils/config.ts @@ -0,0 +1,241 @@ +import boursecuLogo from '@/assets/img/boursemes_logofull.png' +import boursecuSplashLogo from '@/assets/img/boursemes-splash.png' +import boursecuLoginLogo from '@/assets/img/boursemes-login.png' +import boursecuTransactionsIcon from '@/assets/img/boursecu-transactions-icon.png' +import boursecuPhysicalReceiveIcon from '@/assets/img/boursecu-physical-receive-icon.png' +import boursecuConvertIcon from '@/assets/img/boursecu-convert-icon.png' +import boursecuWalletIcon from '@/assets/img/boursecu-wallet-icon.png' +import boursecuBuySellIcon from '@/assets/img/boursecu-buy-sell-icon.png' +import boursecuAssetsIcon from '@/assets/img/boursecu-assets-icon.png' +import boursecuHomeIcon from '@/assets/img/boursecu-home-icon.png' +import boursecuSettingsIcon from '@/assets/img/boursecu-settings-icon.png' + +export function getConfigApp(key: string) { + const config = window.__APP_CONFIG__ ? window.__APP_CONFIG__.user : {} + + if (config) { + return config[key] + } + return null +} + +/** Login URL در اپ اصلی */ +export function getLoginAppUrl() { + const configured = import.meta.env.VITE_LOGIN_APP_URL + const fallback = 'https://boursemes.com/home' + + if (typeof configured !== 'string' || !configured.trim()) { + return fallback + } + + return configured.trim() +} + +/** صفحه Login اپ اصلی با فلگ نصب PWA */ +export function getLoginInstallPwaUrl() { + try { + const origin = new URL(getLoginAppUrl(), window.location.origin).origin + return `${origin}/login?installPwa=true` + } catch { + return 'https://boursemes.com/login?installPwa=true' + } +} + +/** boursecu-only branch */ +export function isBoursecuProject() { + return true +} + +/** فقط برای سازگاری با منطق پشتیبانی modular — در boursecu همیشه false */ +export function isBazretalaProject() { + return false +} + +const WALLET_DEPOSIT_QUICK_AMOUNTS_RIAL = [10_000_000, 50_000_000, 100_000_000] as const + +export function getWalletDepositQuickAmountsRial(): readonly number[] { + return WALLET_DEPOSIT_QUICK_AMOUNTS_RIAL +} + +export function getBoursecuTransactionsIcon() { + return boursecuTransactionsIcon +} + +export function getBoursecuPhysicalReceiveIcon() { + return boursecuPhysicalReceiveIcon +} + +export function getBoursecuConvertIcon() { + return boursecuConvertIcon +} + +export function getBoursecuWalletIcon() { + return boursecuWalletIcon +} + +export function getBoursecuBuySellIcon() { + return boursecuBuySellIcon +} + +export function getBoursecuAssetsIcon() { + return boursecuAssetsIcon +} + +export function getBoursecuHomeIcon() { + return boursecuHomeIcon +} + +export function getBoursecuSettingsIcon() { + return boursecuSettingsIcon +} + +export function getBoursecuActionIconSrc(actionId: string): string | undefined { + const icons: Record = { + buySell: boursecuBuySellIcon, + wallet: boursecuWalletIcon, + assets: boursecuAssetsIcon, + transactions: boursecuTransactionsIcon, + physicalReceive: boursecuPhysicalReceiveIcon, + convert: boursecuConvertIcon, + home: boursecuHomeIcon, + settings: boursecuSettingsIcon, + } + + return icons[actionId] +} + +export function hasCustomLoginLogoLayout() { + return true +} + +export const BOURSECU_BRAND_RED = '#bc3c3b' +export const BOURSECU_BRAND_BLUE = '#2178b5' +export const BOURSECU_BRAND_NAV = '#133050' +export const BOURSECU_COPPER_BG = '#b87333' +export const BOURSECU_COPPER_BG_LIGHT = '#fdf0e6' +export const BOURSECU_COPPER_BG_GRADIENT = 'linear-gradient(135deg, #c98a4a 0%, #a86528 100%)' + +export function getProjectBrandRed() { + return BOURSECU_BRAND_RED +} + +/** رنگ accent تم از تنظیمات tenant */ +export function getProjectPrimaryColor() { + const color = getConfigApp('color') + return color != null ? String(color) : undefined +} + +export function getBoursecuChartColor() { + return BOURSECU_BRAND_BLUE +} + +export function resolveProjectColor(color?: string | null) { + if (!color) { + return color + } + + if (color === 'red' || color.startsWith('red-')) { + return BOURSECU_BRAND_RED + } + + return color +} + +export function getProjectDesktopLoginBrandLogo(_avatar?: string | null) { + return getProjectSplashLogo() +} + +export function getProjectLoginLogo(_avatar?: string | null) { + return boursecuLoginLogo +} + +export function getProjectSplashLogo(_avatar?: string | null) { + return boursecuSplashLogo +} + +export function getProjectNavLogo(_avatar?: string | null) { + return boursecuLogo +} + +export function getProjectMobileNavLogo(_avatar?: string | null) { + return boursecuLoginLogo +} + +export function getProjectSupportPhone() { + return '' +} + +export function getProjectSupportPhoneLink() { + return 'tel:' +} + +export function getProjectBaleLink() { + return 'https://ble.ir/' +} + +export function getProjectBaleContactLink() { + return getProjectBaleLink() +} + +export function getProjectSupportContactLink() { + return getProjectSupportPhoneLink() +} + +export function getProjectFundHeaderBackground(defaultBackground: string) { + return defaultBackground +} + +export function getProjectFundEmptyImage(defaultImage: string) { + return defaultImage +} + +export function getProjectFundEmptyText() { + return 'یک گنج جدید بساز!' +} + +export function getProjectLoginTaglineLines() { + return ['مرجع هوشمند معاملات', ' و سرمایه‌گذاری در صنعت مس'] +} + +export function getProjectSplashBackground() { + return BOURSECU_BRAND_NAV +} + +export function resetAppSurfaceBackground() { + const background = '#ffffff' + document.documentElement.style.backgroundColor = background + document.body.style.backgroundColor = background + + const metaTheme = document.querySelector('meta[name="theme-color"]') + if (metaTheme) { + metaTheme.setAttribute('content', background) + } +} + +export function getProjectFontFamily() { + return "'dana', sans-serif" +} + +export function applyProjectFont() { + document.documentElement.style.setProperty('--App-font-family', getProjectFontFamily()) + document.documentElement.classList.add('font-dana') +} + +export function isTWA() { + if (sessionStorage.getItem('appMode') === 'twa') return true + if (document.referrer.startsWith('android-app://')) { + sessionStorage.setItem('appMode', 'twa') + return true + } + return false +} + +export function applyProjectTheme() { + applyProjectFont() + document.documentElement.classList.add('project-boursecu') + document.documentElement.style.setProperty('--App-brand-nav', BOURSECU_BRAND_NAV) + document.documentElement.style.setProperty('--App-brand-red', BOURSECU_BRAND_RED) + document.documentElement.style.setProperty('--App-brand-red-50', '#f8ecec') + document.documentElement.style.setProperty('--App-brand-red-100', '#f0d8d8') + document.documentElement.style.setProperty('--App-brand-red-700', '#963130') +} diff --git a/src/utils/file.ts b/src/utils/file.ts new file mode 100644 index 0000000..7f88c27 --- /dev/null +++ b/src/utils/file.ts @@ -0,0 +1,35 @@ +import { resolveProjectBase } from '@/themeConfig' +import type { User } from '@/models/login' + +export interface ProductFile { + id?: number + url?: string | null + src?: string + full_src?: string +} + +export function getFileUrl(file?: ProductFile | null): string | null { + if (!file) return null + + for (const value of [file.full_src, file.url, file.src]) { + if (!value) continue + if (/^https?:\/\//i.test(value)) return value + } + + const relative = file.src || file.full_src + if (!relative) return null + + const base = resolveProjectBase().replace(/\/$/, '') + if (!base) return relative.startsWith('/') ? relative : `/${relative}` + const path = String(relative).replace(/^\//, '') + return `${base}/${path}` +} + +/** Resolve profile avatar URL from GET /customer/me payload */ +export function getUserAvatarUrl(user?: User | null): string | null { + if (!user) return null + if (typeof user.avatar_url === 'string' && user.avatar_url) return user.avatar_url + if (typeof user.full_src === 'string' && user.full_src) return user.full_src + const nested = user.avatar || user.file + return getFileUrl(nested as ProductFile | undefined) +} diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..7c8d7c7 --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,119 @@ +import { + clearStoredAuthTokens, + findStoredAuthToken, + persistAuthToken, +} from '@/utils/authToken' + +import { ref } from 'vue' +import {getConfigApp} from "@/utils/config"; + +export const loading = ref(false) +export const loadingMore = ref(false) +const userInfo = ref() +const nameProject= getConfigApp('name') + + +function setToken(token: string | undefined) { + if (!token) { + return + } + return persistAuthToken(token) +} + +function setFingerPrint(val: string | undefined) { + return localStorage.setItem('finger', val) +} + +function getToken() { + return findStoredAuthToken() +} + +function getIsActiveFingerprint() { + return localStorage.getItem('finger') === 'true' +} + +export async function authenticateWithFingerprint() { + + + const challenge = new Uint8Array(32) + window.crypto.getRandomValues(challenge) + + const createOptions = { + challenge, + rp: { name: nameProject }, + user: { + id: Uint8Array.from('user-id', c => c.charCodeAt(0)), + name: nameProject, + displayName: nameProject + }, + pubKeyCredParams: [{ type: 'public-key', alg: -7 }], + authenticatorSelection: { + authenticatorAttachment: 'platform', + userVerification: 'required' + }, + timeout: 60000, + attestation: 'direct' + } + + try { + const credential = await navigator.credentials.create({ publicKey: createOptions as CredentialCreationOptions }) + console.log('Credential با موفقیت ایجاد شد!') + + const credentialId = btoa(String.fromCharCode(...new Uint8Array((credential as PublicKeyCredential).rawId))) + + // بازیابی توکن از localStorage + const token = findStoredAuthToken() + + if (!token) { + console.warn('توکن پیدا نشد، عملیات متوقف شد.') + return false + } + + // Success, proceed with login using token + // Perform your login action here + return true + + } catch (error: any) { + const errorMessage = error.name === 'NotAllowedError' + ? 'احراز هویت لغو شد یا دسترسی مجاز نبود.' + : 'عملیات ناموفق بود. لطفاً دوباره امتحان کنید.' + console.error(errorMessage, error) + return false + } +} + + +function removeToken() { + return clearStoredAuthTokens() +} + +function removeFingerPrint() { + return localStorage.removeItem('finger') +} + +function URLUserType() { + if (location.host.split('.')[0] === 'app') return 'single' + else return 'customer' +} + +function toFixedDownThreeChar(num: number) { + return Math.floor(num * 1000) / 1000 +} + +function isIphone() { + const userAgent = navigator.userAgent.toLowerCase() + + return /iPhone/.test(userAgent) +} + +export { + getToken, + setToken, + removeToken, + URLUserType, + toFixedDownThreeChar, + isIphone, + removeFingerPrint, + getIsActiveFingerprint, + setFingerPrint +} diff --git a/src/utils/metalLabels.ts b/src/utils/metalLabels.ts new file mode 100644 index 0000000..7d03def --- /dev/null +++ b/src/utils/metalLabels.ts @@ -0,0 +1,9 @@ +export function resolveMetalTypeLabel(settingValue?: string | number | null): string { + const value = settingValue?.toString().trim() + return value ? value : 'طلا' +} + +export function resolveMeltedGoldLabel(settingValue?: string | number | null): string { + const value = settingValue?.toString().trim() + return value ? value : 'آبشده' +} diff --git a/src/utils/persianDigits.ts b/src/utils/persianDigits.ts new file mode 100644 index 0000000..1143681 --- /dev/null +++ b/src/utils/persianDigits.ts @@ -0,0 +1,51 @@ +const PERSIAN_DIGITS = '۰۱۲۳۴۵۶۷۸۹' +const ARABIC_DIGITS = '٠١٢٣٤٥٦٧٨٩' + +/** تبدیل ارقام فارسی/عربی و جداکننده اعشار به فرمت انگلیسی */ +export function persianToEnglishDigits(value: string | number | null | undefined): string { + if (value == null) { + return '' + } + + return String(value) + .replace(/[۰-۹]/g, (d) => String(PERSIAN_DIGITS.indexOf(d))) + .replace(/[٠-٩]/g, (d) => String(ARABIC_DIGITS.indexOf(d))) + .replace(/٫/g, '.') +} + +export function shouldNormalizeInputDigits(options: { + isPassword?: boolean + type?: string + inputmode?: string +}): boolean { + if (options.isPassword) { + return true + } + const type = String(options.type ?? '').trim().toLowerCase() + if (type === 'price' || type === 'number' || type === 'tel') { + return true + } + const mode = String(options.inputmode ?? '').trim().toLowerCase() + return mode === 'numeric' || mode === 'decimal' || mode === 'number' +} + +/** تبدیل ارقام فارسی/عربی در فیلدهای عددی فرم‌های احراز هویت و پروفایل */ +export function normalizeAuthFormFields(fields: { + mobile?: string | null + password?: string | null + token?: string | null + n_code?: string | number | null +}) { + if (fields.mobile != null && fields.mobile !== '') { + fields.mobile = persianToEnglishDigits(String(fields.mobile).trim()) + } + if (fields.password != null && fields.password !== '') { + fields.password = persianToEnglishDigits(String(fields.password)) + } + if (fields.token != null && fields.token !== '') { + fields.token = persianToEnglishDigits(String(fields.token).trim()) + } + if (fields.n_code != null && fields.n_code !== '') { + fields.n_code = persianToEnglishDigits(String(fields.n_code).trim()) + } +} diff --git a/src/utils/price.ts b/src/utils/price.ts new file mode 100644 index 0000000..82c3afb --- /dev/null +++ b/src/utils/price.ts @@ -0,0 +1,191 @@ +import { getLastPrice, getPrice } from '@/api/home' +import type { Price, PriceUp } from '@/models/home' +import { ref, watch } from 'vue' +import { + priceSocketConnected, + priceStreamLifecycle, + priceWssEnabled, + shouldUsePricePolling, +} from '@/utils/priceSocketState' + +const LAST_INTERVAL_MS = 10000 + +let lastInterval: ReturnType | undefined +let lastSubscribers = 0 + +/** @deprecated از lastPrice استفاده کنید — برای سازگاری با کد قدیمی sync می‌شود */ +export const price = ref() +export const lastPrice = ref() +export const olderPrice = ref(0) + +let lastPriceSourceAt = 0 +let consecutivePriceFetchFailures = 0 + +function hasValidPricePayload(data?: Price | null): boolean { + if (!data) { + return false + } + + return ( + getTradeBuyPrice(data) > 0 + || getTradeSellPrice(data) > 0 + || Number(data.price_last ?? data.price ?? 0) > 0 + ) +} + +export function markPriceSourceReceived() { + lastPriceSourceAt = Date.now() + consecutivePriceFetchFailures = 0 +} + +export function markPriceSourceFetchFailed() { + consecutivePriceFetchFailures += 1 +} + +export function hasRecentPriceFromSource(maxAgeMs = 45000): boolean { + return lastPriceSourceAt > 0 && Date.now() - lastPriceSourceAt < maxAgeMs +} + +export function consecutivePriceSourceFailures(): number { + return consecutivePriceFetchFailures +} + +/** buy/sell نمایش و معامله — همان buy/sell/price_last از /api/price/last */ +export function getTradeBuyPrice(p?: Price | null) { + return p?.buy ?? p?.price_last ?? p?.up?.buy ?? 0 +} + +export function getTradeSellPrice(p?: Price | null) { + return p?.sell ?? p?.up?.sell ?? 0 +} + +/** up جدا نگه داشته می‌شود؛ buy/sell/price_last از lastPrice سرور دست‌نخورده می‌ماند */ +export function normalizePriceResponse(data: Price): Price { + return data +} + +function startPollingInterval() { + if (lastInterval || !shouldUsePricePolling()) { + return + } + + lastInterval = setInterval(() => { + if (shouldUsePricePolling()) { + void getLastPrices() + } + }, LAST_INTERVAL_MS) +} + +function stopPollingInterval() { + if (lastInterval) { + clearInterval(lastInterval) + lastInterval = undefined + } +} + +function syncLastPricePolling() { + const usePolling = shouldUsePricePolling() + if (usePolling) { + if (lastSubscribers > 0) { + startPollingInterval() + } + return + } + + stopPollingInterval() +} + +watch( + () => [priceWssEnabled.value, priceSocketConnected.value, priceStreamLifecycle.value] as const, + () => { + syncLastPricePolling() + }, +) + +/** polling /api/price/last — وقتی wss خاموش است یا ws قطع شده */ +export function startLastPricePolling() { + lastSubscribers++ + syncLastPricePolling() +} + +/** @deprecated از startLastPricePolling استفاده کنید */ +export async function setIntervalGetAllPrice() { + startLastPricePolling() +} + +/** @deprecated از startLastPricePolling استفاده کنید */ +export async function setIntervalGetLastPrice() { + startLastPricePolling() +} + +export function stopLastPricePolling() { + lastSubscribers = Math.max(0, lastSubscribers - 1) + if (lastSubscribers === 0) { + stopPollingInterval() + } +} + +/** @deprecated از stopLastPricePolling استفاده کنید */ +export function stopPriceInterval() { + stopLastPricePolling() +} + +/** @deprecated فقط getLastPrices را صدا بزنید */ +export async function getUpPrice() { + await getLastPrices() +} + +async function fetchUpPrices(): Promise { + try { + const up = await getPrice() + if (up?.buy != null && up?.sell != null) { + return { buy: up.buy, sell: up.sell } + } + } catch (e) { + console.log(e) + } +} + +export async function getLastPrices(): Promise { + try { + let dataLast = await getLastPrice() + + if (!dataLast?.up) { + const up = await fetchUpPrices() + if (up) { + dataLast = { ...dataLast, up } + } + } + + applyLastPricePayload(dataLast) + return hasValidPricePayload(dataLast) + } catch (e) { + console.log(e) + markPriceSourceFetchFailed() + return false + } +} + +export function applyLastPricePayload(dataLast: Price) { + const normalized = normalizePriceResponse(dataLast) + if (lastPrice.value?.price_last != normalized.price_last) { + olderPrice.value = lastPrice.value?.price_last + } + lastPrice.value = normalized + price.value = { + ...normalized, + buy: getTradeBuyPrice(normalized), + sell: getTradeSellPrice(normalized), + } + + if (hasValidPricePayload(normalized)) { + markPriceSourceReceived() + } +} + +export function percentPriceChanged() { + if (!olderPrice.value) { + return 0 + } + return ((lastPrice.value?.price_last! - olderPrice.value) * 100) / olderPrice.value +} diff --git a/src/utils/priceSocketState.ts b/src/utils/priceSocketState.ts new file mode 100644 index 0000000..d7a38eb --- /dev/null +++ b/src/utils/priceSocketState.ts @@ -0,0 +1,39 @@ +import { ref } from 'vue' + +/** وضعیت اتصال SSE — ماژول جدا برای جلوگیری از circular import */ +export const priceSocketConnected = ref(false) + +/** از settings در bootstrap ست می‌شود (کلید wss_enabled = قیمت لحظه‌ای روشن) */ +export const priceWssEnabled = ref(false) + +export type PriceStreamLifecycle = 'idle' | 'connecting' | 'open' | 'closed' + +/** چرخهٔ اتصال SSE — برای جلوگیری از polling همزمان با reconnect */ +export const priceStreamLifecycle = ref('idle') + +/** زمان شروع reconnect — برای فعال‌کردن polling پشتیبان روی موبایل */ +export const priceStreamConnectingSince = ref(0) + +const CONNECTING_POLL_AFTER_MS = 8000 + +/** polling: realtime خاموش = همیشه | SSE وصل = نه | reconnect طولانی/قطع = بله */ +export function shouldUsePricePolling(): boolean { + if (!priceWssEnabled.value) { + return true + } + + if (priceStreamLifecycle.value === 'open') { + return false + } + + if (priceStreamLifecycle.value === 'connecting') { + const since = priceStreamConnectingSince.value + if (since > 0 && Date.now() - since >= CONNECTING_POLL_AFTER_MS) { + return true + } + + return false + } + + return true +} diff --git a/src/utils/storeHours.ts b/src/utils/storeHours.ts new file mode 100644 index 0000000..34f152d --- /dev/null +++ b/src/utils/storeHours.ts @@ -0,0 +1,247 @@ +import { ref } from 'vue' +import { useSettingsStore } from '@/store/settingsStore' +import { getTradeBuyPrice, getTradeSellPrice, lastPrice } from '@/utils/price' + +export interface StoreTradingHours { + start: string + end: string + closePriceEnabled: boolean +} + +export interface EffectiveTradingHours { + start: string + end: string + enforced: boolean +} + +const productTradingHours = ref<{ start: string; end: string } | null>(null) +const productTradingHoursVersion = ref(0) + +function normalizeTradingTimeSetting(value: unknown, fallback: string): string { + const raw = String(value ?? '').trim() + return raw || fallback +} + +function parseTimeToSeconds(time: string): number { + const parts = time.trim().split(':').map(Number) + const [hours = 0, minutes = 0, seconds = 0] = parts + return hours * 3600 + minutes * 60 + seconds +} + +export function formatTradingTimeDisplay(time: string): string { + const normalized = normalizeTradingTimeSetting(time, '') + if (!normalized) { + return '' + } + + const parts = normalized.split(':') + if (parts.length >= 3) { + return `${parts[0]}:${parts[1]}:${parts[2]}` + } + if (parts.length >= 2) { + return `${parts[0]}:${parts[1]}:00` + } + return normalized +} + +function hasProductTradingWindow(start?: string | null, end?: string | null): boolean { + const open = formatTradingTimeDisplay(normalizeTradingTimeSetting(start, '00:00:00')) + const close = formatTradingTimeDisplay(normalizeTradingTimeSetting(end, '00:00:00')) + if (!open || !close) { + return false + } + + return open !== close +} + +export function setProductTradingHours(start?: string | null, end?: string | null) { + if (!hasProductTradingWindow(start, end)) { + productTradingHours.value = null + productTradingHoursVersion.value += 1 + return + } + + productTradingHours.value = { + start: normalizeTradingTimeSetting(start, '00:00'), + end: normalizeTradingTimeSetting(end, '23:59'), + } + productTradingHoursVersion.value += 1 +} + +export function syncProductTradingHoursFromProducts( + products: Array<{ auto_open_at?: string | null; auto_close_at?: string | null }>, +) { + for (const product of products) { + if (hasProductTradingWindow(product.auto_open_at, product.auto_close_at)) { + setProductTradingHours(product.auto_open_at, product.auto_close_at) + return + } + } + + setProductTradingHours(null, null) +} + +export function getStoreTradingHours(): StoreTradingHours { + const settings = useSettingsStore() + const closeRaw = settings.getSettingByKey('close_price') + const closePriceEnabled = + closeRaw === true || + closeRaw === 1 || + String(closeRaw ?? 'false').trim().toLowerCase() === 'true' + + return { + start: normalizeTradingTimeSetting(settings.getSettingByKey('startDay'), '00:00'), + end: normalizeTradingTimeSetting(settings.getSettingByKey('endDay'), '23:59'), + closePriceEnabled, + } +} + +export function getEffectiveTradingHours(): EffectiveTradingHours { + void productTradingHoursVersion.value + const settings = getStoreTradingHours() + if (settings.closePriceEnabled) { + return { + start: settings.start, + end: settings.end, + enforced: true, + } + } + + if (productTradingHours.value?.start && productTradingHours.value?.end) { + return { + start: productTradingHours.value.start, + end: productTradingHours.value.end, + enforced: true, + } + } + + return { + start: settings.start, + end: settings.end, + enforced: false, + } +} + +export function isStoreClosedBySchedule(now = new Date()): boolean { + const { start, end, enforced } = getEffectiveTradingHours() + if (!enforced) { + return false + } + + return isOutsideStoreTradingHours(now, start, end) +} + +export function isOutsideStoreTradingHours( + now = new Date(), + start?: string, + end?: string, +): boolean { + const hours = start != null && end != null + ? { start, end } + : getEffectiveTradingHours() + + const currentSeconds = now.getHours() * 3600 + now.getMinutes() * 60 + now.getSeconds() + const openSeconds = parseTimeToSeconds(hours.start) + const closeSeconds = parseTimeToSeconds(hours.end) + + return currentSeconds < openSeconds || currentSeconds > closeSeconds +} + +export function hasLivePriceQuote(): boolean { + const p = lastPrice.value + return getTradeBuyPrice(p) > 0 || getTradeSellPrice(p) > 0 +} + +export function isStoreClosed(): boolean { + void productTradingHoursVersion.value + + if (lastPrice.value?.closed === true) { + return true + } + + return isStoreClosedBySchedule() +} + +export const STORE_CLOSED_TITLE = 'فروشگاه بسته است' + +export function stripHtmlMessage(message: string): string { + return message.replace(/<[^>]*>/g, '').trim() +} + +export function getStoreClosedHint(customMessage?: unknown): string { + const custom = typeof customMessage === 'string' ? customMessage.trim() : '' + if (custom) { + return stripHtmlMessage(custom) + } + return '' +} + +export function getStoreClosedMessage(): string { + return '' +} + +/** برای toast/اعلان: پیام ادمین یا عنوان پیش‌فرض */ +export function resolveStoreClosedNotice(customMessage?: unknown): string { + return getStoreClosedHint(customMessage) || STORE_CLOSED_TITLE +} + +export function isMarketClosedForDisplay(): boolean { + return getPriceDisplayState() === 'closed' +} + +export function shouldBlockStoreTrading(): boolean { + return isMarketClosedForDisplay() +} + +export type PriceDisplayState = 'open' | 'closed' | 'no_quote' + +export const NO_QUOTE_MESSAGE = 'مظنه در دسترس نیست' + +/** سوییچ: خارج از ساعت کاری هم قیمت صفحه اصلی نشان داده شود */ +export function shouldShowHomePriceWhenClosed(): boolean { + const settings = useSettingsStore() + return settings.isSettingTruthy('show_home_price_when_closed') +} + +/** + * وضعیت نمایش قیمت: + * - closed → فروشگاه بسته است (ساعت کاری، سیگنال سرور، یا نبود مظنه) + * - open → نمایش عادی قیمت + * + * اگر show_home_price_when_closed روشن باشد و قیمت موجود باشد، به‌جای closed قیمت نشان داده می‌شود. + */ +export function getPriceDisplayState(): PriceDisplayState { + void productTradingHoursVersion.value + const p = lastPrice.value + const showWhenClosed = shouldShowHomePriceWhenClosed() + + if (p?.status === 'closed' || p?.closed === true) { + if (showWhenClosed && hasLivePriceQuote()) { + return 'open' + } + return 'closed' + } + + if (isStoreClosed()) { + if (showWhenClosed && hasLivePriceQuote()) { + return 'open' + } + return 'closed' + } + + if (!hasLivePriceQuote()) { + return 'closed' + } + + return 'open' +} + +export function getPriceDisplayMessage(state: PriceDisplayState = getPriceDisplayState()): string { + if (state === 'closed') { + return getStoreClosedMessage() + } + if (state === 'no_quote') { + return NO_QUOTE_MESSAGE + } + return '' +} diff --git a/src/utils/useAxios.ts b/src/utils/useAxios.ts new file mode 100644 index 0000000..75912a3 --- /dev/null +++ b/src/utils/useAxios.ts @@ -0,0 +1,274 @@ +import { getConfigApp } from '@/utils/config' +import { baseURL as fallbackBaseURL } from '@/themeConfig' +import type {AxiosRequestConfig, AxiosResponse} from 'axios' +import axios from 'axios' +import {getToken, removeToken} from "@/utils"; +import { findStoredAuthToken } from '@/utils/authToken'; +import router from "@/router"; +import {get} from 'lodash' +import {message} from "ant-design-vue"; + +interface Meta { + errorMessage?: 'message' | 'notification' | 'toast' | 'none' +} + +interface MyAxiosRequestConfig extends AxiosRequestConfig { + meta?: Meta +} + +const headers = { + 'Content-Type': 'application/json', + Accept: 'application/json', +} + +const _axios = axios.create({ + baseURL: fallbackBaseURL, + headers, +}) + +let sessionVerifyTimer: ReturnType | null = null +let sessionVerifyInFlight = false + +function requestPath(config: { url?: string; baseURL?: string } | undefined): string { + const raw = String(config?.url ?? '') + if (raw.startsWith('http')) { + try { + return new URL(raw).pathname + } catch { + return raw + } + } + return raw +} + +async function logoutToLogin() { + removeToken() + if (router.currentRoute.value.name !== 'login') { + await router.push({ name: 'login' }) + } +} + +function scheduleSessionVerify() { + if (sessionVerifyTimer) { + return + } + + sessionVerifyTimer = setTimeout(async () => { + sessionVerifyTimer = null + if (sessionVerifyInFlight) { + return + } + + const token = findStoredAuthToken() + if (!token) { + return + } + + sessionVerifyInFlight = true + try { + await _axios.get('/customer/me', { + headers: { Authorization: `Bearer ${token}` }, + meta: { errorMessage: 'none' }, + }) + } catch { + await logoutToLogin() + } finally { + sessionVerifyInFlight = false + } + }, 2000) +} + +_axios.interceptors.request.use( + (config) => { + const runtimeBaseURL = getConfigApp('node_server') + if (runtimeBaseURL) { + config.baseURL = runtimeBaseURL + } + if (config.headers) { + const token = getToken() + if (token) { + //@ts-ignore + config.headers['Authorization'] = 'Bearer ' + token + } + } + return config + }, + (error) => { + //console.log('this is error on interceptors.request', error) + Promise.reject(error) + }, +) +_axios.interceptors.response.use( + (response) => { + //console.log('this is response') + // Any status code that lie within the range of 2xx cause this function to trigger + // Do something with response data + //console.log('this is fulfilled on interceptors.response', response.data) + return response.data + }, + async function (error) { + const response = error.response + const config = error.config as MyAxiosRequestConfig | undefined + + if (response?.status === 401) { + const hadAuth = Boolean(config?.headers?.Authorization) + if (hadAuth) { + const path = requestPath(config) + if (path.includes('/customer/me')) { + await logoutToLogin() + } else { + scheduleSessionVerify() + } + } + return Promise.reject(error) + } + + if (!shouldShowApiError(config)) { + return Promise.reject(error) + } + + const apiMessage = extractApiErrorMessage(response?.data) + + if (response?.status === 403) { + showApiError(apiMessage || 'شما دسترسی لازم برای انجام این عملیات را ندارید', config) + return Promise.reject(error) + } + + if (response?.status === 422) { + if (apiMessage) { + showApiError(apiMessage, config) + } + return Promise.reject(error) + } + + if (response) { + showApiError(apiMessage || DEFAULT_LOAD_ERROR, config) + return Promise.reject(error) + } + + showApiError(DEFAULT_LOAD_ERROR, config) + return Promise.reject(error) + }) + +const DEFAULT_LOAD_ERROR = 'خطا در بارگذاری اطلاعات' + +function extractApiErrorMessage(data: unknown): string { + if (!data || typeof data !== 'object') { + return '' + } + + const record = data as Record + const rawMessage = record.message + + if (typeof rawMessage === 'string' && rawMessage.trim()) { + return rawMessage.trim() + } + + if (typeof rawMessage === 'number') { + return String(rawMessage) + } + + const rawError = record.error + if (typeof rawError === 'string' && rawError.trim()) { + return rawError.trim() + } + + const errors = record.errors + if (errors && typeof errors === 'object') { + for (const value of Object.values(errors as Record)) { + if (Array.isArray(value) && typeof value[0] === 'string' && value[0].trim()) { + return value[0].trim() + } + if (typeof value === 'string' && value.trim()) { + return value.trim() + } + } + } + + return '' +} + +function shouldShowApiError(config: MyAxiosRequestConfig | undefined): boolean { + return get(config, 'meta.errorMessage', 'message') !== 'none' +} + +function showApiError(msg: string, config: MyAxiosRequestConfig | undefined) { + if (!shouldShowApiError(config)) { + return + } + + message.error(msg) +} + +const myAxios = { + //AxiosResponse + post( + url: string, + data?: D, + config?: MyAxiosRequestConfig, + ): Promise { + return _axios.post(url, data, config) + }, + request, D = any>(config: MyAxiosRequestConfig): Promise { + return _axios.request(config) + }, + //AxiosResponse + get(url: string, config?: MyAxiosRequestConfig): Promise { + return _axios.get(url, config) + }, + //AxiosResponse + delete(url: string, config?: MyAxiosRequestConfig): Promise { + return _axios.delete(url, config) + }, + //AxiosResponse + head(url: string, config?: MyAxiosRequestConfig): Promise { + return _axios.head(url, config) + }, + //AxiosResponse + options(url: string, config?: MyAxiosRequestConfig): Promise { + return _axios.options(url, config) + }, + //AxiosResponse + put( + url: string, + data?: D, + config?: MyAxiosRequestConfig, + ): Promise { + return _axios.put(url, data, config) + }, + //AxiosResponse + patch( + url: string, + data?: D, + config?: MyAxiosRequestConfig, + ): Promise { + return _axios.patch(url, data, config) + }, + //AxiosResponse + postForm( + url: string, + data?: D, + config?: MyAxiosRequestConfig, + ): Promise { + return _axios.postForm(url, data, config) + }, + //AxiosResponse + putForm( + url: string, + data?: D, + config?: MyAxiosRequestConfig, + ): Promise { + return _axios.putForm(url, data, config) + }, + //AxiosResponse + patchForm( + url: string, + data?: D, + config?: MyAxiosRequestConfig, + ): Promise { + return _axios.patchForm(url, data, config) + }, +} + +export default myAxios +export {_axios} diff --git a/src/utils/usePrefix.ts b/src/utils/usePrefix.ts new file mode 100644 index 0000000..424755c --- /dev/null +++ b/src/utils/usePrefix.ts @@ -0,0 +1,8 @@ +import { prefixCls } from "@/themeConfig"; + +export function usePrefix(name = "") { + return { + prefixVar: prefixCls, + prefixCls: `${prefixCls}-${name}`, + }; +} diff --git a/src/utils/usePrice.ts b/src/utils/usePrice.ts new file mode 100644 index 0000000..2ea2590 --- /dev/null +++ b/src/utils/usePrice.ts @@ -0,0 +1,177 @@ +function formatGroupedPrice(price: string | number | null | undefined, digit: boolean) { + let value = price === null || price === undefined ? '' : String(price) + if (digit) { + value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',') + } + return value +} + +/** مبلغ ریالی — بدون اعشار، گرد به بالا */ +export function ceilRial(price?: number | string | null): number { + const num = Number(price ?? 0) + if (!Number.isFinite(num)) { + return 0 + } + + return Math.ceil(num) +} + +export function formatNumber(value: string | number | null | undefined, grouped = false): string { + return formatGroupedPrice(value, grouped) +} + +export function usePrice(price: number, digit = true, unit = 'ریال') { + const formatted = formatGroupedPrice(ceilRial(price), digit) + return `${formatted} ${unit}` +} + +export function usePriceWithoutType(price?: number, digit = true) { + return formatGroupedPrice(ceilRial(price), digit) +} + +export function useTowDecimal(num: string | number): string | number { + const temp = num.toString().match(/^-?\d+(?:\.\d{0,2})?/) + if (temp && temp.length > 0) return formatGroupedPrice(temp[0], false) + return formatGroupedPrice(Math.round(+num * 100) / 100, false) +} + +export function formatSignedPercentChange(value: number): string { + if (!value) return '0%' + + const formatted = useTowDecimal(Math.abs(value)) + const prefix = value > 0 ? '+' : '-' + return `${prefix}${formatted}%` +} + +export function useFormat(num: string | number, unit = '') { + return usePrice(Math.abs(+useTowDecimal(num)), true, unit) +} + +type TransactionPriceSource = { + cash?: number | null + gold?: number | null + type?: number | null + sts?: number | null + sts_str?: string | number | null + order?: { + price?: number | null + total_price?: number | null + amount?: number | null + sts?: number | null + sts_str?: string | number | null + payment_sts?: number | null + } | null + withdraw?: { + sts?: number | null + sts_str?: string | number | null + } | null + order_id?: number | null +} + +const ORDER_STATUS_LABELS: Record = { + 1: 'باز', + 2: 'موفق', + 3: 'ناموفق', +} + +const WITHDRAW_STATUS_LABELS: Record = { + 1: 'در انتظار تایید', + 2: 'انجام شد', + 3: 'ناموفق', + 4: 'واریز توسط ادمین', + 5: 'پاداش معرفی', + 9: 'سود زیر مجموعه', + 50: 'در انتظار ارسال', + 51: 'ارسال شده', + 52: 'لغو شده', +} + +export function getTransactionTradePrice(item: TransactionPriceSource): number { + const orderPrice = Number(item.order?.price) + if (Number.isFinite(orderPrice) && orderPrice > 0) { + return Math.round(orderPrice) + } + + const cashAmount = Math.abs(Number(item.cash) || 0) + const goldAmount = + Math.abs(Number(item.gold) || 0) || Math.abs(Number(item.order?.amount) || 0) + + if (goldAmount > 0 && cashAmount > 0) { + return Math.round(cashAmount / goldAmount) + } + + const totalPrice = Number(item.order?.total_price) + if (Number.isFinite(totalPrice) && totalPrice > 0) { + return Math.round(totalPrice) + } + + return 0 +} + +export function resolveTransactionStatusLabel(item?: TransactionPriceSource | null): string { + if (!item) return '' + + const raw = item.order?.sts_str ?? item.withdraw?.sts_str ?? item.sts_str + if (typeof raw === 'string') { + const trimmed = raw.trim() + if (trimmed && trimmed !== 'بدون مقدار' && !/^\d+$/.test(trimmed)) { + return trimmed + } + } + + const sts = item.order?.sts ?? item.withdraw?.sts ?? item.sts + if (sts != null) { + const withdrawLabel = WITHDRAW_STATUS_LABELS[Number(sts)] + if (withdrawLabel) return withdrawLabel + + const orderLabel = ORDER_STATUS_LABELS[Number(sts)] + if (orderLabel) return orderLabel + } + + if (typeof raw === 'number' || (typeof raw === 'string' && /^\d+$/.test(String(raw).trim()))) { + const numericSts = Number(raw) + const withdrawLabel = WITHDRAW_STATUS_LABELS[numericSts] + if (withdrawLabel) return withdrawLabel + + const orderLabel = ORDER_STATUS_LABELS[numericSts] + if (orderLabel) return orderLabel + } + + if (item.order_id && Number(item.order?.payment_sts) === 4) { + return 'موفق' + } + + if (item.order_id && (item.type === 1 || item.type === 2 || item.type === 10)) { + return 'موفق' + } + + return '' +} + +export function getTransactionGoldAmount(item: TransactionPriceSource): number { + const gold = Number(item.gold) || 0 + if (Math.abs(gold) > 0) { + return gold + } + + const orderAmount = Number(item.order?.amount) || 0 + if (orderAmount > 0) { + const cash = Number(item.cash) || 0 + if (cash < 0) return orderAmount + if (cash > 0) return -orderAmount + return orderAmount + } + + return gold +} + +export function formatGoldAmount(amount?: number | null, decimals = 8): string { + const num = Number(amount) + if (!Number.isFinite(num)) return '0' + return formatGroupedPrice(Number(num.toFixed(decimals)), false) +} + +/** وزن فلز (گرم/کیلو) — بدون گرد کردن به بالا (برخلاف usePriceWithoutType) */ +export function formatWeightAmount(amount?: number | null): string { + return formatGoldAmount(amount) +} diff --git a/src/utils/weightUnit.ts b/src/utils/weightUnit.ts new file mode 100644 index 0000000..3309b20 --- /dev/null +++ b/src/utils/weightUnit.ts @@ -0,0 +1,33 @@ +export const TRADE_WEIGHT_UNIT_GRAM = 'گرم' +export const TRADE_WEIGHT_UNIT_KILOGRAM = 'کیلوگرم' + +export function isKilogramUnit(unit?: string | null) { + const value = (unit ?? '').trim() + return value === TRADE_WEIGHT_UNIT_KILOGRAM || value === 'kilogram' || value === 'kg' +} + +/** واحد نمایش از ستینگ — خالی یا نامعتبر = گرم */ +export function resolveTradeWeightUnit(settingValue?: string | number | null) { + return isKilogramUnit(settingValue?.toString()) ? TRADE_WEIGHT_UNIT_KILOGRAM : TRADE_WEIGHT_UNIT_GRAM +} + +export function weightToGrams(value: number, fromUnit?: string | null) { + return isKilogramUnit(fromUnit) ? value * 1000 : value +} + +export function gramsToTradeUnit(grams: number, displayUnit?: string | null) { + return isKilogramUnit(displayUnit ?? resolveTradeWeightUnit(null)) ? grams / 1000 : grams +} + +export function convertWeightToDisplayUnit( + value: number, + fromUnit?: string | null, + displayUnit?: string | null +) { + return gramsToTradeUnit(weightToGrams(value, fromUnit), displayUnit) +} + +export function formatTradeWeight(value: number, displayUnit?: string | null) { + const unit = resolveTradeWeightUnit(displayUnit) + return `${value} ${unit}` +} diff --git a/src/utils/zIndex.ts b/src/utils/zIndex.ts new file mode 100644 index 0000000..ba4396a --- /dev/null +++ b/src/utils/zIndex.ts @@ -0,0 +1,15 @@ +/** + * z-index مدال/اکشن‌شیت/دیالوگ. + * بالای ناوبری (5000)، هدر (1999) و دکمه پشتیبانی (5100) می‌نشیند تا این کروم‌ها + * پشت پوشش تیره بمانند، اما زیر لایه دراپ‌داون اینت (99999) است تا تقویم/سلکت + * داخل مدال روی آن باز شود. کروم ثابتی که بالاتر از این مقدار است (مثل نوار + * اعتبار) هنگام باز بودن مدال با CSS مخفی می‌شود. + */ +export const APP_Z_MODAL = 5_500 + +/** منوی انتخاب پیام‌رسان پشتیبانی (بالای FAB و مدال) */ +export const APP_Z_SUPPORT_PICKER = 5_600 + +export function getModalContainer(): HTMLElement { + return document.body +} diff --git a/src/views/base/aboutUs/composables/useAboutUsPage.ts b/src/views/base/aboutUs/composables/useAboutUsPage.ts new file mode 100644 index 0000000..f95daa4 --- /dev/null +++ b/src/views/base/aboutUs/composables/useAboutUsPage.ts @@ -0,0 +1,27 @@ +import { inject, provide, type InjectionKey } from 'vue' +import { useConfigStore } from '@/store/configStore' + +export interface AboutUsPageContext { + config: ReturnType +} + +export const ABOUT_US_PAGE_CONTEXT_KEY: InjectionKey = Symbol('aboutUsPageContext') + +export function useAboutUsPage() { + const config = useConfigStore() + + const context: AboutUsPageContext = { + config, + } + + provide(ABOUT_US_PAGE_CONTEXT_KEY, context) + return context +} + +export function useAboutUsPageContext() { + const context = inject(ABOUT_US_PAGE_CONTEXT_KEY) + if (!context) { + throw new Error('useAboutUsPageContext must be used within a page that calls useAboutUsPage()') + } + return context +} diff --git a/src/views/base/aboutUs/desktop/DesktopAboutUsView.vue b/src/views/base/aboutUs/desktop/DesktopAboutUsView.vue new file mode 100644 index 0000000..86433c8 --- /dev/null +++ b/src/views/base/aboutUs/desktop/DesktopAboutUsView.vue @@ -0,0 +1,1428 @@ + + + diff --git a/src/views/base/aboutUs/desktop/styles/desktop-about-us.less b/src/views/base/aboutUs/desktop/styles/desktop-about-us.less new file mode 100644 index 0000000..7f3c5f7 --- /dev/null +++ b/src/views/base/aboutUs/desktop/styles/desktop-about-us.less @@ -0,0 +1,4297 @@ +.dlanding { + /* Figma desktop frame: max-width + centered + padding-inline (never padding-only) */ + --dlanding-frame-size: 0px; + --dlanding-frame-width: 1440px; + --dlanding-frame-px: 100px; + --dlanding-vector-width: var(--dlanding-frame-width); + --dlanding-vector-height: 1153px; + /* Alias kept for any remaining references */ + --dlanding-inline-gap: var(--dlanding-frame-px); + --dlanding-title-size: clamp(28px, 3.6vw, 64px); + --dlanding-price-size: clamp(28px, 2.4vw, 44px); + /* Figma: navbar (87) + hero container (1018) = 1105px */ + --dlanding-nav-height: 87px; + --dlanding-hero-block-height: 1105px; + --dlanding-hero-height: 1018px; + --dlanding-hero-bg: #f4f5f7; + position: relative; + width: 100%; + min-height: 100%; + box-sizing: border-box; + padding: 0; + background: var(--dlanding-hero-bg); + color: #0f172a; +} + +/* Shared Figma frame for landing hero / nav */ +.dlanding-page-frame() { + width: 100%; + max-width: var(--dlanding-frame-width); + margin-inline: auto; + padding-inline: var(--dlanding-frame-px); + box-sizing: border-box; +} + +/* + * Section content frame: preserves existing content max-width by expanding + * the outer frame to content + 2× horizontal padding. + */ +.dlanding-content-frame(@content-max: 1080px) { + width: 100%; + max-width: ~"calc(@{content-max} + (2 * var(--dlanding-frame-px)))"; + margin-inline: auto; + padding-inline: var(--dlanding-frame-px); + box-sizing: border-box; +} + +.dlanding__stage { + position: relative; + width: 100%; + min-height: calc(100vh - (2 * var(--dlanding-frame-size))); + background: var(--dlanding-hero-bg); + overflow: visible; +} + +.dlanding__pattern-wrap { + position: relative; + width: 100%; + overflow: visible; +} + +.dlanding__hero-shell { + position: relative; + z-index: 2; + width: 100%; + height: var(--dlanding-hero-height); + overflow: visible; +} + +.dlanding__container { + position: relative; + z-index: 1; + .dlanding-page-frame(); + aspect-ratio: auto; + height: var(--dlanding-hero-height); + min-height: var(--dlanding-hero-height); + max-height: none; + padding-top: clamp(24px, 2.5vw, 32px); + padding-bottom: clamp(32px, 4vw, 72px); + overflow: visible; + box-sizing: border-box; +} + +.dlanding-hero__pattern { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: auto; + height: calc(var(--dlanding-hero-height) + clamp(72px, 8vw, 120px)); + background-color: #c4895d; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center top; + mask-position: center top; + -webkit-mask-size: cover; + mask-size: cover; + -webkit-mask-mode: alpha; + mask-mode: alpha; + opacity: 1; + pointer-events: none; + + /* نیمه چپ فیزیکی: زیر بک‌گراند stats */ + &--under { + z-index: 0; + -webkit-clip-path: inset(0 50% 0 0); + clip-path: inset(0 50% 0 0); + } + + /* نیمه راست فیزیکی: روی سفید stats می‌ماند */ + &--over { + z-index: 2; + -webkit-clip-path: inset(0 0 0 50%); + clip-path: inset(0 0 0 50%); + } +} + +html.dlanding-menu-open, +body.dlanding-menu-open { + overflow: hidden; +} + +.dlanding-nav { + position: relative; + z-index: 40; + width: 100%; + height: var(--dlanding-nav-height); + background: #ffffff; + border-bottom: 1px solid rgba(15, 23, 42, 0.08); + box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04); + box-sizing: border-box; + + &__inner { + position: relative; + z-index: 2; + display: flex; + align-items: center; + justify-content: space-between; + gap: clamp(12px, 2vw, 20px); + height: 100%; + .dlanding-page-frame(); + padding-top: 0; + padding-bottom: 0; + background: #ffffff; + } + + &__brand { + display: flex; + align-items: center; + flex-shrink: 0; + } + + &__logo { + height: clamp(32px, 3.2vw, 40px); + width: auto; + max-width: min(190px, 42vw); + object-fit: contain; + display: block; + } + + &__links { + display: inline-flex; + align-items: center; + gap: clamp(12px, 1.6vw, 22px); + color: #495468; + font-size: clamp(12px, 1vw, 13px); + font-weight: 500; + } + + &__link { + color: inherit; + text-decoration: none; + white-space: nowrap; + transition: color 0.2s ease; + + &:hover { + color: #102b4e; + } + } + + &__actions { + display: flex; + align-items: center; + gap: 10px; + flex-shrink: 0; + } + + &__ghost, + &__primary { + height: clamp(32px, 3.2vw, 36px); + padding: 0 clamp(12px, 1.4vw, 16px); + border-radius: 16px; + font-family: inherit; + font-size: clamp(12px, 1vw, 13px); + font-weight: 600; + cursor: pointer; + transition: + transform 0.2s ease, + box-shadow 0.2s ease, + background-color 0.2s ease; + } + + &__ghost { + border: none; + background: transparent; + color: #102b4e; + } + + &__primary { + border: none; + background: #102b4e; + color: #fff; + box-shadow: 0 10px 24px rgba(16, 43, 78, 0.18); + } + + /* Mobile-only: hamburger sits on the physical left in RTL */ + &__burger { + display: none; + align-items: center; + justify-content: center; + width: 44px; + height: 44px; + margin: 0; + padding: 0; + border: none; + border-radius: 12px; + background: transparent; + color: #102b4e; + cursor: pointer; + flex-shrink: 0; + -webkit-tap-highlight-color: transparent; + + &:hover, + &:focus-visible { + background: rgba(16, 43, 78, 0.06); + } + } + + &__drawer { + display: none; + } + + &__backdrop { + display: none; + } +} + +.dlanding-hero { + position: relative; + z-index: 1; + display: grid; + grid-template-columns: minmax(0, 611px) minmax(0, 1fr); + align-items: center; + column-gap: clamp(24px, 4vw, 80px); + width: 100%; + height: 790px; + min-height: 790px; + padding: 0; + box-sizing: border-box; + overflow: visible; + + &__visual, + &__content { + position: relative; + z-index: 1; + min-width: 0; + } + + &__visual { + display: block; + width: calc(100% - 5px); + justify-self: stretch; + align-self: center; + grid-column: 2; + grid-row: 1; + } + + &__content { + width: 611px; + max-width: 100%; + padding: 0; + margin: 0; + justify-self: stretch; + align-self: center; + grid-column: 1; + grid-row: 1; + } + + &__badge { + display: inline-flex; + align-items: center; + gap: 6px; + min-height: 30px; + padding: 0 12px; + border: 1px solid rgba(207, 154, 114, 0.3); + border-radius: 16px; + background: rgba(255, 255, 255, 0.74); + color: #58667b; + font-size: clamp(11px, 1vw, 12px); + font-weight: 500; + } + + &__title { + margin: 16px 0 12px; + color: #153253; + font-size: var(--dlanding-title-size); + font-weight: 800; + line-height: 1.12; + letter-spacing: -0.03em; + + span { + color: #c07b50; + } + + br { + display: block; + } + } + + &__text { + max-width: 420px; + margin: 0; + color: #5f6d80; + font-size: clamp(13px, 1.2vw, 15px); + line-height: 1.9; + } + + &__actions { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 12px; + margin-top: clamp(18px, 2.4vw, 24px); + } + + &__primary, + &__secondary { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + height: clamp(40px, 4vw, 46px); + padding: 0 clamp(14px, 1.6vw, 18px); + border-radius: 16px; + font-family: inherit; + font-size: clamp(13px, 1.1vw, 14px); + font-weight: 700; + cursor: pointer; + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + } + + &__primary { + border: none; + border-radius: 9999px; + background: #123257; + color: #fff; + box-shadow: 0 14px 28px rgba(18, 50, 87, 0.22); + } + + &__secondary { + border: none; + border-radius: 9999px; + background: rgba(255, 255, 255, 0.8); + color: #123257; + } + + &__features { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: clamp(12px, 2vw, 20px); + margin-top: clamp(16px, 2vw, 22px); + } +} + +.dlanding-dot { + width: 7px; + height: 7px; + border-radius: 16px; + background: #27ae60; + box-shadow: 0 0 0 3px rgba(39, 174, 96, 0.14); + flex-shrink: 0; +} + +.dlanding-feature { + display: inline-flex; + align-items: center; + gap: 6px; + color: #758196; + font-size: clamp(12px, 1vw, 13px); + font-weight: 500; +} + +.dlanding-trade-card { + position: relative; + display: flex; + flex-direction: column; + align-items: stretch; + gap: 16px; + width: 556px; + max-width: 100%; + padding-top: 0; + + &__tabs { + --tab-copper: #b77a56; + position: relative; + z-index: 2; + display: inline-grid; + grid-template-columns: 1fr 1fr; + width: 58%; + /* flush to physical left of trade-card */ + align-self: auto; + margin-top: 0; + margin-bottom: 0; + margin-left: 0; + margin-right: auto; + padding: 0; + overflow: hidden; + border: none; + border-radius: 30px; + background: #fff; + box-shadow: none; + + button { + height: 36px; + border: none; + border-radius: 0; + background: #fff; + color: var(--tab-copper); + font-family: inherit; + font-size: 13px; + font-weight: 700; + line-height: 1; + cursor: pointer; + transition: + background-color 0.2s ease, + color 0.2s ease; + + &:first-child { + border-radius: 30px 0 0 30px; + } + + &:last-child { + border-radius: 0 30px 30px 0; + box-shadow: inset 1px 0 0 rgba(183, 122, 86, 0.35); + } + } + + .is-active { + background: var(--tab-copper); + color: #fff; + box-shadow: none; + } + } +} + +.dlanding-price-card { + width: 556px; + max-width: 100%; + border: 1px solid rgba(210, 216, 224, 0.7); + border-radius: 28px; + background: rgba(255, 255, 255, 0.96); + box-shadow: + 0 22px 40px rgba(15, 23, 42, 0.08), + 0 4px 10px rgba(15, 23, 42, 0.04); + backdrop-filter: blur(8px); + position: relative; + overflow: hidden; + padding: clamp(16px, 2vw, 22px) clamp(14px, 1.8vw, 20px) 14px; + + &::before { + content: ''; + position: absolute; + top: -36px; + left: -26px; + width: 150px; + height: 150px; + border-radius: 50%; + background: radial-gradient(circle, rgba(201, 138, 74, 0.18) 0%, rgba(201, 138, 74, 0) 70%); + pointer-events: none; + } + + &__head { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + flex-wrap: wrap; + } + + &__title { + display: inline-flex; + align-items: center; + gap: 6px; + color: #4b5565; + font-size: 13px; + font-weight: 600; + } + + &__live { + display: inline-flex; + align-items: center; + min-height: 24px; + padding: 0 10px; + border-radius: 16px; + background: #f3f4f6; + color: #8b95a5; + font-size: 11px; + font-weight: 500; + } + + &__value { + position: relative; + display: flex; + align-items: baseline; + flex-wrap: wrap; + gap: 8px; + margin-top: 14px; + + strong { + color: #2a9d8f; + font-size: var(--dlanding-price-size); + font-weight: 800; + line-height: 1; + direction: ltr; + } + + span { + color: #7b8797; + font-size: 13px; + font-weight: 500; + } + } + + &__change { + position: relative; + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 8px; + margin-top: 12px; + } + + &__change-badge { + display: inline-flex; + align-items: center; + gap: 4px; + min-height: 24px; + padding: 0 8px; + border-radius: 16px; + background: #e8f8ef; + color: #1f9d57; + font-size: 12px; + font-weight: 700; + direction: ltr; + + &.is-down { + background: #fde8e8; + color: #dc2626; + } + } + + &__change-label { + color: #9aa5b4; + font-size: 12px; + font-weight: 500; + } +} + +.dlanding-chart { + position: relative; + height: auto; + margin-top: 14px; + + &__svg { + display: block; + width: 100%; + height: clamp(80px, 10vw, 96px); + } + + &__empty { + display: flex; + align-items: center; + justify-content: center; + height: clamp(80px, 10vw, 96px); + color: #a0abb9; + font-size: 12px; + font-weight: 500; + } + + &__labels { + display: flex; + align-items: center; + justify-content: space-between; + margin-top: 6px; + color: #a0abb9; + font-size: 11px; + font-weight: 500; + line-height: 1.4; + } +} + +.dlanding-order-card { + width: 556px; + max-width: 100%; + margin-top: 0; + padding: clamp(16px, 2vw, 20px); + border: 1px solid rgba(210, 216, 224, 0.7); + border-radius: 28px; + background: #fff; + box-shadow: + 0 22px 40px rgba(15, 23, 42, 0.08), + 0 4px 10px rgba(15, 23, 42, 0.04); + + &__header { + display: flex; + align-items: flex-start; + gap: 10px; + } + + &__icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 38px; + height: 38px; + flex-shrink: 0; + border-radius: 12px; + background: #f8ebe1; + } + + &__heading { + min-width: 0; + } + + &__title { + margin: 0; + color: #1f2a37; + font-size: clamp(15px, 1.4vw, 16px); + font-weight: 700; + line-height: 1.4; + } + + &__subtitle { + margin: 2px 0 0; + color: #8b95a5; + font-size: 12px; + font-weight: 500; + line-height: 1.7; + } + + &__label { + display: block; + margin-top: 16px; + margin-bottom: 6px; + color: #667487; + font-size: 12px; + font-weight: 600; + } + + &__input { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + min-height: 48px; + padding: 0 14px; + border: 1px solid #e5e9ef; + border-radius: 16px; + background: #fff; + transition: border-color 0.15s ease, box-shadow 0.15s ease; + + &:focus-within { + border-color: rgba(201, 138, 95, 0.55); + box-shadow: 0 0 0 3px rgba(201, 138, 95, 0.12); + } + + span { + color: #8b95a5; + font-size: 12px; + font-weight: 500; + flex-shrink: 0; + } + } + + &__amount { + flex: 1; + min-width: 0; + border: none; + outline: none; + background: transparent; + color: #123257; + font-family: inherit; + font-size: clamp(16px, 1.6vw, 18px); + font-weight: 800; + direction: ltr; + text-align: right; + line-height: 1; + padding: 0; + + &::placeholder { + color: #c0c7d1; + font-weight: 600; + } + } + + &__result { + margin-top: 12px; + padding: 14px; + border-radius: 16px; + background: #f5f7fa; + } + + &__result-top { + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; + color: #8b95a5; + font-size: 11px; + font-weight: 500; + } + + &__result-value { + display: flex; + align-items: baseline; + flex-wrap: wrap; + gap: 6px; + margin-top: 8px; + + strong { + color: #c07b50; + font-size: clamp(24px, 2.8vw, 30px); + font-weight: 800; + line-height: 1; + direction: ltr; + } + + span { + color: #7b8797; + font-size: 13px; + font-weight: 500; + } + } + + &__result-note { + margin-top: 6px; + color: #9aa5b4; + font-size: 11px; + font-weight: 500; + } + + &__cta { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 6px; + width: 100%; + height: 44px; + margin-top: 14px; + border: none; + border-radius: 20px; + background: #123257; + color: #fff; + font-family: inherit; + font-size: 14px; + font-weight: 700; + cursor: pointer; + box-shadow: 0 14px 28px rgba(18, 50, 87, 0.22); + } + + &__footer { + margin: 12px 0 0; + color: #9aa5b4; + font-size: 10px; + font-weight: 500; + line-height: 1.8; + text-align: center; + } +} + +.dlanding-anchor { + height: 1px; +} + +.dlanding-why { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(64px, 7vw, 96px) 0 clamp(72px, 8vw, 112px); + box-sizing: border-box; + background: #f4f5f7; + + &__inner { + .dlanding-content-frame(1080px); + } + + &__header { + text-align: center; + margin-bottom: clamp(36px, 4.5vw, 52px); + } + + &__title { + margin: 0; + color: #1a2b47; + font-size: clamp(26px, 2.8vw, 36px); + font-weight: 800; + line-height: 1.5; + } + + &__subtitle { + margin: 12px 0 0; + color: #71717a; + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 500; + line-height: 1.9; + } + + &__grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: clamp(16px, 2vw, 24px); + margin: 0; + padding: 0; + list-style: none; + } + + &__card { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + min-height: 100%; + padding: clamp(28px, 3vw, 36px) clamp(20px, 2.2vw, 28px) clamp(24px, 2.6vw, 32px); + border-radius: 28px; + background: #ffffff; + box-shadow: 0 4px 24px rgba(15, 23, 42, 0.06); + transition: + transform 0.25s ease, + box-shadow 0.25s ease; + + &:hover { + transform: translateY(-3px); + box-shadow: 0 10px 32px rgba(15, 23, 42, 0.09); + } + } + + &__icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 56px; + height: 56px; + margin-bottom: 16px; + flex-shrink: 0; + border-radius: 16px; + background: linear-gradient(135deg, #c27d561a 0%, #1430500d 100%); + color: #c9895d; + } + + &__card-title { + margin: 0; + color: #1a2b47; + font-size: clamp(15px, 1.25vw, 17px); + font-weight: 700; + line-height: 1.6; + } + + &__card-text { + margin: 10px 0 0; + color: #71717a; + font-size: clamp(12px, 1.05vw, 13.5px); + font-weight: 500; + line-height: 1.9; + } +} + +.dlanding-appcta { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(48px, 6vw, 80px) 0 clamp(56px, 7vw, 96px); + box-sizing: border-box; + background: #f4f5f7; + overflow: visible; + + &__inner { + .dlanding-content-frame(1080px); + } + + &__banner { + position: relative; + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + gap: clamp(16px, 3vw, 40px); + min-height: clamp(200px, 22vw, 260px); + padding: clamp(28px, 3.5vw, 44px) clamp(28px, 4vw, 56px); + padding-inline-end: clamp(8px, 1.5vw, 20px); + border-radius: 36px; + background: #c6865b; + direction: ltr; + overflow: visible; + box-shadow: 0 18px 48px rgba(148, 90, 50, 0.22); + } + + &__content { + position: relative; + z-index: 2; + flex: 1 1 auto; + min-width: 0; + max-width: 520px; + direction: rtl; + text-align: right; + } + + &__title { + margin: 0; + color: #ffffff; + font-size: clamp(22px, 2.6vw, 32px); + font-weight: 800; + line-height: 1.5; + } + + &__text { + margin: 12px 0 0; + color: rgba(255, 255, 255, 0.92); + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 500; + line-height: 1.9; + } + + &__btn { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + height: clamp(42px, 4.5vw, 48px); + margin-top: clamp(18px, 2.2vw, 28px); + padding: 0 clamp(18px, 2vw, 24px); + border: none; + border-radius: 16px; + background: #ffffff; + color: #1a2b47; + font-family: inherit; + font-size: clamp(13px, 1.1vw, 14px); + font-weight: 700; + cursor: pointer; + box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12); + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + + &:hover { + transform: translateY(-2px); + box-shadow: 0 12px 28px rgba(15, 23, 42, 0.16); + } + } + + &__btn-icon { + display: block; + width: 18px; + height: 18px; + flex-shrink: 0; + } + + &__visual { + position: relative; + z-index: 1; + flex: 0 0 auto; + width: min(48%, 440px); + align-self: center; + margin-top: clamp(-100px, -10vw, -64px); + margin-bottom: clamp(-28px, -2.5vw, -8px); + /* چپ‌تر + کمی بالاتر */ + transform: translate(-140px, 2px); + pointer-events: none; + } + + &__phones { + display: block; + width: 100%; + height: auto; + } +} + +.dlanding-steps { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(64px, 7vw, 100px) 0 clamp(72px, 8vw, 112px); + box-sizing: border-box; + background: + radial-gradient(ellipse 70% 55% at 50% 42%, rgba(226, 232, 240, 0.55) 0%, transparent 70%), + #ffffff; + + &__inner { + .dlanding-content-frame(980px); + text-align: center; + } + + &__header { + margin-bottom: clamp(40px, 5vw, 64px); + } + + &__title { + margin: 0; + color: #1a2b47; + font-size: clamp(24px, 2.6vw, 34px); + font-weight: 800; + line-height: 1.5; + } + + &__subtitle { + margin: 12px 0 0; + color: #71717a; + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 500; + line-height: 1.9; + } + + &__list { + position: relative; + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: clamp(16px, 2.5vw, 32px); + margin: 0; + padding: 0; + list-style: none; + + &::before { + content: ''; + position: absolute; + top: 40px; + right: 16.666%; + left: 16.666%; + height: 1px; + background: rgba(148, 163, 184, 0.45); + pointer-events: none; + } + } + + &__item { + position: relative; + z-index: 1; + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + } + + &__icon-wrap { + position: relative; + width: 80px; + height: 80px; + margin-bottom: 20px; + } + + &__icon { + display: flex; + align-items: center; + justify-content: center; + width: 80px; + height: 80px; + border-radius: 50%; + background: #ffffff; + border: 1px solid rgba(148, 163, 184, 0.35); + box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06); + } + + &__badge { + position: absolute; + top: -2px; + right: -2px; + z-index: 2; + display: inline-flex; + align-items: center; + justify-content: center; + width: 26px; + height: 26px; + border-radius: 50%; + background: #1a2b47; + color: #ffffff; + font-size: 12px; + font-weight: 700; + line-height: 1; + box-shadow: 0 2px 8px rgba(26, 43, 71, 0.25); + } + + &__item-title { + margin: 0; + color: #1a2b47; + font-size: clamp(14px, 1.2vw, 16px); + font-weight: 700; + line-height: 1.6; + } + + &__item-text { + margin: 10px 0 0; + max-width: 240px; + color: #71717a; + font-size: clamp(12px, 1.05vw, 13.5px); + font-weight: 500; + line-height: 1.9; + } + + &__cta { + display: inline-flex; + align-items: center; + justify-content: space-between; + gap: 14px; + width: min(100%, 320px); + height: clamp(44px, 4.8vw, 50px); + margin-top: clamp(36px, 4.5vw, 52px); + padding: 0 clamp(24px, 3vw, 36px); + border: none; + border-radius: 9999px; + background: #1a2b47; + color: #ffffff; + font-family: inherit; + font-size: clamp(13px, 1.1vw, 15px); + font-weight: 700; + cursor: pointer; + box-shadow: 0 12px 28px rgba(26, 43, 71, 0.22); + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + + &:hover { + transform: translateY(-2px); + box-shadow: 0 16px 32px rgba(26, 43, 71, 0.28); + } + } + + &__cta-icon { + flex-shrink: 0; + } +} + +.dlanding-live { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 100px); + box-sizing: border-box; + background: #f4f5f7; + + &__inner { + .dlanding-content-frame(1100px); + } + + &__header { + text-align: center; + margin-bottom: clamp(28px, 3.5vw, 40px); + } + + &__title { + margin: 0; + color: #1a2b47; + font-size: clamp(24px, 2.6vw, 34px); + font-weight: 800; + line-height: 1.5; + } + + &__subtitle { + margin: 10px 0 0; + color: #71717a; + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 500; + line-height: 1.9; + } + + &__layout { + display: grid; + grid-template-columns: minmax(0, 1.28fr) minmax(0, 1fr); + gap: clamp(14px, 1.8vw, 20px); + align-items: stretch; + } + + &__main, + &__metric { + background: #ffffff; + border-radius: 16px; + box-shadow: 0 6px 24px rgba(15, 23, 42, 0.05); + border: 1px solid rgba(15, 23, 42, 0.04); + } + + &__forecast { + border-radius: 16px; + box-shadow: 0 6px 24px rgba(15, 23, 42, 0.05); + border: 1px solid rgba(15, 23, 42, 0.04); + background: #c27d5633; + } + + &__main { + position: relative; + display: flex; + flex-direction: column; + align-self: stretch; + height: 100%; + min-height: 100%; + overflow: hidden; + padding: clamp(20px, 2.4vw, 28px); + box-sizing: border-box; + + &::before { + content: ''; + position: absolute; + top: -40px; + left: -30px; + width: 180px; + height: 180px; + border-radius: 50%; + background: radial-gradient(circle, rgba(232, 180, 140, 0.45) 0%, rgba(232, 180, 140, 0) 70%); + pointer-events: none; + } + } + + &__main-top { + position: relative; + z-index: 1; + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 16px; + } + + &__product { + display: inline-flex; + align-items: center; + gap: 8px; + color: #1a2b47; + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 700; + } + + &__product-dot { + width: 8px; + height: 8px; + border-radius: 50%; + background: #16a34a; + box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.15); + flex-shrink: 0; + + &.is-closed { + background: #dc2626; + box-shadow: 0 0 0 4px rgba(220, 38, 38, 0.15); + } + + &.is-waiting { + background: #94a3b8; + box-shadow: 0 0 0 4px rgba(148, 163, 184, 0.2); + } + } + + &__status { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 6px; + } + + &__status-open { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 6px 10px; + border-radius: 16px; + background: rgba(22, 163, 74, 0.1); + color: #166534; + font-size: 12px; + font-weight: 600; + + &.is-closed { + background: rgba(220, 38, 38, 0.1); + color: #b91c1c; + } + + &.is-waiting { + background: rgba(148, 163, 184, 0.16); + color: #64748b; + } + } + + &__status-live { + display: inline-flex; + align-items: center; + gap: 5px; + padding-inline: 4px; + color: #94a3b8; + font-size: 11px; + font-weight: 500; + } + + &__price-block { + position: relative; + z-index: 1; + margin-top: clamp(22px, 2.8vw, 32px); + } + + &__price-row { + display: flex; + align-items: baseline; + flex-wrap: wrap; + gap: 10px 14px; + } + + &__price { + color: #1a2b47; + font-size: clamp(36px, 4.2vw, 52px); + font-weight: 800; + line-height: 1; + letter-spacing: -0.02em; + direction: ltr; + } + + &__unit { + color: #64748b; + font-size: clamp(13px, 1.2vw, 15px); + font-weight: 600; + } + + &__change { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 6px; + margin-top: 12px; + } + + &__change-badge { + display: inline-flex; + align-items: center; + padding: 4px 10px; + border-radius: 16px; + background: rgba(22, 163, 74, 0.1); + color: #16a34a; + font-size: 12px; + font-weight: 700; + direction: ltr; + + &.is-down { + background: rgba(220, 38, 38, 0.1); + color: #dc2626; + } + } + + &__change-label { + color: #94a3b8; + font-size: 12px; + font-weight: 500; + } + + &__chart-wrap { + position: relative; + z-index: 1; + margin-top: auto; + padding-top: clamp(20px, 2.5vw, 28px); + } + + &__chart-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; + margin-bottom: 10px; + color: #94a3b8; + font-size: 12px; + font-weight: 500; + } + + &__chart { + width: 100%; + height: clamp(120px, 14vw, 160px); + } + + &__chart-svg { + display: block; + width: 100%; + height: 100%; + } + + &__chart-empty { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + height: 100%; + color: #94a3b8; + font-size: 13px; + font-weight: 500; + } + + &__aside { + display: flex; + flex-direction: column; + align-self: stretch; + height: 100%; + min-height: 100%; + gap: clamp(14px, 1.8vw, 20px); + min-width: 0; + box-sizing: border-box; + } + + &__metrics { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + grid-template-rows: repeat(2, minmax(0, 1fr)); + flex: 1 1 auto; + gap: clamp(14px, 1.8vw, 20px); + margin: 0; + padding: 0; + list-style: none; + min-height: 0; + } + + &__metric { + display: flex; + flex-direction: column; + gap: 8px; + padding: clamp(16px, 1.8vw, 20px); + min-height: 0; + height: 100%; + box-sizing: border-box; + } + + &__metric-label { + color: #94a3b8; + font-size: 12px; + font-weight: 500; + } + + &__metric-value { + color: #1a2b47; + font-size: clamp(22px, 2.2vw, 28px); + font-weight: 800; + line-height: 1.2; + direction: ltr; + text-align: start; + } + + &__metric.is-up &__metric-value { + color: #16a34a; + } + + &__metric.is-down &__metric-value { + color: #dc2626; + } + + &__metric-footer { + margin-top: auto; + color: #94a3b8; + font-size: 12px; + font-weight: 500; + } + + &__forecast { + flex: 0 0 auto; + padding: clamp(16px, 1.8vw, 20px); + } + + &__forecast-label { + display: block; + color: #94a3b8; + font-size: 12px; + font-weight: 500; + } + + &__forecast-trend { + display: inline-flex; + align-items: center; + gap: 8px; + margin-top: 10px; + color: #1a2b47; + font-size: clamp(15px, 1.3vw, 17px); + font-weight: 700; + } + + &__forecast-trend-icon { + display: block; + width: 19px; + height: 10px; + flex-shrink: 0; + + &.is-down { + transform: scaleY(-1); + } + } + + &__forecast-text { + margin: 10px 0 0; + color: #94a3b8; + font-size: 12px; + font-weight: 500; + line-height: 1.9; + } +} + +.dlanding-sunrad { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 100px); + box-sizing: border-box; + background: #ffffff; + + &__inner { + .dlanding-content-frame(1100px); + } + + &__header { + text-align: center; + margin-bottom: clamp(28px, 3.5vw, 40px); + } + + &__title { + margin: 0; + color: #1a2b47; + font-size: clamp(22px, 2.5vw, 32px); + font-weight: 800; + line-height: 1.6; + } + + &__subtitle { + margin: 12px auto 0; + max-width: 720px; + color: #71717a; + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 500; + line-height: 1.9; + } + + &__layout { + display: grid; + grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); + grid-template-rows: minmax(0, 1fr) auto; + gap: clamp(14px, 1.8vw, 20px); + align-items: stretch; + } + + &__visual { + grid-column: 1; + grid-row: 1; + min-height: 0; + height: 100%; + border-radius: 16px; + overflow: hidden; + box-shadow: 0 6px 24px rgba(15, 23, 42, 0.06); + } + + &__image { + display: block; + width: 100%; + height: 100%; + object-fit: cover; + object-position: center; + } + + &__cards { + grid-column: 2; + grid-row: 1; + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + grid-template-rows: repeat(2, minmax(0, 1fr)); + gap: clamp(12px, 1.6vw, 16px); + margin: 0; + padding: 0; + list-style: none; + min-height: 0; + height: 100%; + } + + &__card { + display: flex; + flex-direction: column; + align-items: flex-start; + gap: 6px; + padding: clamp(16px, 1.8vw, 22px); + border-radius: 16px; + background: #ffffff; + border: 1px solid rgba(15, 23, 42, 0.06); + box-shadow: 0 4px 18px rgba(15, 23, 42, 0.04); + min-height: 0; + height: 100%; + box-sizing: border-box; + } + + &__card-icon { + display: inline-flex; + align-items: center; + justify-content: center; + width: 44px; + height: 44px; + margin-bottom: 6px; + border-radius: 16px; + background: #c27d561a; + } + + &__card-value { + color: #1a2b47; + font-size: clamp(20px, 2vw, 26px); + font-weight: 800; + line-height: 1.3; + } + + &__card-label { + color: #64748b; + font-size: clamp(13px, 1.1vw, 14px); + font-weight: 600; + } + + &__card-detail { + color: #94a3b8; + font-size: 12px; + font-weight: 500; + } + + &__note { + grid-column: 2; + grid-row: 2; + margin: 0; + padding: clamp(16px, 1.8vw, 20px) clamp(18px, 2vw, 24px); + border: 1px solid #f2f2f2; + border-radius: 16px; + background: #dce3e8; + color: #475569; + font-size: clamp(12px, 1.05vw, 13.5px); + font-weight: 500; + line-height: 1.9; + text-align: center; + box-sizing: border-box; + } +} + +.dlanding-reviews { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 100px); + box-sizing: border-box; + background: #f4f5f7; + + &__inner { + .dlanding-content-frame(1100px); + } + + &__title { + margin: 0 0 clamp(28px, 3.5vw, 40px); + color: #1a2b47; + font-size: clamp(22px, 2.4vw, 30px); + font-weight: 800; + line-height: 1.6; + text-align: center; + } + + &__grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: clamp(14px, 1.8vw, 20px); + margin: 0; + padding: 0; + list-style: none; + } + + &__card { + display: flex; + flex-direction: column; + min-height: 100%; + padding: clamp(20px, 2.2vw, 26px); + border-radius: 16px; + background: #ffffff; + border: 1px solid rgba(15, 23, 42, 0.06); + box-shadow: 0 4px 18px rgba(15, 23, 42, 0.04); + box-sizing: border-box; + } + + &__stars { + display: inline-flex; + align-items: center; + gap: 2px; + margin-bottom: 14px; + color: #d4a574; + font-size: 14px; + line-height: 1; + } + + &__star { + display: inline-block; + } + + &__quote { + margin: 0; + flex: 1 1 auto; + color: #64748b; + font-size: clamp(13px, 1.1vw, 14px); + font-weight: 500; + line-height: 1.95; + text-align: start; + } + + &__footer { + display: flex; + align-items: center; + gap: 12px; + margin-top: 18px; + padding-top: 16px; + border-top: 1px solid rgba(148, 163, 184, 0.28); + } + + &__avatar { + display: inline-flex; + align-items: center; + justify-content: center; + width: 42px; + height: 42px; + flex-shrink: 0; + border-radius: 50%; + background: rgba(201, 137, 93, 0.16); + color: #c9895d; + font-size: 12px; + font-weight: 700; + line-height: 1; + white-space: nowrap; + } + + &__author { + display: flex; + flex-direction: column; + gap: 4px; + min-width: 0; + } + + &__name { + color: #1a2b47; + font-size: 14px; + font-weight: 700; + line-height: 1.4; + } + + &__role { + color: #94a3b8; + font-size: 12px; + font-weight: 500; + line-height: 1.5; + } +} + +.dlanding-faq { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(56px, 6vw, 88px) 0 clamp(64px, 7vw, 100px); + box-sizing: border-box; + background: #f4f5f7; + + &__inner { + .dlanding-content-frame(760px); + } + + &__header { + text-align: center; + margin-bottom: clamp(28px, 3.5vw, 40px); + } + + &__title { + margin: 0; + color: #1a2b47; + font-size: clamp(24px, 2.6vw, 34px); + font-weight: 800; + line-height: 1.5; + } + + &__subtitle { + margin: 12px 0 0; + color: #71717a; + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 500; + line-height: 1.9; + } + + &__list { + display: flex; + flex-direction: column; + gap: 12px; + margin: 0; + padding: 0; + list-style: none; + } + + &__item { + border-radius: 16px; + background: #ffffff; + border: 1px solid rgba(15, 23, 42, 0.06); + box-shadow: 0 4px 16px rgba(15, 23, 42, 0.04); + overflow: hidden; + transition: box-shadow 0.2s ease; + + &.is-open { + box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06); + } + } + + &__trigger { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + width: 100%; + padding: 18px 20px; + border: none; + background: transparent; + cursor: pointer; + font-family: inherit; + text-align: start; + } + + &__question { + color: #1a2b47; + font-size: clamp(14px, 1.2vw, 16px); + font-weight: 700; + line-height: 1.6; + transition: color 0.2s ease; + } + + &__item.is-open &__question { + color: #c9895d; + } + + &__toggle { + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + flex-shrink: 0; + border-radius: 50%; + background: #eef1f5; + color: #64748b; + font-size: 22px; + font-weight: 400; + line-height: 1; + transition: + background-color 0.2s ease, + color 0.2s ease; + } + + &__item.is-open &__toggle { + background: #c9895d; + color: #ffffff; + font-size: 26px; + } + + &__panel { + padding: 0 20px 18px; + } + + &__answer { + margin: 0; + color: #64748b; + font-size: clamp(13px, 1.1vw, 14px); + font-weight: 500; + line-height: 1.95; + text-align: start; + } +} + +.dlanding-finalcta { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(40px, 5vw, 72px) 0 clamp(56px, 6vw, 88px); + box-sizing: border-box; + background: #f4f5f7; + + &__inner { + .dlanding-content-frame(1100px); + } + + &__banner { + position: relative; + overflow: hidden; + border-radius: 40px; + padding: clamp(48px, 6vw, 72px) clamp(24px, 4vw, 48px); + background: + radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.14) 1px, transparent 0) 0 0 / 28px 28px, + #102b4e; + text-align: center; + box-shadow: 0 18px 48px rgba(16, 43, 78, 0.28); + } + + &__glow { + position: absolute; + top: 50%; + right: -120px; + width: 340px; + height: 340px; + transform: translateY(-50%); + border-radius: 50%; + background: + radial-gradient(circle, transparent 42%, rgba(255, 255, 255, 0.05) 43%, transparent 44%), + radial-gradient(circle, transparent 56%, rgba(255, 255, 255, 0.045) 57%, transparent 58%), + radial-gradient(circle, transparent 70%, rgba(255, 255, 255, 0.04) 71%, transparent 72%), + radial-gradient(circle, transparent 84%, rgba(255, 255, 255, 0.035) 85%, transparent 86%); + pointer-events: none; + } + + &__content { + position: relative; + z-index: 1; + max-width: 640px; + margin: 0 auto; + } + + &__title { + margin: 0; + color: #ffffff; + font-size: clamp(22px, 2.8vw, 36px); + font-weight: 800; + line-height: 1.6; + } + + &__text { + margin: 14px 0 0; + color: rgba(255, 255, 255, 0.78); + font-size: clamp(13px, 1.15vw, 15px); + font-weight: 500; + line-height: 1.9; + } + + &__actions { + display: inline-flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 12px; + margin-top: clamp(24px, 3vw, 32px); + } + + &__primary, + &__secondary { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + height: clamp(44px, 4.8vw, 50px); + padding: 0 clamp(20px, 2.4vw, 28px); + border-radius: 16px; + font-family: inherit; + font-size: clamp(13px, 1.1vw, 14px); + font-weight: 700; + cursor: pointer; + transition: + transform 0.2s ease, + box-shadow 0.2s ease, + background-color 0.2s ease; + + &:hover { + transform: translateY(-2px); + } + } + + &__primary { + width: 191px; + height: 54px; + border: none; + border-radius: 40px; + background: #c9895d; + color: #ffffff; + box-shadow: 0 10px 28px rgba(201, 137, 93, 0.35); + + &:hover { + box-shadow: 0 14px 32px rgba(201, 137, 93, 0.42); + } + } + + &__secondary { + border: 1px solid rgba(255, 255, 255, 0.28); + border-radius: 40px; + background: rgba(255, 255, 255, 0.04); + color: #ffffff; + + &:hover { + background: rgba(255, 255, 255, 0.08); + } + } +} + +.dlanding-footer { + position: relative; + z-index: 1; + width: 100%; + padding: clamp(16px, 2vw, 24px) 0 clamp(28px, 3.5vw, 40px); + box-sizing: border-box; + background: #dfe3e8; + + &__inner { + .dlanding-content-frame(1100px); + } + + &__newsletter { + display: flex; + align-items: center; + justify-content: space-between; + gap: clamp(16px, 3vw, 32px); + margin-top: 0; + margin-bottom: clamp(36px, 4.5vw, 52px); + padding: clamp(28px, 3.2vw, 40px) clamp(32px, 4vw, 56px); + box-sizing: border-box; + border-radius: 16px; + background: #ffffff; + box-shadow: 0 10px 36px rgba(15, 23, 42, 0.08); + border: 1px solid rgba(15, 23, 42, 0.04); + } + + &__newsletter-copy { + min-width: 0; + flex: 1 1 auto; + } + + &__newsletter-title { + margin: 0; + color: #1a2b47; + font-size: clamp(16px, 1.5vw, 20px); + font-weight: 800; + line-height: 1.6; + } + + &__newsletter-text { + margin: 6px 0 0; + color: #94a3b8; + font-size: clamp(12px, 1.05vw, 13.5px); + font-weight: 500; + line-height: 1.8; + } + + &__newsletter-form { + display: flex; + align-items: center; + gap: 10px; + flex: 0 0 auto; + } + + &__email { + display: inline-flex; + align-items: center; + gap: 8px; + min-width: min(100%, 240px); + height: 46px; + padding: 0 14px; + border-radius: 16px; + background: #f8fafc; + border: 1px solid rgba(148, 163, 184, 0.35); + + input { + flex: 1 1 auto; + min-width: 0; + border: none; + outline: none; + background: transparent; + color: #1a2b47; + font-family: inherit; + font-size: 13px; + font-weight: 500; + + &::placeholder { + color: #94a3b8; + } + } + } + + &__subscribe { + display: inline-flex; + align-items: center; + justify-content: center; + gap: 8px; + height: 46px; + padding: 0 18px; + border: none; + border-radius: 16px; + background: #1a2b47; + color: #ffffff; + font-family: inherit; + font-size: 13px; + font-weight: 700; + cursor: pointer; + white-space: nowrap; + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + + &:hover { + transform: translateY(-1px); + box-shadow: 0 10px 24px rgba(26, 43, 71, 0.22); + } + } + + /* Desktop body: brand + 3 cols, then bottom bar */ + &__body { + display: grid; + grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)); + gap: clamp(24px, 4vw, 40px); + padding-bottom: 0; + } + + &__cols { + display: contents; + } + + &__brand { + min-width: 0; + } + + &__logo { + display: block; + height: clamp(36px, 3.6vw, 44px); + width: auto; + max-width: 180px; + object-fit: contain; + } + + &__brand-text { + margin: 14px 0 0; + max-width: 280px; + color: #64748b; + font-size: 13px; + font-weight: 500; + line-height: 1.9; + } + + &__socials { + display: flex; + align-items: center; + gap: 10px; + margin-top: 18px; + } + + &__social { + display: inline-flex; + align-items: center; + justify-content: center; + width: 36px; + height: 36px; + border-radius: 50%; + background: #ffffff; + border: 1px solid rgba(148, 163, 184, 0.28); + text-decoration: none; + transition: + transform 0.2s ease, + box-shadow 0.2s ease; + + &:hover { + transform: translateY(-2px); + box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08); + } + } + + &__col-title { + margin: 0 0 16px; + color: #1a2b47; + font-size: 15px; + font-weight: 800; + } + + &__links { + display: flex; + flex-direction: column; + gap: 12px; + margin: 0; + padding: 0; + list-style: none; + } + + &__link { + color: #64748b; + font-size: 13px; + font-weight: 500; + text-decoration: none; + transition: color 0.2s ease; + + &:hover { + color: #1a2b47; + } + } + + &__bottom { + display: flex; + align-items: center; + justify-content: space-between; + gap: 16px; + flex-wrap: wrap; + grid-column: 1 / -1; + margin-top: clamp(8px, 1vw, 12px); + padding-top: 20px; + border-top: 1px solid rgba(148, 163, 184, 0.3); + } + + &__contacts { + display: inline-flex; + align-items: center; + flex-wrap: wrap; + gap: 16px 24px; + } + + &__contact { + display: inline-flex; + align-items: center; + gap: 6px; + color: #475569; + font-size: 13px; + font-weight: 600; + direction: rtl; + unicode-bidi: isolate; + + &--phone { + direction: ltr; + flex-direction: row-reverse; + } + } + + &__copy { + margin: 0; + color: #94a3b8; + font-size: 12px; + font-weight: 500; + } +} + +.dlanding-stats { + position: relative; + width: 100%; + margin-top: clamp(-20px, -2vw, 0px); + padding: clamp(88px, 9vw, 128px) 0 clamp(80px, 10vw, 140px); + box-sizing: border-box; + overflow: visible; + background: transparent; + + /* بالای --under (چپ) و زیر --over (راست) */ + &::before { + content: ''; + position: absolute; + inset: 0; + z-index: 1; + pointer-events: none; + background: + radial-gradient(ellipse 70% 55% at 50% 42%, rgba(226, 232, 240, 0.55) 0%, transparent 70%), + #ffffff; + } + + &__inner { + position: relative; + z-index: 3; + .dlanding-content-frame(1080px); + text-align: center; + } + + &__title { + margin: 0; + color: #1a2b47; + font-size: clamp(20px, 2.15vw, 26px); + font-weight: 700; + line-height: 1.8; + } + + &__partners { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: clamp(24px, 4vw, 56px); + margin: clamp(40px, 5vw, 64px) 0 0; + padding: 0; + list-style: none; + } + + &__partner { + display: inline-flex; + align-items: center; + gap: 8px; + color: #71717a; + font-size: clamp(13px, 1.05vw, 15px); + font-weight: 500; + white-space: nowrap; + } + + &__partner-logo { + display: inline-flex; + align-items: center; + justify-content: center; + width: 28px; + height: 28px; + flex-shrink: 0; + border-radius: 16px; + border: 1px solid rgba(148, 163, 184, 0.55); + background: transparent; + } + + &__partner-mark { + width: 12px; + height: 12px; + border-radius: 50%; + border: 1.25px solid rgba(113, 113, 122, 0.7); + background: transparent; + } + + &__divider { + width: min(100%, 920px); + height: 1px; + margin: clamp(36px, 4.5vw, 52px) auto 0; + background: rgba(148, 163, 184, 0.35); + } + + &__metrics { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: clamp(20px, 4vw, 48px); + margin: clamp(36px, 4.5vw, 56px) 0 0; + padding: 0; + list-style: none; + } + + &__metric { + display: flex; + flex-direction: column; + align-items: center; + gap: 12px; + min-width: 0; + } + + &__metric-value { + color: #1a2b47; + font-size: clamp(32px, 4vw, 48px); + font-weight: 800; + line-height: 1; + letter-spacing: -0.02em; + direction: ltr; + } + + &__metric-accent { + color: #e67e22; + font-weight: 700; + } + + &__metric-label { + color: #71717a; + font-size: clamp(12px, 1.05vw, 14px); + font-weight: 500; + line-height: 1.6; + } +} + +/* ---- Large laptop ---- */ +@media (max-width: 1439.98px) { + .dlanding { + --dlanding-frame-px: clamp(48px, 5vw, 80px); + --dlanding-title-size: clamp(28px, 4.2vw, 52px); + --dlanding-price-size: clamp(28px, 3vw, 36px); + } + + .dlanding__container { + padding-top: clamp(24px, 2.5vw, 32px); + padding-bottom: clamp(32px, 4vw, 60px); + } + + .dlanding-hero { + column-gap: clamp(20px, 4vw, 64px); + } +} + +/* ---- Desktop XL: nav + hero fit first viewport; page scrolls for stats ---- */ +@media (min-width: 1440px) { + .dlanding { + --dlanding-frame-px: 100px; + --dlanding-title-size: clamp(44px, 5.2vh, 58px); + --dlanding-price-size: clamp(32px, 3.8vh, 40px); + width: 100%; + min-height: 100%; + height: auto; + max-height: none; + overflow: visible; + display: block; + } + + .dlanding__stage { + min-height: 0; + height: auto; + overflow: visible; + display: block; + } + + .dlanding__pattern-wrap { + overflow: visible; + } + + .dlanding__hero-shell { + display: flex; + flex-direction: column; + height: var(--dlanding-hero-height); + min-height: var(--dlanding-hero-height); + } + + .dlanding-hero__pattern { + top: 0; + right: 0; + left: 0; + bottom: auto; + height: calc(var(--dlanding-hero-height) + clamp(72px, 8vw, 120px)); + min-height: 0; + -webkit-mask-size: cover; + mask-size: cover; + -webkit-mask-position: center top; + mask-position: center top; + } + + .dlanding__container { + flex: 0 0 auto; + min-height: var(--dlanding-hero-height); + /* Keep Figma frame max-width — never drop to padding-only full bleed */ + width: 100%; + max-width: var(--dlanding-frame-width); + margin-inline: auto; + aspect-ratio: auto; + height: var(--dlanding-hero-height); + padding: clamp(16px, 2vh, 24px) var(--dlanding-frame-px) clamp(16px, 2.2vh, 32px); + display: flex; + flex-direction: column; + } + + .dlanding-hero { + flex: 0 0 auto; + min-height: 790px; + height: 790px; + column-gap: clamp(40px, 4vw, 72px); + } + + .dlanding-hero__content, + .dlanding-hero__visual { + min-height: 0; + max-height: 100%; + } + + .dlanding-hero__actions { + margin-top: clamp(14px, 2vh, 24px); + } + + .dlanding-hero__features { + margin-top: clamp(12px, 1.8vh, 22px); + } + + .dlanding-hero__primary, + .dlanding-hero__secondary { + height: clamp(40px, 5vh, 46px); + } + + .dlanding-trade-card { + max-height: 100%; + gap: clamp(10px, 1.4vh, 16px); + } + + .dlanding-price-card { + padding: clamp(14px, 2vh, 22px) clamp(14px, 1.5vw, 20px) clamp(10px, 1.2vh, 14px); + } + + .dlanding-price-card__value { + margin-top: clamp(8px, 1.2vh, 14px); + } + + .dlanding-chart { + height: auto; + margin-top: clamp(8px, 1.2vh, 14px); + + &__svg { + height: clamp(68px, 9vh, 96px); + } + + &__labels { + margin-top: 6px; + } + } + + .dlanding-order-card { + padding: clamp(14px, 1.8vh, 20px); + } + + .dlanding-order-card__input { + min-height: clamp(42px, 5vh, 48px); + } + + .dlanding-order-card__cta { + height: clamp(40px, 5vh, 44px); + margin-top: clamp(10px, 1.4vh, 14px); + } + + .dlanding-stats { + margin-top: clamp(-12px, -2vw, 0px); + padding-top: clamp(88px, 9vw, 128px); + padding-bottom: clamp(80px, 8vw, 120px); + } + + .dlanding-anchor { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0 0 0 0); + } +} + +/* ---- Laptop (~1024–1279): keep side-by-side, fluid widths ---- */ +@media (max-width: 1279.98px) { + .dlanding { + --dlanding-frame-px: clamp(32px, 4vw, 48px); + --dlanding-hero-height: auto; + --dlanding-title-size: clamp(28px, 3.4vw, 44px); + --dlanding-price-size: clamp(26px, 2.6vw, 34px); + } + + .dlanding__hero-shell { + height: auto; + min-height: 0; + } + + .dlanding__container { + height: auto; + min-height: 0; + max-height: none; + padding-top: clamp(20px, 2.4vw, 28px); + padding-bottom: clamp(28px, 3.5vw, 48px); + } + + .dlanding-hero__pattern { + height: min(920px, 88vw); + } + + .dlanding-hero { + grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); + column-gap: clamp(16px, 2.4vw, 28px); + height: auto; + min-height: 0; + align-items: start; + + &__content { + width: auto; + max-width: none; + } + + &__visual { + width: 100%; + } + + &__text { + max-width: 38em; + } + + &__actions { + gap: 10px; + } + + &__features { + gap: 10px 14px; + } + } + + .dlanding-trade-card, + .dlanding-price-card, + .dlanding-order-card { + width: 100%; + max-width: none; + } + + .dlanding-trade-card { + gap: 12px; + + &__tabs { + width: min(70%, 240px); + align-self: auto; + margin-left: 0; + margin-right: auto; + } + } + + .dlanding-price-card, + .dlanding-order-card { + border-radius: 22px; + padding: 16px; + } + + .dlanding-chart { + height: auto; + margin-top: 10px; + + &__svg, + &__empty { + height: 80px; + } + + &__labels { + margin-top: 6px; + } + } + + .dlanding-nav { + &__links { + gap: clamp(8px, 1vw, 14px); + font-size: 12px; + } + + &__ghost, + &__primary { + height: 34px; + padding: 0 12px; + font-size: 12px; + } + + &__logo { + height: 34px; + max-width: 160px; + } + } + + .dlanding-stats { + margin-top: 0; + padding-top: clamp(64px, 7vw, 96px); + padding-bottom: clamp(56px, 6vw, 88px); + + &__metrics { + gap: clamp(16px, 2.5vw, 32px); + } + + &__metric-value { + font-size: clamp(28px, 3.2vw, 40px); + } + } + + .dlanding-why { + padding-top: clamp(48px, 5vw, 72px); + padding-bottom: clamp(56px, 6vw, 80px); + + &__grid { + gap: 14px; + } + + &__card { + padding: 24px 18px 22px; + border-radius: 22px; + } + } + + .dlanding-appcta { + &__banner { + min-height: 180px; + padding: 28px 24px; + padding-inline-end: 12px; + border-radius: 28px; + gap: 12px; + } + + &__visual { + width: min(46%, 360px); + margin-top: -64px; + margin-bottom: -8px; + transform: translate(-72px, 6px); + } + + &__title { + font-size: clamp(20px, 2.2vw, 28px); + } + } + + .dlanding-steps { + padding-top: clamp(48px, 5vw, 72px); + padding-bottom: clamp(56px, 6vw, 80px); + + &__list { + gap: 12px; + + &::before { + top: 36px; + } + } + + &__icon-wrap, + &__icon { + width: 72px; + height: 72px; + } + } + + .dlanding-live { + padding-top: clamp(48px, 5vw, 72px); + padding-bottom: clamp(56px, 6vw, 80px); + + &__layout { + grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); + gap: 12px; + } + + &__price { + font-size: clamp(30px, 3.4vw, 44px); + } + + &__metric-value { + font-size: clamp(18px, 2vw, 24px); + } + } + + .dlanding-sunrad { + padding-top: clamp(48px, 5vw, 72px); + padding-bottom: clamp(56px, 6vw, 80px); + + &__layout { + gap: 12px; + } + + &__card { + padding: 14px; + } + + &__card-value { + font-size: clamp(18px, 1.8vw, 22px); + } + } + + .dlanding-reviews { + &__grid { + gap: 12px; + } + + &__card { + padding: 18px; + } + } + + .dlanding-footer { + &__newsletter { + gap: 16px; + padding: 24px 28px; + } + + &__newsletter-form { + flex-direction: column-reverse; + flex-wrap: nowrap; + align-items: stretch; + justify-content: stretch; + width: min(100%, 420px); + gap: 10px; + } + + &__email, + &__subscribe { + display: flex; + width: 100%; + min-width: 0; + max-width: none; + box-sizing: border-box; + flex: 0 0 auto; + align-self: stretch; + } + + &__subscribe { + justify-content: center; + padding-inline: 18px; + } + + &__body { + grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr)); + gap: 20px 14px; + } + } +} + +/* ---- Laptop narrow (~1024): tighter hero balance ---- */ +@media (max-width: 1100px) and (min-width: 1024px) { + .dlanding { + --dlanding-frame-px: 28px; + --dlanding-title-size: clamp(26px, 3.2vw, 36px); + } + + .dlanding-hero { + grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr); + column-gap: 16px; + + &__badge { + font-size: 11px; + min-height: 28px; + padding: 0 10px; + } + + &__primary, + &__secondary { + height: 40px; + padding: 0 14px; + font-size: 13px; + } + + &__features { + margin-top: 14px; + } + } + + .dlanding-feature { + font-size: 12px; + } + + .dlanding-appcta__visual { + width: min(44%, 300px); + transform: translate(-48px, 8px); + } + + .dlanding-live__layout { + gap: 10px; + } + + .dlanding-why__grid { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + + .dlanding-reviews__grid { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } +} + +/* Laptop (~1024–1100): compact full horizontal nav (no burger) */ +@media (max-width: 1100px) and (min-width: 1024px) { + .dlanding { + --dlanding-nav-height: 72px; + --dlanding-frame-px: 28px; + } + + .dlanding-nav { + height: var(--dlanding-nav-height); + + &__inner { + gap: 10px; + } + + &__logo { + height: 34px; + max-width: 148px; + } + + &__links { + display: inline-flex; + gap: 8px; + font-size: 11.5px; + } + + &__actions { + display: flex; + gap: 6px; + } + + &__ghost, + &__primary { + height: 34px; + padding: 0 12px; + font-size: 12px; + } + + &__burger, + &__drawer, + &__backdrop { + display: none; + } + } +} + +/* ---- Tablet (768–1023): stack hero + hamburger nav ---- */ +@media (max-width: 1023.98px) { + .dlanding { + --dlanding-frame-px: clamp(24px, 4vw, 36px); + --dlanding-nav-height: 68px; + --dlanding-title-size: clamp(28px, 4.6vw, 40px); + --dlanding-price-size: clamp(26px, 3.4vw, 34px); + } + + .dlanding__stage { + overflow: visible; + } + + .dlanding__container { + aspect-ratio: auto; + height: auto; + min-height: 0; + padding-top: clamp(28px, 4vw, 40px); + padding-bottom: clamp(28px, 4vw, 40px); + } + + .dlanding__hero-shell { + height: auto; + min-height: 0; + } + + .dlanding-hero__pattern { + height: min(980px, 118vw); + } + + .dlanding-hero { + grid-template-columns: 1fr; + justify-items: stretch; + height: auto; + min-height: 0; + row-gap: clamp(24px, 3.5vw, 36px); + + &__content, + &__visual { + width: 100%; + max-width: none; + grid-column: auto; + grid-row: auto; + justify-self: stretch; + align-self: stretch; + } + + &__content { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + max-width: 640px; + margin-inline: auto; + } + + &__badge { + display: inline-flex; + justify-content: center; + max-width: 100%; + white-space: normal; + text-align: center; + line-height: 1.5; + } + + &__title { + text-align: center; + } + + &__text { + max-width: 540px; + margin-inline: auto; + text-align: center; + } + + &__actions { + justify-content: center; + } + + &__features { + justify-content: center; + } + + &__visual { + display: flex; + justify-content: center; + width: 100%; + } + + .dlanding-trade-card { + max-width: 520px; + width: 100%; + } + + .dlanding-trade-card__tabs { + align-self: center; + margin-left: auto; + margin-right: auto; + width: min(58%, 240px); + } + } + + .dlanding-nav { + position: sticky; + top: 0; + height: var(--dlanding-nav-height); + z-index: 50; + + &__links, + &__actions { + display: none; + } + + &__inner { + flex-wrap: nowrap; + gap: 12px; + min-height: var(--dlanding-nav-height); + } + + &__brand { + margin-inline-end: auto; + flex: 1 1 auto; + min-width: 0; + } + + &__logo { + height: 34px; + max-width: min(168px, 42vw); + } + + &__burger { + display: inline-flex; + order: 2; + width: 42px; + height: 42px; + } + + &__drawer { + display: flex; + flex-direction: column; + gap: 20px; + position: absolute; + top: 100%; + right: 0; + left: 0; + z-index: 3; + max-height: min(70vh, 520px); + overflow-y: auto; + padding: 12px var(--dlanding-frame-px) 24px; + background: #ffffff; + border-bottom: 1px solid rgba(15, 23, 42, 0.08); + box-shadow: 0 18px 32px rgba(15, 23, 42, 0.1); + transform: translateY(-8px); + opacity: 0; + visibility: hidden; + pointer-events: none; + transition: + opacity 0.2s ease, + transform 0.2s ease, + visibility 0.2s ease; + } + + &__drawer-links { + display: flex; + flex-direction: column; + gap: 4px; + } + + &__drawer-link { + display: flex; + align-items: center; + min-height: 48px; + padding: 12px 14px; + border-radius: 14px; + color: #495468; + font-size: 15px; + font-weight: 600; + text-decoration: none; + transition: background-color 0.15s ease, color 0.15s ease; + + &:hover, + &:focus-visible { + background: rgba(16, 43, 78, 0.05); + color: #102b4e; + } + } + + &__drawer-actions { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; + + .dlanding-nav__ghost { + height: 44px; + border: 1px solid rgba(16, 43, 78, 0.14); + border-radius: 14px; + background: #fff; + } + + .dlanding-nav__primary { + height: 44px; + border-radius: 14px; + } + } + + &__backdrop { + display: block; + position: fixed; + inset: 0; + z-index: 1; + margin: 0; + padding: 0; + border: none; + background: rgba(15, 23, 42, 0.35); + cursor: pointer; + opacity: 0; + visibility: hidden; + pointer-events: none; + transition: opacity 0.2s ease, visibility 0.2s ease; + } + + &.is-menu-open { + .dlanding-nav__drawer { + opacity: 1; + visibility: visible; + pointer-events: auto; + transform: translateY(0); + } + + .dlanding-nav__backdrop { + opacity: 1; + visibility: visible; + pointer-events: auto; + } + } + } + + .dlanding-stats { + margin-top: 0; + padding-top: clamp(48px, 6vw, 72px); + padding-bottom: clamp(48px, 6vw, 64px); + + &__title { + font-size: clamp(18px, 2.4vw, 24px); + } + + &__partners { + gap: 18px 28px; + margin-top: 32px; + } + + &__metrics { + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 24px 16px; + row-gap: 28px; + margin-top: 32px; + } + + &__metric-value { + font-size: clamp(28px, 5vw, 36px); + } + } + + .dlanding-why { + padding-top: clamp(40px, 5vw, 56px); + padding-bottom: clamp(48px, 6vw, 64px); + + &__header { + margin-bottom: 28px; + } + + &__grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 14px; + } + + &__card { + padding: 22px 16px 20px; + border-radius: 20px; + } + } + + .dlanding-appcta { + padding-top: clamp(32px, 4vw, 48px); + padding-bottom: clamp(40px, 5vw, 56px); + + &__banner { + flex-direction: column-reverse; + align-items: center; + justify-content: center; + text-align: center; + min-height: 0; + padding: 0 24px 28px; + border-radius: 28px; + gap: 8px; + overflow: visible; + } + + &__content { + max-width: none; + width: 100%; + flex: 0 1 auto; + text-align: center; + } + + &__title { + font-size: clamp(18px, 2.6vw, 24px); + } + + &__text { + font-size: 13px; + margin-inline: auto; + max-width: 36em; + } + + &__btn { + margin-top: 16px; + margin-inline: auto; + height: 42px; + } + + &__visual { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + margin-top: -40px; + margin-bottom: 0; + transform: none; + overflow: visible; + } + + &__phones { + display: block; + width: min(78%, 400px); + max-width: 400px; + height: auto; + margin-inline: auto; + /* asset is right-weighted — shift so phones sit optically centered */ + transform: translateX(-18%); + } + } + + .dlanding-reviews { + display: none; + } + + .dlanding-steps { + padding-top: clamp(40px, 5vw, 56px); + padding-bottom: clamp(48px, 6vw, 64px); + + &__header { + margin-bottom: 32px; + } + + &__list { + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 10px; + + &::before { + top: 32px; + right: 14%; + left: 14%; + } + } + + &__icon-wrap, + &__icon { + width: 64px; + height: 64px; + } + + &__item-text { + max-width: 200px; + font-size: 12.5px; + } + + &__cta { + margin-top: 28px; + } + } + + .dlanding-live { + padding-top: clamp(40px, 5vw, 56px); + padding-bottom: clamp(48px, 6vw, 64px); + + &__layout { + grid-template-columns: 1fr; + gap: 12px; + } + + &__main { + order: -1; + } + + &__price { + font-size: clamp(28px, 5vw, 40px); + } + + &__metrics { + gap: 10px; + } + + &__metric { + padding: 14px; + } + + &__metric-value { + font-size: clamp(18px, 3vw, 22px); + } + } + + .dlanding-sunrad { + padding-top: clamp(40px, 5vw, 56px); + padding-bottom: clamp(48px, 6vw, 64px); + + &__layout { + grid-template-columns: 1fr; + grid-template-rows: auto; + gap: 12px; + } + + &__visual { + grid-column: 1; + grid-row: auto; + min-height: 240px; + order: -1; + border-radius: 18px; + } + + &__cards, + &__note { + grid-column: 1; + grid-row: auto; + } + + &__cards { + gap: 10px; + } + + &__card { + padding: 14px; + } + + &__note { + text-align: start; + } + } + + .dlanding-faq { + padding-top: clamp(40px, 5vw, 56px); + padding-bottom: clamp(48px, 6vw, 64px); + } + + .dlanding-finalcta { + padding-top: clamp(28px, 4vw, 40px); + padding-bottom: clamp(40px, 5vw, 56px); + + &__banner { + padding: 40px 24px; + border-radius: 28px; + } + + &__title { + font-size: clamp(20px, 3vw, 28px); + } + } + + .dlanding-footer { + &__newsletter { + flex-direction: column; + align-items: center; + justify-content: center; + gap: 20px; + padding: 28px 32px; + border-radius: 20px; + text-align: center; + } + + &__newsletter-copy { + flex: 0 1 auto; + width: 100%; + max-width: 520px; + min-width: 0; + text-align: center; + } + + &__newsletter-title { + font-size: 18px; + } + + &__newsletter-text { + font-size: 13px; + } + + &__newsletter-form { + flex: 0 0 auto; + width: min(100%, 420px); + display: flex; + flex-direction: column-reverse; + flex-wrap: nowrap; + align-items: stretch; + gap: 10px; + } + + &__email, + &__subscribe { + display: flex; + width: 100%; + min-width: 0; + max-width: none; + box-sizing: border-box; + flex: 0 0 auto; + align-self: stretch; + } + + &__subscribe { + justify-content: center; + } + + &__body { + display: grid; + grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); + grid-template-areas: + 'brand meta' + 'cols cols'; + gap: 36px 28px; + align-items: start; + } + + &__brand { + grid-area: brand; + } + + &__brand-text { + max-width: none; + } + + &__bottom { + grid-area: meta; + grid-column: auto; + margin-top: 0; + padding-top: 0; + border-top: none; + flex-direction: column; + align-items: flex-end; + justify-content: flex-start; + gap: 12px; + text-align: left; + } + + &__contacts { + display: flex; + flex-direction: column; + align-items: flex-end; + width: auto; + max-width: 100%; + gap: 12px; + } + + &__contact { + flex-direction: row-reverse; + justify-content: flex-start; + width: fit-content; + max-width: 100%; + color: #64748b; + direction: rtl; + + &--phone { + direction: ltr; + flex-direction: row-reverse; + } + + // vertical order: location then phone + &:nth-child(1) { + order: 2; + } + + &:nth-child(2) { + order: 1; + } + } + + &__copy { + order: -1; + width: 100%; + color: #64748b; + font-size: 13px; + text-align: left; + } + + &__cols { + grid-area: cols; + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 24px 20px; + } + + &__col { + display: flex; + flex-direction: column; + + // محصول — راست + &:nth-child(1) { + align-items: flex-start; + text-align: right; + + .dlanding-footer__links { + align-items: flex-start; + } + } + + // شرکت — وسط + &:nth-child(2) { + align-items: center; + text-align: center; + + .dlanding-footer__col-title, + .dlanding-footer__link { + text-align: center; + } + + .dlanding-footer__links { + align-items: center; + } + } + + // قانونی — چپ + &:nth-child(3) { + align-items: flex-end; + text-align: left; + + .dlanding-footer__col-title, + .dlanding-footer__link { + text-align: left; + } + + .dlanding-footer__links { + align-items: flex-end; + } + } + } + + &__col:last-child { + grid-column: auto; + } + } +} + +/* ---- Mid tablet: steps stack ---- */ +@media (max-width: 900px) and (min-width: 768px) { + .dlanding-steps { + &__list { + grid-template-columns: 1fr; + gap: 24px; + + &::before { + display: none; + } + } + + &__item-text { + max-width: 320px; + margin-inline: auto; + } + } + + .dlanding-appcta { + &__phones { + width: min(76%, 380px); + transform: translateX(-18%); + } + } + + .dlanding-footer { + &__newsletter { + padding: 24px 28px; + gap: 18px; + } + + &__newsletter-form { + width: min(100%, 400px); + } + + &__body { + gap: 32px 20px; + } + + &__cols { + gap: 20px 16px; + } + } +} + +/* ---- Mobile ---- */ +@media (max-width: 767.98px) { + .dlanding { + --dlanding-frame-px: clamp(16px, 4.5vw, 20px); + --dlanding-nav-height: 64px; + --dlanding-title-size: clamp(28px, 8vw, 34px); + } + + .dlanding__stage { + min-height: calc(100dvh - (2 * var(--dlanding-frame-size))); + } + + .dlanding__container { + padding-top: 28px; + padding-bottom: 32px; + } + + .dlanding-hero__pattern { + height: min(920px, 145vw); + } + + .dlanding-nav { + height: var(--dlanding-nav-height); + + &__drawer { + gap: 20px; + padding: 8px var(--dlanding-frame-px) 24px; + } + + &__drawer-link { + min-height: 44px; + padding: 10px 12px; + font-size: 14px; + border-radius: 12px; + } + } + + .dlanding-hero { + row-gap: 24px; + + &__content { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + } + + &__badge { + display: inline-flex; + justify-content: center; + max-width: 100%; + white-space: normal; + text-align: center; + line-height: 1.5; + min-height: 0; + padding: 6px 12px; + } + + &__title { + margin-top: 16px; + font-size: var(--dlanding-title-size); + line-height: 1.35; + letter-spacing: -0.02em; + text-align: center; + + br { + display: block; + } + } + + &__text { + max-width: 36em; + margin-inline: auto; + font-size: 14px; + line-height: 1.85; + text-align: center; + } + + &__actions { + flex-direction: column-reverse; + align-items: stretch; + gap: 12px; + width: 100%; + margin-top: 20px; + + .dlanding-hero__primary, + .dlanding-hero__secondary { + width: 100%; + } + } + + &__features { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 12px; + width: 100%; + margin-top: 18px; + } + + .dlanding-feature { + justify-content: center; + } + + .dlanding-trade-card { + max-width: none; + gap: 12px; + width: 100%; + } + + .dlanding-trade-card__tabs { + width: min(56%, 180px); + align-self: center; + margin-left: auto; + margin-right: auto; + } + + .dlanding-price-card, + .dlanding-order-card { + width: 100%; + } + } + + .dlanding-order-card__result-top { + flex-direction: column; + align-items: flex-start; + gap: 4px; + } + + .dlanding-stats { + margin-top: 0; + padding-top: 48px; + padding-bottom: 40px; + + &__title { + font-size: 18px; + padding-inline: 4px; + } + + &__partners { + gap: 14px 16px; + margin-top: 24px; + } + + &__partner-name { + font-size: 12px; + } + + &__divider { + margin-top: 24px; + } + + &__metrics { + grid-template-columns: repeat(2, minmax(0, 1fr)); + margin-top: 28px; + gap: 20px 12px; + row-gap: 24px; + } + + &__metric { + padding: 0; + border-radius: 0; + background: transparent; + box-shadow: none; + text-align: center; + gap: 10px; + } + + &__metric-value { + font-size: 28px; + } + + &__metric-label { + font-size: 12px; + } + } + + .dlanding-why { + padding-top: 40px; + padding-bottom: 48px; + + &__header { + margin-bottom: 20px; + } + + &__title { + font-size: 22px; + } + + &__subtitle { + font-size: 13px; + padding-inline: 4px; + } + + &__grid { + grid-template-columns: 1fr; + gap: 12px; + } + + &__card { + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: auto auto; + align-items: start; + column-gap: 14px; + text-align: start; + min-height: 0; + padding: 16px; + border-radius: 18px; + + &:hover { + transform: none; + } + } + + &__icon { + grid-column: 1; + grid-row: 1 / span 2; + width: 48px; + height: 48px; + margin-bottom: 0; + border-radius: 50%; + flex-shrink: 0; + } + + &__card-title { + grid-column: 2; + grid-row: 1; + font-size: 15px; + } + + &__card-text { + grid-column: 2; + grid-row: 2; + margin-top: 6px; + font-size: 12.5px; + line-height: 1.75; + } + } + + .dlanding-appcta { + padding-top: 32px; + padding-bottom: 40px; + + &__banner { + flex-direction: column-reverse; + align-items: stretch; + gap: 4px; + min-height: 0; + padding: 0 18px 24px; + border-radius: 28px; + overflow: visible; + } + + &__content { + max-width: none; + width: 100%; + text-align: center; + } + + &__title { + font-size: 20px; + } + + &__text { + font-size: 13px; + } + + &__btn { + width: auto; + max-width: 100%; + margin-top: 16px; + margin-inline: auto; + padding-inline: 20px; + border-radius: 9999px; + } + + /* Phones centered in banner */ + &__visual { + display: flex; + justify-content: center; + align-items: center; + width: 100%; + margin-top: -40px; + margin-bottom: -4px; + transform: none; + overflow: visible; + } + + &__phones { + display: block; + width: min(78%, 300px); + max-width: 300px; + height: auto; + margin-inline: auto; + flex-shrink: 0; + /* asset is right-weighted — shift so phones sit optically centered */ + transform: translateX(-20%); + } + } + + .dlanding-steps { + padding-top: 40px; + padding-bottom: 48px; + + &__header { + margin-bottom: 28px; + } + + &__title { + font-size: 22px; + } + + &__subtitle { + font-size: 13px; + padding-inline: 4px; + } + + &__list { + grid-template-columns: 1fr; + gap: 28px; + + &::before { + display: none; + } + } + + &__item { + display: flex; + flex-direction: column; + align-items: center; + text-align: center; + padding: 0; + } + + &__icon-wrap { + width: 72px; + height: 72px; + margin-bottom: 16px; + flex-shrink: 0; + } + + &__icon { + width: 72px; + height: 72px; + } + + &__item-title { + text-align: center; + } + + &__item-text { + max-width: 280px; + margin-inline: auto; + text-align: center; + } + + &__cta { + margin-top: 28px; + width: min(100%, 320px); + gap: 14px; + padding-inline: 28px; + justify-content: space-between; + } + } + + .dlanding-live { + padding-top: 40px; + padding-bottom: 48px; + + &__title { + font-size: 22px; + } + + &__subtitle { + font-size: 13px; + padding-inline: 4px; + } + + &__price { + font-size: 32px; + } + + &__metrics { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + } + + &__metric { + min-height: 92px; + padding: 14px; + border-radius: 14px; + } + + &__metric-value { + font-size: 20px; + } + } + + .dlanding-sunrad { + padding-top: 40px; + padding-bottom: 48px; + + &__title { + font-size: 20px; + padding-inline: 0; + } + + &__subtitle { + font-size: 13px; + padding-inline: 4px; + } + + &__visual { + min-height: 200px; + border-radius: 20px; + overflow: hidden; + } + + &__cards { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 10px; + } + + &__card { + padding: 14px; + border-radius: 16px; + } + + &__card-value { + font-size: 17px; + } + + &__note { + font-size: 12px; + text-align: start; + } + } + + .dlanding-reviews { + display: none; + } + + .dlanding-faq { + padding-top: 40px; + padding-bottom: 48px; + + &__title { + font-size: 22px; + } + + &__subtitle { + font-size: 13px; + padding-inline: 4px; + } + + &__trigger { + padding: 14px 16px; + gap: 12px; + } + + &__panel { + padding: 0 16px 16px; + } + } + + .dlanding-finalcta { + padding-top: 24px; + padding-bottom: 40px; + + &__banner { + padding: 32px 18px; + border-radius: 28px; + } + + &__title { + font-size: 20px; + } + + &__text { + font-size: 13px; + } + + &__actions { + flex-direction: column; + width: 100%; + gap: 10px; + } + + &__primary, + &__secondary { + width: 100%; + height: 48px; + } + + &__glow { + right: -160px; + width: 280px; + height: 280px; + opacity: 0.7; + } + } + + .dlanding-footer { + &__newsletter { + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + margin-top: 0; + gap: 16px; + padding: 22px 16px; + border-radius: 20px; + } + + &__newsletter-copy { + flex: 0 1 auto; + width: 100%; + max-width: none; + text-align: center; + } + + &__newsletter-title { + font-size: 16px; + } + + &__newsletter-text { + font-size: 12.5px; + } + + &__newsletter-form { + flex: 0 0 auto; + width: 100%; + display: flex; + flex-direction: column-reverse; + flex-wrap: nowrap; + align-items: stretch; + gap: 10px; + } + + &__email, + &__subscribe { + display: flex; + width: 100%; + min-width: 0; + max-width: none; + box-sizing: border-box; + flex: 0 0 auto; + align-self: stretch; + } + + &__subscribe { + justify-content: center; + } + + &__body { + display: grid; + grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); + grid-template-areas: + 'brand meta' + 'cols cols'; + gap: 28px 16px; + align-items: start; + text-align: start; + } + + &__brand { + grid-area: brand; + display: flex; + flex-direction: column; + align-items: flex-start; + text-align: start; + } + + &__logo { + margin-inline: 0; + } + + &__brand-text { + max-width: none; + margin-inline: 0; + font-size: 12px; + } + + &__socials { + justify-content: flex-start; + } + + &__bottom { + grid-area: meta; + grid-column: auto; + margin-top: 0; + padding-top: 0; + border-top: none; + flex-direction: column; + align-items: flex-end; + justify-content: flex-start; + gap: 10px; + text-align: left; + } + + &__contacts { + display: flex; + flex-direction: column; + align-items: flex-end; + flex-wrap: nowrap; + width: auto; + max-width: 100%; + gap: 10px; + } + + &__contact { + flex-direction: row-reverse; + justify-content: flex-start; + width: fit-content; + max-width: 100%; + color: #64748b; + font-size: 12px; + direction: rtl; + + &--phone { + direction: ltr; + flex-direction: row-reverse; + } + + &:nth-child(1) { + order: 2; + } + + &:nth-child(2) { + order: 1; + } + } + + &__copy { + order: -1; + width: 100%; + color: #64748b; + font-size: 11.5px; + text-align: left; + } + + &__cols { + grid-area: cols; + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 16px 10px; + align-items: start; + } + + &__col { + display: flex; + flex-direction: column; + + &:nth-child(1) { + align-items: flex-start; + text-align: right; + + .dlanding-footer__links { + align-items: flex-start; + } + } + + &:nth-child(2) { + align-items: center; + text-align: center; + + .dlanding-footer__col-title, + .dlanding-footer__link { + text-align: center; + } + + .dlanding-footer__links { + align-items: center; + } + } + + &:nth-child(3) { + align-items: flex-end; + text-align: left; + + .dlanding-footer__col-title, + .dlanding-footer__link { + text-align: left; + } + + .dlanding-footer__links { + align-items: flex-end; + } + } + } + + &__col-title { + font-size: 13px; + margin-bottom: 12px; + } + + &__link { + font-size: 12px; + } + + &__links { + gap: 10px; + } + } +} + +/* ---- Narrow phones ---- */ +@media (max-width: 419.98px) { + .dlanding-nav { + &__logo { + max-width: 148px; + height: 30px; + } + + &__burger { + width: 40px; + height: 40px; + } + } + + .dlanding-hero__title { + font-size: 26px; + } + + .dlanding-stats__metrics, + .dlanding-live__metrics, + .dlanding-sunrad__cards { + gap: 8px; + } +} diff --git a/src/views/base/aboutUs/index.vue b/src/views/base/aboutUs/index.vue new file mode 100644 index 0000000..8ab20ad --- /dev/null +++ b/src/views/base/aboutUs/index.vue @@ -0,0 +1,42 @@ + + + + + + + diff --git a/src/views/base/home/composables/usePriceChart.ts b/src/views/base/home/composables/usePriceChart.ts new file mode 100644 index 0000000..03e62c5 --- /dev/null +++ b/src/views/base/home/composables/usePriceChart.ts @@ -0,0 +1,206 @@ +import { computed, ref, watch } from 'vue' +import { getAllPrices } from '@/api/home' +import { getProductsCatalog, getProductsCatalogRef } from '@/composables/useProductsCatalog' +import { getTradeBuyPrice, getTradeSellPrice } from '@/utils/price' + +export type ChartMetalType = 'katod' | 'maftol' | 'shamsh' + +type ChartPoint = [number, number] + +/** + * مارک‌آپ ثابت روی قیمت بورس کالا برای نمودار: + * کاتد +۳٪ ، مفتول +۶٪ ، شمش +۱۲٪ + */ +export const CHART_METAL_MARKUP_RATIO: Record = { + katod: 0.03, + maftol: 0.06, + shamsh: 0.12, +} + +/** Module-level chart state — one dataset shared by mobile and desktop PriceChart instances. */ +const priceChartSeries = ref<{ name: string; data: ChartPoint[] }[]>([ + { name: 'قیمت', data: [] }, +]) +const rawChartPoints = ref([]) +const chartSelection = ref('DAILY') +const chartLoading = ref(false) +const selectedChartMetal = ref('katod') +const catalogProducts = getProductsCatalogRef() + +const maftolChartRatio = computed(() => CHART_METAL_MARKUP_RATIO.maftol) +const shamshChartRatio = computed(() => CHART_METAL_MARKUP_RATIO.shamsh) + +const selectedMetalChartRatio = computed( + () => CHART_METAL_MARKUP_RATIO[selectedChartMetal.value], +) + +let chartFetchPromise: Promise | null = null +let chartInitialized = false +let metalOffsetPromise: Promise | null = null +let metalOffsetLoaded = false + +function applyChartRatio(basePrice: number, ratio: number) { + if (!ratio) { + return basePrice + } + + return Math.round(basePrice + basePrice * ratio) +} + +/** بالاترین/پایین‌ترین امروز — همان مارک‌آپ ثابت فلز روی قیمت بورس کالا */ +export function resolveMetalDayRangePrices(options: { + price: { up?: { buy?: number; sell?: number }; buy?: number; sell?: number; price_last?: number } | null | undefined + metal: ChartMetalType + metalRatio: number +}) { + const baseHigh = options.price?.up?.buy ?? getTradeBuyPrice(options.price as Parameters[0]) + const baseLow = options.price?.up?.sell ?? getTradeSellPrice(options.price as Parameters[0]) + const ratio = options.metalRatio || CHART_METAL_MARKUP_RATIO[options.metal] + + return { + high: applyChartRatio(baseHigh, ratio), + low: applyChartRatio(baseLow, ratio), + } +} + +function normalizeChartTimestamp(timestamp: number) { + return timestamp < 1_000_000_000_000 ? timestamp * 1000 : timestamp +} + +function resolvePricesMap(response: unknown): Record> | null { + if (!response || typeof response !== 'object') { + return null + } + + const body = response as Record + const nested = body.data + + if (nested && typeof nested === 'object' && 'prices' in nested) { + return (nested as { prices: Record> }).prices + } + + if ('prices' in body) { + return body.prices as Record> + } + + return null +} + +function buildChartPoints(items: Array<{ timestamp: number; value: number }>): ChartPoint[] { + return items.map((item) => [ + normalizeChartTimestamp(item.timestamp), + item.value - 1, + ]) +} + +function syncChartSeries() { + const ratio = selectedMetalChartRatio.value + priceChartSeries.value[0].data = rawChartPoints.value.map( + ([timestamp, value]) => [timestamp, applyChartRatio(value, ratio)] as ChartPoint, + ) +} + +watch([selectedChartMetal, maftolChartRatio, shamshChartRatio], () => { + syncChartSeries() +}) + +async function fetchPrices(force = false) { + if (!force && chartInitialized && rawChartPoints.value.length > 0) { + syncChartSeries() + return + } + + if (!force && chartFetchPromise) { + return chartFetchPromise + } + + chartFetchPromise = (async () => { + try { + chartLoading.value = true + const response = await getAllPrices() + const data = resolvePricesMap(response) + const selectedData = data?.[chartSelection.value] ?? [] + rawChartPoints.value = buildChartPoints(selectedData) + syncChartSeries() + chartInitialized = true + } catch (error) { + console.error('Error fetching prices:', error) + } finally { + chartLoading.value = false + chartFetchPromise = null + } + })() + + return chartFetchPromise +} + +async function loadMetalChartOffsets(force = false) { + if (!force && metalOffsetLoaded && catalogProducts.value.length > 0) { + return + } + + if (!force && metalOffsetPromise) { + return metalOffsetPromise + } + + metalOffsetPromise = (async () => { + try { + await getProductsCatalog(force) + syncChartSeries() + metalOffsetLoaded = true + } catch (error) { + console.error('Error loading boursecu chart metal ratios:', error) + syncChartSeries() + } finally { + metalOffsetPromise = null + } + })() + + return metalOffsetPromise +} + +function updateChartData(timeline: string) { + chartSelection.value = timeline + void fetchPrices(true) +} + +function setChartMetal(metal: ChartMetalType) { + selectedChartMetal.value = metal + syncChartSeries() +} + +export function usePriceChart() { + return { + priceChartSeries, + chartSelection, + chartLoading, + selectedChartMetal, + maftolChartRatio, + shamshChartRatio, + selectedMetalChartRatio, + updateChartData, + fetchPrices, + loadMaftolOffset: loadMetalChartOffsets, + loadMetalChartOffsets, + setChartMetal, + } +} + +export function fetchHomeChartPrices(force = false) { + return fetchPrices(force) +} + +export function loadHomeMaftolOffset(force = false) { + return loadMetalChartOffsets(force) +} + +export function resetHomePriceChart() { + priceChartSeries.value = [{ name: 'قیمت', data: [] }] + rawChartPoints.value = [] + chartSelection.value = 'DAILY' + selectedChartMetal.value = 'katod' + chartInitialized = false + chartFetchPromise = null + metalOffsetLoaded = false + metalOffsetPromise = null +} diff --git a/src/views/login/desktop/components/DesktopPwaGuideModal.vue b/src/views/login/desktop/components/DesktopPwaGuideModal.vue new file mode 100644 index 0000000..2175dc8 --- /dev/null +++ b/src/views/login/desktop/components/DesktopPwaGuideModal.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/views/login/desktop/styles/desktop-auth.less b/src/views/login/desktop/styles/desktop-auth.less new file mode 100644 index 0000000..32df990 --- /dev/null +++ b/src/views/login/desktop/styles/desktop-auth.less @@ -0,0 +1,499 @@ +/* Premium desktop auth — split-panel SaaS login */ + +.dauth { + min-height: 100vh; + background: #f6f7f9; + display: flex; + align-items: stretch; + color: #111827; +} + +.dauth__layout { + display: grid; + grid-template-columns: minmax(380px, 1fr) minmax(420px, 520px); + width: 100%; + min-height: 100vh; +} + +/* Brand panel — uses config primary color (same as buttons) */ +.dauth-brand { + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + padding: 56px 64px; + background: @App-primary-color; + overflow: hidden; + + &--boursecu { + .dauth-brand__logo { + max-width: 280px; + max-height: 280px; + width: min(100%, 280px); + object-fit: contain; + } + } + + &--soroushgold { + .dauth-brand__logo { + max-width: 220px; + max-height: 220px; + width: min(100%, 220px); + object-fit: contain; + } + } + + &__pattern { + position: absolute; + inset: 0; + opacity: 0.04; + background-image: radial-gradient(circle at 1px 1px, #fff 1px, transparent 0); + background-size: 28px 28px; + pointer-events: none; + } + + &__content { + position: relative; + z-index: 1; + max-width: 420px; + } + + &__logo { + width: auto; + max-width: 220px; + height: auto; + max-height: 72px; + object-fit: contain; + margin-bottom: 32px; + + &--round { + width: 72px; + height: 72px; + border-radius: 16px; + object-fit: cover; + } + } + + &__title { + font-size: 32px; + font-weight: 600; + letter-spacing: -0.03em; + color: #ffffff; + line-height: 1.25; + margin: 0 0 12px; + } + + &__tagline { + font-size: 15px; + font-weight: 400; + color: rgba(255, 255, 255, 0.72); + line-height: 1.7; + margin: 0 0 40px; + } + + &__features { + display: flex; + flex-direction: column; + gap: 16px; + list-style: none; + margin: 0; + padding: 0; + } + + &__feature { + display: flex; + align-items: center; + gap: 12px; + font-size: 13px; + font-weight: 500; + color: rgba(255, 255, 255, 0.85); + } + + &__feature-icon { + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 8px; + background: rgba(255, 255, 255, 0.1); + color: #ffffff; + flex-shrink: 0; + } + + &__footer { + position: absolute; + bottom: 32px; + right: 64px; + left: 64px; + font-size: 11px; + color: rgba(255, 255, 255, 0.4); + } +} + +/* Form panel */ +.dauth-form-panel { + display: flex; + align-items: center; + justify-content: center; + padding: 48px 56px; +} + +.dauth-card { + width: 100%; + max-width: 420px; + background: #ffffff; + border-radius: 16px; + padding: 36px 40px; + box-shadow: + 0 1px 2px rgba(15, 23, 42, 0.04), + 0 8px 24px rgba(15, 23, 42, 0.06); + + &__header { + margin-bottom: 28px; + } + + &__eyebrow { + font-size: 12px; + font-weight: 500; + color: #9ca3af; + margin: 0 0 6px; + } + + &__title { + font-size: 24px; + font-weight: 600; + letter-spacing: -0.02em; + color: #111827; + margin: 0; + line-height: 1.3; + } + + &__subtitle { + font-size: 13px; + color: #6b7280; + margin: 8px 0 0; + line-height: 1.5; + } +} + +/* Method toggle */ +.dauth-toggle { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 4px; + padding: 4px; + background: #f3f4f6; + border-radius: 10px; + margin-bottom: 24px; + + &__btn { + padding: 9px 12px; + border: none; + border-radius: 8px; + background: transparent; + font-size: 13px; + font-weight: 600; + font-family: inherit; + color: #6b7280; + cursor: pointer; + transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; + + &--active { + background: #ffffff; + color: #111827; + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08); + } + + &:hover:not(&--active) { + color: #374151; + } + } +} + +/* Form fields */ +.dauth-form { + display: flex; + flex-direction: column; + width: 100%; + + &.ant-form-vertical :deep(.ant-form-item) { + margin-bottom: 18px; + } + + &.ant-form-vertical :deep(.ant-form-item-label) { + padding-bottom: 6px; + } + + &.ant-form-vertical :deep(.ant-form-item-label > label) { + font-size: 12px; + font-weight: 600; + color: #374151; + height: auto; + } + + :deep(.ant-form-item) { + margin-bottom: 18px; + } + + :deep(.ant-form-item-label > label) { + font-size: 12px; + font-weight: 600; + color: #374151; + } + + :deep(.ant-input), + :deep(.ant-input-affix-wrapper) { + border-radius: 10px; + border-color: #e5e7eb; + padding: 10px 14px; + + &:hover, + &:focus, + &-focused { + border-color: @App-primary-color; + } + } + + :deep(.ant-input-lg) { + padding: 11px 14px; + } + + .dauth-toggle { + flex-shrink: 0; + } + + .dauth-actions, + .dauth-switch { + width: 100%; + } +} + +/* OTP */ +.dauth-otp { + margin-top: 8px; + + :deep(.otp-input) { + width: 52px !important; + height: 52px !important; + border-radius: 10px !important; + border: 1px solid #e5e7eb !important; + font-size: 20px !important; + font-weight: 600 !important; + } +} + +.dauth-phone-edit { + display: flex; + align-items: center; + justify-content: center; + gap: 8px; + margin: 16px 0 20px; + font-size: 13px; + + &__number { + color: #9ca3af; + direction: ltr; + } + + &__btn { + display: inline-flex; + align-items: center; + gap: 4px; + border: none; + background: transparent; + color: #374151; + font-size: 13px; + font-weight: 500; + cursor: pointer; + font-family: inherit; + padding: 4px 8px; + border-radius: 6px; + transition: background 0.15s ease; + + &:hover { + background: #f3f4f6; + } + } +} + +.dauth-resend { + margin-bottom: 20px; + + :deep(.ant-btn) { + border-radius: 10px; + height: 42px; + font-size: 13px; + } +} + +/* Actions */ +.dauth-actions { + display: flex; + flex-direction: column; + gap: 10px; + margin-top: 8px; + width: 100%; + + &__submit { + min-height: 44px; + font-size: 14px; + font-weight: 600; + } + + :deep(.ant-btn), + :deep(button), + :deep(.noname-base-button) { + border-radius: 10px; + min-height: 44px; + height: auto; + font-size: 14px; + font-weight: 600; + } +} + +.dauth-actions-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 10px; +} + +.dauth-switch { + display: flex; + align-items: center; + justify-content: center; + gap: 4px; + margin-top: 20px; + padding-top: 4px; + font-size: 13px; + color: #6b7280; + flex-shrink: 0; + + &__link { + border: none; + background: transparent; + color: @App-primary-color; + font-weight: 600; + font-size: 13px; + cursor: pointer; + font-family: inherit; + padding: 0; + + &:hover { + text-decoration: underline; + } + } +} + +/* Garoosi extras */ +.dauth-garoosi-links { + display: flex; + flex-direction: column; + gap: 8px; + margin-top: 4px; +} + +.dauth-link-btn { + display: flex; + align-items: center; + justify-content: center; + width: 100%; + padding: 10px 16px; + border: 1px solid #e5e7eb; + border-radius: 10px; + background: #ffffff; + font-size: 13px; + font-weight: 600; + color: #374151; + text-decoration: none; + cursor: pointer; + font-family: inherit; + transition: background 0.15s ease, border-color 0.15s ease; + + &:hover { + background: #f9fafb; + border-color: #d1d5db; + color: #111827; + } + + &--primary { + background: @App-primary-color; + border-color: @App-primary-color; + color: #ffffff; + + &:hover { + opacity: 0.92; + color: #ffffff; + } + } +} + +/* PWA guide modal */ +.dauth-pwa-steps { + display: flex; + flex-direction: column; + gap: 20px; + margin: 20px 0 8px; +} + +.dauth-pwa-step { + display: flex; + align-items: center; + gap: 16px; + + &__icon { + flex-shrink: 0; + width: 48px; + height: 48px; + border-radius: 10px; + background: #f0f4ff; + display: flex; + align-items: center; + justify-content: center; + padding: 8px; + + img { + width: 100%; + height: 100%; + object-fit: contain; + } + } + + &__text { + font-size: 13px; + color: #374151; + line-height: 1.6; + margin: 0; + } +} + +@media (max-width: 900px) { + .dauth__layout { + grid-template-columns: minmax(300px, 1fr) minmax(340px, 1fr); + } + + .dauth-brand { + padding: 40px 36px; + + &__footer { + right: 36px; + left: 36px; + } + } + + .dauth-form-panel { + padding: 32px 28px; + } +} + +.login-form--desktop { + :deep(.ant-form-item) { + margin-bottom: 18px; + } + + :deep(.ant-form-item-label > label) { + font-size: 12px; + font-weight: 600; + color: #374151; + } +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..5e52a37 --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1,9 @@ +/// + +declare global { + interface Window { + __APP_CONFIG__?: Record; + } +} + +export {}; diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..3e5b621 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,12 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "exclude": ["src/**/__tests__/*"], + "compilerOptions": { + "composite": true, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..66b5e57 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..409bc84 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,12 @@ +{ + "extends": "@tsconfig/node18/tsconfig.json", + "include": [ + "vite.config.*" + ], + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/uno.config.ts b/uno.config.ts new file mode 100644 index 0000000..734a5e8 --- /dev/null +++ b/uno.config.ts @@ -0,0 +1,36 @@ +import { + defineConfig, presetAttributify, presetIcons, + presetTypography, presetUno, presetWebFonts, + transformerDirectives, transformerVariantGroup +} from 'unocss' + +export default defineConfig({ + shortcuts: [ + ['wallet-dock-width', 'fixed inset-x-0 w-full max-w-[426px] left-0 right-0'], + ['app-dock-add-bar', 'wallet-dock-width !fixed bottom-[var(--app-bottom-chrome-height)] z-[var(--app-z-wallet-add-bar)] h-[var(--app-add-card-height)] flex items-center justify-center gap-1 rounded-t-3xl bg-[#FBFBFC] shadow-[0_1px_26px_11px_rgba(0,0,0,0.1)] cursor-pointer box-border'], + ['wallet-add-card-bar', 'app-dock-add-bar'], + ['wallet-card-slider', 'wallet-dock-width !fixed bottom-[calc(var(--app-bottom-chrome-height)+var(--app-add-card-height)-var(--wallet-card-dock-overlap))] z-[var(--app-z-wallet-dock)] px-3 touch-none flex flex-col justify-end overflow-visible'], + ], + theme: { + colors: { + "primary": 'var(--App-primary-color)', + "secondary": "#ffffff", + "tertiary": 'var(--App-secondary-color)' + } + }, + presets: [ + presetUno(), + presetAttributify(), + //presetIcons(), + //presetTypography(), + /*presetWebFonts({ + fonts: { + // ... + }, + }),*/ + ], + transformers: [ + transformerDirectives(), + transformerVariantGroup(), + ], +}) diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..0fb5838 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,41 @@ +import {fileURLToPath, URL} from 'node:url' + +import {defineConfig} from 'vite' +import vue from '@vitejs/plugin-vue' +import UnoCSS from 'unocss/vite' +import {resolve} from 'path' +import {AntDesignVueResolver} from 'unplugin-vue-components/resolvers' +import Components from 'unplugin-vue-components/vite' + +export default defineConfig({ + base: '/landing/', + plugins: [ + vue(), + UnoCSS({ + configFile: './uno.config.ts', + }), + Components({ + resolvers: [AntDesignVueResolver({importStyle: 'less'})], + }), + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)) + } + }, + server: { + host: true, + port: 3200, + strictPort: true, + }, + css: { + preprocessorOptions: { + less: { + modifyVars: { + hack: `; @import (reference) "${resolve('src/assets/css/var.less')}"`, + }, + javascriptEnabled: true, + }, + }, + }, +}) diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..e06775d --- /dev/null +++ b/yarn.lock @@ -0,0 +1,2481 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.2.1": + version "2.3.0" + resolved "https://mirror2.chabokan.net/npm/@ampproject%2Fremapping/-/remapping-2.3.0.tgz" + integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" + +"@ant-design/colors@^6.0.0": + version "6.0.0" + resolved "https://mirror2.chabokan.net/npm/@ant-design%2Fcolors/-/colors-6.0.0.tgz" + integrity sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ== + dependencies: + "@ctrl/tinycolor" "^3.4.0" + +"@ant-design/icons-svg@^4.2.1": + version "4.5.0" + resolved "https://mirror2.chabokan.net/npm/@ant-design%2Ficons-svg/-/icons-svg-4.5.0.tgz" + integrity sha512-1BTUFyKPTBZ53MuTP8s0k5SFEXL7o3VHEOwLgzaoWKwnBeqIcqUtVshc4SKzhI6uACfqhJqBwBUE9FsWR3uULA== + +"@ant-design/icons-vue@^6.1.0": + version "6.1.0" + resolved "https://mirror2.chabokan.net/npm/@ant-design%2Ficons-vue/-/icons-vue-6.1.0.tgz" + integrity sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-svg" "^4.2.1" + +"@antfu/install-pkg@^1.0.0": + version "1.1.0" + resolved "https://mirror2.chabokan.net/npm/@antfu%2Finstall-pkg/-/install-pkg-1.1.0.tgz" + integrity sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ== + dependencies: + package-manager-detector "^1.3.0" + tinyexec "^1.0.1" + +"@antfu/utils@^0.7.5", "@antfu/utils@^0.7.7": + version "0.7.10" + resolved "https://mirror2.chabokan.net/npm/@antfu%2Futils/-/utils-0.7.10.tgz" + integrity sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww== + +"@antfu/utils@^8.1.0": + version "8.1.1" + resolved "https://mirror2.chabokan.net/npm/@antfu%2Futils/-/utils-8.1.1.tgz" + integrity sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ== + +"@babel/helper-string-parser@^7.29.7": + version "7.29.7" + resolved "https://mirror2.chabokan.net/npm/@babel%2Fhelper-string-parser/-/helper-string-parser-7.29.7.tgz" + integrity sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw== + +"@babel/helper-validator-identifier@^7.29.7": + version "7.29.7" + resolved "https://mirror2.chabokan.net/npm/@babel%2Fhelper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz" + integrity sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg== + +"@babel/parser@^7.15.8", "@babel/parser@^7.29.7": + version "7.29.7" + resolved "https://mirror2.chabokan.net/npm/@babel%2Fparser/-/parser-7.29.7.tgz" + integrity sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg== + dependencies: + "@babel/types" "^7.29.7" + +"@babel/runtime@^7.10.5": + version "7.29.7" + resolved "https://mirror2.chabokan.net/npm/@babel%2Fruntime/-/runtime-7.29.7.tgz" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@babel/types@^7.29.7": + version "7.29.7" + resolved "https://mirror2.chabokan.net/npm/@babel%2Ftypes/-/types-7.29.7.tgz" + integrity sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA== + dependencies: + "@babel/helper-string-parser" "^7.29.7" + "@babel/helper-validator-identifier" "^7.29.7" + +"@ctrl/tinycolor@^3.4.0": + version "3.6.1" + resolved "https://mirror2.chabokan.net/npm/@ctrl%2Ftinycolor/-/tinycolor-3.6.1.tgz" + integrity sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://mirror2.chabokan.net/npm/@esbuild%2Fwin32-x64/-/win32-x64-0.18.20.tgz" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.10.1" + resolved "https://mirror2.chabokan.net/npm/@eslint-community%2Feslint-utils/-/eslint-utils-4.10.1.tgz" + integrity sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.6.1": + version "4.12.2" + resolved "https://mirror2.chabokan.net/npm/@eslint-community%2Fregexpp/-/regexpp-4.12.2.tgz" + integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://mirror2.chabokan.net/npm/@eslint%2Feslintrc/-/eslintrc-2.1.4.tgz" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + 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" + +"@eslint/js@8.57.1": + version "8.57.1" + resolved "https://mirror2.chabokan.net/npm/@eslint%2Fjs/-/js-8.57.1.tgz" + integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== + +"@humanwhocodes/config-array@^0.13.0": + version "0.13.0" + resolved "https://mirror2.chabokan.net/npm/@humanwhocodes%2Fconfig-array/-/config-array-0.13.0.tgz" + integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== + dependencies: + "@humanwhocodes/object-schema" "^2.0.3" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/@humanwhocodes%2Fmodule-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.3": + version "2.0.3" + resolved "https://mirror2.chabokan.net/npm/@humanwhocodes%2Fobject-schema/-/object-schema-2.0.3.tgz" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== + +"@iconify/types@^2.0.0": + version "2.0.0" + resolved "https://mirror2.chabokan.net/npm/@iconify%2Ftypes/-/types-2.0.0.tgz" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@iconify/utils@^2.1.9": + version "2.3.0" + resolved "https://mirror2.chabokan.net/npm/@iconify%2Futils/-/utils-2.3.0.tgz" + integrity sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA== + dependencies: + "@antfu/install-pkg" "^1.0.0" + "@antfu/utils" "^8.1.0" + "@iconify/types" "^2.0.0" + debug "^4.4.0" + globals "^15.14.0" + kolorist "^1.8.0" + local-pkg "^1.0.0" + mlly "^1.7.4" + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://mirror2.chabokan.net/npm/@jridgewell%2Fgen-mapping/-/gen-mapping-0.3.13.tgz" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://mirror2.chabokan.net/npm/@jridgewell%2Fresolve-uri/-/resolve-uri-3.1.2.tgz" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0", "@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://mirror2.chabokan.net/npm/@jridgewell%2Fsourcemap-codec/-/sourcemap-codec-1.5.5.tgz" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== + +"@jridgewell/trace-mapping@^0.3.24": + version "0.3.31" + resolved "https://mirror2.chabokan.net/npm/@jridgewell%2Ftrace-mapping/-/trace-mapping-0.3.31.tgz" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://mirror2.chabokan.net/npm/@nodelib%2Ffs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://mirror2.chabokan.net/npm/@nodelib%2Ffs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://mirror2.chabokan.net/npm/@nodelib%2Ffs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@pkgr/core@^0.3.6": + version "0.3.6" + resolved "https://mirror2.chabokan.net/npm/@pkgr%2Fcore/-/core-0.3.6.tgz" + integrity sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA== + +"@polka/url@^1.0.0-next.24": + version "1.0.0-next.29" + resolved "https://mirror2.chabokan.net/npm/@polka%2Furl/-/url-1.0.0-next.29.tgz" + integrity sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww== + +"@rollup/pluginutils@^5.0.2", "@rollup/pluginutils@^5.0.3": + version "5.4.0" + resolved "https://mirror2.chabokan.net/npm/@rollup%2Fpluginutils/-/pluginutils-5.4.0.tgz" + integrity sha512-MfPp06CjRLfXQ3wY0R8vJDYBy/MvVcc9OulEfR0B8Iv9ko+GCNaRZ+EpJYFl27LhKsZK0o420sYCRHCjfCgeUg== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^4.0.2" + +"@rushstack/eslint-patch@^1.3.2": + version "1.16.1" + resolved "https://mirror2.chabokan.net/npm/@rushstack%2Feslint-patch/-/eslint-patch-1.16.1.tgz" + integrity sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag== + +"@simonwep/pickr@~1.8.0": + version "1.8.2" + resolved "https://mirror2.chabokan.net/npm/@simonwep%2Fpickr/-/pickr-1.8.2.tgz" + integrity sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA== + dependencies: + core-js "^3.15.1" + nanopop "^2.1.0" + +"@tsconfig/node18@^18.2.0": + version "18.2.6" + resolved "https://mirror2.chabokan.net/npm/@tsconfig%2Fnode18/-/node18-18.2.6.tgz" + integrity sha512-eAWQzAjPj18tKnDzmWstz4OyWewLUNBm9tdoN9LayzoboRktYx3Enk1ZXPmThj55L7c4VWYq/Bzq0A51znZfhw== + +"@types/estree@^1.0.0": + version "1.0.9" + resolved "https://mirror2.chabokan.net/npm/@types%2Festree/-/estree-1.0.9.tgz" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== + +"@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://mirror2.chabokan.net/npm/@types%2Fjson-schema/-/json-schema-7.0.15.tgz" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/lodash@^4.17.7": + version "4.17.24" + resolved "https://mirror2.chabokan.net/npm/@types%2Flodash/-/lodash-4.17.24.tgz" + integrity sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ== + +"@types/node@^18.17.0", "@types/node@>= 14": + version "18.19.130" + resolved "https://mirror2.chabokan.net/npm/@types%2Fnode/-/node-18.19.130.tgz" + integrity sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg== + dependencies: + undici-types "~5.26.4" + +"@types/semver@^7.3.12": + version "7.7.1" + resolved "https://mirror2.chabokan.net/npm/@types%2Fsemver/-/semver-7.7.1.tgz" + integrity sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA== + +"@typescript-eslint/eslint-plugin@^5.59.1": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Feslint-plugin/-/eslint-plugin-5.62.0.tgz" + integrity sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag== + dependencies: + "@eslint-community/regexpp" "^4.4.0" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/type-utils" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.0" + natural-compare-lite "^1.4.0" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.59.1": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Fparser/-/parser-5.62.0.tgz" + integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== + dependencies: + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Fscope-manager/-/scope-manager-5.62.0.tgz" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + +"@typescript-eslint/type-utils@5.62.0": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Ftype-utils/-/type-utils-5.62.0.tgz" + integrity sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew== + dependencies: + "@typescript-eslint/typescript-estree" "5.62.0" + "@typescript-eslint/utils" "5.62.0" + debug "^4.3.4" + tsutils "^3.21.0" + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Ftypes/-/types-5.62.0.tgz" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Ftypescript-estree/-/typescript-estree-5.62.0.tgz" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/utils@5.62.0": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Futils/-/utils-5.62.0.tgz" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://mirror2.chabokan.net/npm/@typescript-eslint%2Fvisitor-keys/-/visitor-keys-5.62.0.tgz" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + +"@ungap/structured-clone@^1.2.0": + version "1.3.3" + resolved "https://mirror2.chabokan.net/npm/@ungap%2Fstructured-clone/-/structured-clone-1.3.3.tgz" + integrity sha512-60YRaenCQcVjYEKOcG824+DRGGIQ3VKErcBoAEDJZz5bKIs2ZG+X/H9Nk+Q6EVkwJk5QNApxbrc5QtBSwtrXAg== + +"@unocss/astro@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fastro/-/astro-0.55.7.tgz" + integrity sha512-mw8r14ArxUQBVCCisAJlF/WsZb650iBsduD/lXMk56N/nQ3MMArCcn62kcAxgZSb5tfIOQGQu/tbR8hEcD8y2g== + dependencies: + "@unocss/core" "0.55.7" + "@unocss/reset" "0.55.7" + "@unocss/vite" "0.55.7" + +"@unocss/cli@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fcli/-/cli-0.55.7.tgz" + integrity sha512-ZHX2SR2WQbKfcmgOOHjBLB3V57Ct76Zb76YULzBj2EVX43lX/YDCVG87n6ePDY7rOcjCAthjrFQYCLV5KVLKHg== + dependencies: + "@ampproject/remapping" "^2.2.1" + "@rollup/pluginutils" "^5.0.3" + "@unocss/config" "0.55.7" + "@unocss/core" "0.55.7" + "@unocss/preset-uno" "0.55.7" + cac "^6.7.14" + chokidar "^3.5.3" + colorette "^2.0.20" + consola "^3.2.3" + fast-glob "^3.3.1" + magic-string "^0.30.3" + pathe "^1.1.1" + perfect-debounce "^1.0.0" + +"@unocss/config@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fconfig/-/config-0.55.7.tgz" + integrity sha512-+X6rPScyFEWbkZyCyM+HfoJhJNN+CEl2n2izWkm0kuDj3w9fY9B3f/0dsk+jmx/gJEI5Y797q9zspNMNDib1AA== + dependencies: + "@unocss/core" "0.55.7" + unconfig "^0.3.10" + +"@unocss/core@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fcore/-/core-0.55.7.tgz" + integrity sha512-c+bWe844Xjlwc1EPwHj0+n3LpntJG7ELPbEOOxNIG+CQdcEX0l1G0rkM8+nKstJ9WJmgpf1HdJQLVMF62HXvhw== + +"@unocss/extractor-arbitrary-variants@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fextractor-arbitrary-variants/-/extractor-arbitrary-variants-0.55.7.tgz" + integrity sha512-imK2g/frlo5Ag0uVB+C/Psyo5+9AnqhoRAgYa6gyrQ/TJnrnwf+M3jFngU9evIMHw92vig1DGfPa2ZId901DwQ== + dependencies: + "@unocss/core" "0.55.7" + +"@unocss/inspector@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Finspector/-/inspector-0.55.7.tgz" + integrity sha512-N0mjZozDDyqx8Mh6C/ZlMTlDzGiq22sXY/hPRX55Cf44WZI4W/ZWajqAAp42B+lw2MN0k1FYEMIAwn9n+xgq/g== + dependencies: + gzip-size "^6.0.0" + sirv "^2.0.3" + +"@unocss/postcss@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpostcss/-/postcss-0.55.7.tgz" + integrity sha512-53Z/yv/CNdlTqKZQ9gpYRoLZSuzQ28J0SDrGCdzwjLcvHG/FD7/x1S7yxE7cUp/4sjvLL15HSzkWq8vNy6SkwQ== + dependencies: + "@unocss/config" "0.55.7" + "@unocss/core" "0.55.7" + css-tree "^2.3.1" + fast-glob "^3.3.1" + magic-string "^0.30.3" + postcss "^8.4.28" + +"@unocss/preset-attributify@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-attributify/-/preset-attributify-0.55.7.tgz" + integrity sha512-L1sNw3DyM4mymIm4DBTTTOllk8LmhYlWMgDlaAW2MYWygjqDCsp99wRKT2175Ya5xHYBA6XetMoBryZD23qJYQ== + dependencies: + "@unocss/core" "0.55.7" + +"@unocss/preset-icons@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-icons/-/preset-icons-0.55.7.tgz" + integrity sha512-JXLOHkyEKKAjLTqjAxYfhwln05WXilGg3jctkZWKpMNawPaonrGt3kZT12YMuMmOryxk7UcyKB0dtYc+p3QYvw== + dependencies: + "@iconify/utils" "^2.1.9" + "@unocss/core" "0.55.7" + ofetch "^1.3.3" + +"@unocss/preset-mini@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-mini/-/preset-mini-0.55.7.tgz" + integrity sha512-ZCskE2uprjGkpQezEPM6KPMf84rIZEUNc1p2DxWVHaFUPRV24/JSNsO4PsKrQgNIb2dLQxzPNlMzQJI7ssdBXQ== + dependencies: + "@unocss/core" "0.55.7" + "@unocss/extractor-arbitrary-variants" "0.55.7" + +"@unocss/preset-tagify@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-tagify/-/preset-tagify-0.55.7.tgz" + integrity sha512-aDsuN3a/ZirbCDKpFsue9tc8MHs3l0Rl81n2ZOdIrJoZW4YWyydMVl++cz/HERZW81ZySK8EJKwGBaMJMgsnHA== + dependencies: + "@unocss/core" "0.55.7" + +"@unocss/preset-typography@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-typography/-/preset-typography-0.55.7.tgz" + integrity sha512-hLV4nsgsDIk66pt7Ej4NYUmaGtI2EfGb1h2yl5FmBtdtACrgPq+Skr2Br9Iq+Bj1QFhbsMOWLDdbojFQwBdH6A== + dependencies: + "@unocss/core" "0.55.7" + "@unocss/preset-mini" "0.55.7" + +"@unocss/preset-uno@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-uno/-/preset-uno-0.55.7.tgz" + integrity sha512-z4pCxOv/OU1ARo++cvbijWNW2zy/EVTMqJXa+SEep9b99wFXPQE3gaPvLdURp/e5f1PoxVyPZ6JiBknbClSDuA== + dependencies: + "@unocss/core" "0.55.7" + "@unocss/preset-mini" "0.55.7" + "@unocss/preset-wind" "0.55.7" + +"@unocss/preset-web-fonts@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-web-fonts/-/preset-web-fonts-0.55.7.tgz" + integrity sha512-ygAz0540kdBapErW2BcObWfQT/6g0SpVUPYg92PPiZD57CZAvuNXiYTfFMRXd88QrBL1zIrZ6NrzY0NZ645H+w== + dependencies: + "@unocss/core" "0.55.7" + ofetch "^1.3.3" + +"@unocss/preset-wind@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fpreset-wind/-/preset-wind-0.55.7.tgz" + integrity sha512-vLi0mtYDnvx3uYtBR4fSCR52T59drTUp3XVAAqQTbhvRctnSWm65MWE4G+gqdt2qQ9fM4SVCsxLLaXuJkI2eqw== + dependencies: + "@unocss/core" "0.55.7" + "@unocss/preset-mini" "0.55.7" + +"@unocss/reset@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Freset/-/reset-0.55.7.tgz" + integrity sha512-yvmLhxqUNgf6wue7IvhV/FdrQW9H9LF1Bmmhwwaiz2aV0E74aN4pbuYPZwNq3YafsQvNQ0UdtuXjddY4QMRCPw== + +"@unocss/scope@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fscope/-/scope-0.55.7.tgz" + integrity sha512-r0CaS1aSpcC37ztqOJ3qaWIzM6zwdlX8r0rib2vTvWTckw1J0ocVhjNkWRBM9kRWte006JhecdiZzXNHA40akg== + +"@unocss/transformer-attributify-jsx-babel@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-attributify-jsx-babel/-/transformer-attributify-jsx-babel-0.55.7.tgz" + integrity sha512-xl5K/Zg7tLyI6Oee+xHgvBm0gSEviYdBDwaGC4O6cP9VXTBm6waz9NUU6CmmVYKh4dSeLQ1PKNboMeg2nFuJMw== + dependencies: + "@unocss/core" "0.55.7" + +"@unocss/transformer-attributify-jsx@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-attributify-jsx/-/transformer-attributify-jsx-0.55.7.tgz" + integrity sha512-ZyUBc0wguBhd+nbIlcrSYpmzKtqBi+8BII8SK4lIB/Ol1wBboByPTjBENsQkxRyffp5K9VTuZZ/LamFgPGOWDg== + dependencies: + "@unocss/core" "0.55.7" + +"@unocss/transformer-compile-class@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-compile-class/-/transformer-compile-class-0.55.7.tgz" + integrity sha512-tiYiT9EG4ucSBvMo+9Hv43GY0YvXQjfQCXDhDm3tcJyreMg6BRMO412eir54RBS+JAdNU0DUoITVYu+PkF7hLg== + dependencies: + "@unocss/core" "0.55.7" + +"@unocss/transformer-directives@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-directives/-/transformer-directives-0.55.7.tgz" + integrity sha512-xNmR40FssHWYJSmJv/9TQC2IdTyZPV8U3Iv/PIuke1zndMwMciclghEFiw0wSeRmhoRI7iFZck5EI/Bokyo7CQ== + dependencies: + "@unocss/core" "0.55.7" + css-tree "^2.3.1" + +"@unocss/transformer-variant-group@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Ftransformer-variant-group/-/transformer-variant-group-0.55.7.tgz" + integrity sha512-uLyZ08XXVriUDenZCTGA3xGgMD3B9GVr6mSz002pDlLpQDi8FcMQTOGg8X4ViCGzS3l03S/+r+JY7kJTpMFa9w== + dependencies: + "@unocss/core" "0.55.7" + +"@unocss/vite@0.55.7": + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/@unocss%2Fvite/-/vite-0.55.7.tgz" + integrity sha512-xmdyDnt9Ag4o7DGl22/P6MaB+HSjWOQw9qYYzIefSv3SVUvn3cEhIX/PCWqFp8Kts2HyvAoJLbZmygSf1XdZNQ== + dependencies: + "@ampproject/remapping" "^2.2.1" + "@rollup/pluginutils" "^5.0.3" + "@unocss/config" "0.55.7" + "@unocss/core" "0.55.7" + "@unocss/inspector" "0.55.7" + "@unocss/scope" "0.55.7" + "@unocss/transformer-directives" "0.55.7" + chokidar "^3.5.3" + fast-glob "^3.3.1" + magic-string "^0.30.3" + +"@vitejs/plugin-vue@^4.2.3": + version "4.6.2" + resolved "https://mirror2.chabokan.net/npm/@vitejs%2Fplugin-vue/-/plugin-vue-4.6.2.tgz" + integrity sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw== + +"@volar/language-core@2.4.15": + version "2.4.15" + resolved "https://mirror2.chabokan.net/npm/@volar%2Flanguage-core/-/language-core-2.4.15.tgz" + integrity sha512-3VHw+QZU0ZG9IuQmzT68IyN4hZNd9GchGPhbD9+pa8CVv7rnoOZwo7T8weIbrRmihqy3ATpdfXFnqRrfPVK6CA== + dependencies: + "@volar/source-map" "2.4.15" + +"@volar/source-map@2.4.15": + version "2.4.15" + resolved "https://mirror2.chabokan.net/npm/@volar%2Fsource-map/-/source-map-2.4.15.tgz" + integrity sha512-CPbMWlUN6hVZJYGcU/GSoHu4EnCHiLaXI9n8c9la6RaI9W5JHX+NqG+GSQcB0JdC2FIBLdZJwGsfKyBB71VlTg== + +"@volar/typescript@2.4.15": + version "2.4.15" + resolved "https://mirror2.chabokan.net/npm/@volar%2Ftypescript/-/typescript-2.4.15.tgz" + integrity sha512-2aZ8i0cqPGjXb4BhkMsPYDkkuc2ZQ6yOpqwAuNwUoncELqoy5fRgOQtLR9gB0g902iS0NAkvpIzs27geVyVdPg== + dependencies: + "@volar/language-core" "2.4.15" + path-browserify "^1.0.1" + vscode-uri "^3.0.8" + +"@vue/compiler-core@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-core/-/compiler-core-3.5.40.tgz" + integrity sha512-39E8IgOhTbVDnoJFMKc2DvYnypcZwUqgUhQkccva/0m6FUwtIKSGV7n1hpVmYcFaoRAwf9pBcwnKlCEsN63ZEQ== + dependencies: + "@babel/parser" "^7.29.7" + "@vue/shared" "3.5.40" + entities "^7.0.1" + estree-walker "^2.0.2" + source-map-js "^1.2.1" + +"@vue/compiler-dom@^3.5.0", "@vue/compiler-dom@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-dom/-/compiler-dom-3.5.40.tgz" + integrity sha512-pwkx4vqlqOspFstrcmzwkKLePVMD3PT65imRzLhanU2V1Fj4K13g6OXjanOyzw3aTAuRk84BOmY8f3rEHqPaVA== + dependencies: + "@vue/compiler-core" "3.5.40" + "@vue/shared" "3.5.40" + +"@vue/compiler-sfc@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-sfc/-/compiler-sfc-3.5.40.tgz" + integrity sha512-gIf497P4kpuALcvs5n3AEg1Vdn0pSY4XbjASIfHNYF1/MP3T2Mf2STERTubysBxCRxzJGJYtF/O7vwJrxFB3Vw== + dependencies: + "@babel/parser" "^7.29.7" + "@vue/compiler-core" "3.5.40" + "@vue/compiler-dom" "3.5.40" + "@vue/compiler-ssr" "3.5.40" + "@vue/shared" "3.5.40" + estree-walker "^2.0.2" + magic-string "^0.30.21" + postcss "^8.5.19" + source-map-js "^1.2.1" + +"@vue/compiler-ssr@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-ssr/-/compiler-ssr-3.5.40.tgz" + integrity sha512-rrE5xiXG663+vHCHa3J9p2z5OcBRjXmoqenprJxAFQxg5pSshzeBiCE6pu46axapRJ2Adk0YDA2BRZVjiHXnhg== + dependencies: + "@vue/compiler-dom" "3.5.40" + "@vue/shared" "3.5.40" + +"@vue/compiler-vue2@^2.7.16": + version "2.7.16" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fcompiler-vue2/-/compiler-vue2-2.7.16.tgz" + integrity sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A== + dependencies: + de-indent "^1.0.2" + he "^1.2.0" + +"@vue/devtools-api@^6.6.3", "@vue/devtools-api@^6.6.4": + version "6.6.4" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fdevtools-api/-/devtools-api-6.6.4.tgz" + integrity sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g== + +"@vue/eslint-config-prettier@^8.0.0": + version "8.0.0" + resolved "https://mirror2.chabokan.net/npm/@vue%2Feslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz" + integrity sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg== + dependencies: + eslint-config-prettier "^8.8.0" + eslint-plugin-prettier "^5.0.0" + +"@vue/eslint-config-typescript@^11.0.3": + version "11.0.3" + resolved "https://mirror2.chabokan.net/npm/@vue%2Feslint-config-typescript/-/eslint-config-typescript-11.0.3.tgz" + integrity sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw== + dependencies: + "@typescript-eslint/eslint-plugin" "^5.59.1" + "@typescript-eslint/parser" "^5.59.1" + vue-eslint-parser "^9.1.1" + +"@vue/language-core@2.2.12": + version "2.2.12" + resolved "https://mirror2.chabokan.net/npm/@vue%2Flanguage-core/-/language-core-2.2.12.tgz" + integrity sha512-IsGljWbKGU1MZpBPN+BvPAdr55YPkj2nB/TBNGNC32Vy2qLG25DYu/NBN2vNtZqdRbTRjaoYrahLrToim2NanA== + dependencies: + "@volar/language-core" "2.4.15" + "@vue/compiler-dom" "^3.5.0" + "@vue/compiler-vue2" "^2.7.16" + "@vue/shared" "^3.5.0" + alien-signals "^1.0.3" + minimatch "^9.0.3" + muggle-string "^0.4.1" + path-browserify "^1.0.1" + +"@vue/reactivity@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Freactivity/-/reactivity-3.5.40.tgz" + integrity sha512-B7ot9UlUZOi1zbq61/LvE88ZLTV8IlajTdiZTAEiDQgrnIMIZoPr9kGw0Zw46ObW62O9+H/Be3kMbfb7kYPQZA== + dependencies: + "@vue/shared" "3.5.40" + +"@vue/runtime-core@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fruntime-core/-/runtime-core-3.5.40.tgz" + integrity sha512-KAZLweuZ6uUJPK1PMSQPgBU5gCjgrrfjUhSglmU9NhH+Zjepa8cnwSydPWDWHDwOgY4g3VcZ+PljbiHlURNCbw== + dependencies: + "@vue/reactivity" "3.5.40" + "@vue/shared" "3.5.40" + +"@vue/runtime-dom@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fruntime-dom/-/runtime-dom-3.5.40.tgz" + integrity sha512-ZfrX8ssZQds900L9pr8AuK05ddnMsR4MPMZr8cPN9GoqoPWcXLhjvvbIA2SMv+7a97sJ1vv9pj/zxK0Cq/eEFQ== + dependencies: + "@vue/reactivity" "3.5.40" + "@vue/runtime-core" "3.5.40" + "@vue/shared" "3.5.40" + csstype "^3.2.3" + +"@vue/server-renderer@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fserver-renderer/-/server-renderer-3.5.40.tgz" + integrity sha512-XNJym9WpevhTVt1HuwOrCRJ5Q+9z4BjTMrDtjTrvx74SmUll8spNTw6whWJa9mEkO4PKn5TihI/bm/8ds2QVJw== + dependencies: + "@vue/compiler-ssr" "3.5.40" + "@vue/runtime-dom" "3.5.40" + "@vue/shared" "3.5.40" + +"@vue/shared@^3.5.0", "@vue/shared@3.5.40": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/@vue%2Fshared/-/shared-3.5.40.tgz" + integrity sha512-WxnBtruIqOoV3rA4jeKDWzrYI5h7Cp4+pjwDi8kWGHz+IslhiN+wguLVVhtv2l8VoU02rzDCVfDjgCl1lNpZVg== + +"@vue/tsconfig@^0.4.0": + version "0.4.0" + resolved "https://mirror2.chabokan.net/npm/@vue%2Ftsconfig/-/tsconfig-0.4.0.tgz" + integrity sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg== + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://mirror2.chabokan.net/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.14.0, acorn@^8.16.0, acorn@^8.9.0: + version "8.18.0" + resolved "https://mirror2.chabokan.net/npm/acorn/-/acorn-8.18.0.tgz" + integrity sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ== + +agent-base@6: + version "6.0.2" + resolved "https://mirror2.chabokan.net/npm/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +ajv@^6.12.4: + version "6.15.0" + resolved "https://mirror2.chabokan.net/npm/ajv/-/ajv-6.15.0.tgz" + integrity sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw== + 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" + +alien-signals@^1.0.3: + version "1.0.13" + resolved "https://mirror2.chabokan.net/npm/alien-signals/-/alien-signals-1.0.13.tgz" + integrity sha512-OGj9yyTnJEttvzhTUWuscOvtqxq5vrhF7vL9oS0xJ2mK0ItPYP1/y+vCFebfxoEyAz0++1AIwJ5CMr+Fk3nDmg== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://mirror2.chabokan.net/npm/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://mirror2.chabokan.net/npm/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ant-design-vue@^3.2.20: + version "3.2.20" + resolved "https://mirror2.chabokan.net/npm/ant-design-vue/-/ant-design-vue-3.2.20.tgz" + integrity sha512-YWpMfGaGoRastIXEYfCoJiaRiDHk4chqtYhlKQM5GqPt6NfvrM1Vg2e60yHtjxlZjed91wCMm0rAmyUr7Hwzdg== + dependencies: + "@ant-design/colors" "^6.0.0" + "@ant-design/icons-vue" "^6.1.0" + "@babel/runtime" "^7.10.5" + "@ctrl/tinycolor" "^3.4.0" + "@simonwep/pickr" "~1.8.0" + array-tree-filter "^2.1.0" + async-validator "^4.0.0" + dayjs "^1.10.5" + dom-align "^1.12.1" + dom-scroll-into-view "^2.0.0" + lodash "^4.17.21" + lodash-es "^4.17.15" + resize-observer-polyfill "^1.5.1" + scroll-into-view-if-needed "^2.2.25" + shallow-equal "^1.0.0" + vue-types "^3.0.0" + warning "^4.0.0" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://mirror2.chabokan.net/npm/anymatch/-/anymatch-3.1.3.tgz" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://mirror2.chabokan.net/npm/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-tree-filter@^2.1.0: + version "2.1.0" + resolved "https://mirror2.chabokan.net/npm/array-tree-filter/-/array-tree-filter-2.1.0.tgz" + integrity sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://mirror2.chabokan.net/npm/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +async-validator@^4.0.0: + version "4.2.5" + resolved "https://mirror2.chabokan.net/npm/async-validator/-/async-validator-4.2.5.tgz" + integrity sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://mirror2.chabokan.net/npm/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.2: + version "1.19.0" + resolved "https://mirror2.chabokan.net/npm/axios/-/axios-1.19.0.tgz" + integrity sha512-ht/iuYZXEjFxLH/Hkezgd7m6JKlHHXEUSneaDz8uZe1Gj5QZtCnpyDsckvAiEnT89OEbCLmnte4R4sn7P0EKFw== + dependencies: + follow-redirects "^1.16.0" + form-data "^4.0.6" + https-proxy-agent "^5.0.1" + proxy-from-env "^2.1.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://mirror2.chabokan.net/npm/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +binary-extensions@^2.0.0: + version "2.3.0" + resolved "https://mirror2.chabokan.net/npm/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://mirror2.chabokan.net/npm/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.17" + resolved "https://mirror2.chabokan.net/npm/brace-expansion/-/brace-expansion-1.1.17.tgz" + integrity sha512-w+aeW/mkgM4PyRMOJCgi3fOrTm5Q8QY1OSfn2TO2iuDj3ezIHqejmuxbjfPrqUkgqRew1iqkyAn0tr0ZwHD9+w== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.2: + version "2.1.3" + resolved "https://mirror2.chabokan.net/npm/brace-expansion/-/brace-expansion-2.1.3.tgz" + integrity sha512-DRdx5neNsG/QXbniLFWi2YmC/68oeOOmKz6zOjVk6ZS1ZLXgLIKqVEc6hWsmkjBbgii0SwaBTcJ5XKj5gzY/4A== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://mirror2.chabokan.net/npm/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + +cac@^6.7.14: + version "6.7.14" + resolved "https://mirror2.chabokan.net/npm/cac/-/cac-6.7.14.tgz" + integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ== + +call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://mirror2.chabokan.net/npm/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://mirror2.chabokan.net/npm/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +chalk@^4.0.0: + version "4.1.2" + resolved "https://mirror2.chabokan.net/npm/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chokidar@^3.5.3: + version "3.6.0" + resolved "https://mirror2.chabokan.net/npm/chokidar/-/chokidar-3.6.0.tgz" + integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://mirror2.chabokan.net/npm/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@~1.1.4: + version "1.1.4" + resolved "https://mirror2.chabokan.net/npm/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +colorette@^2.0.20: + version "2.0.20" + resolved "https://mirror2.chabokan.net/npm/colorette/-/colorette-2.0.20.tgz" + integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://mirror2.chabokan.net/npm/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +compute-scroll-into-view@^1.0.20: + version "1.0.20" + resolved "https://mirror2.chabokan.net/npm/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz" + integrity sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://mirror2.chabokan.net/npm/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +confbox@^0.1.8: + version "0.1.8" + resolved "https://mirror2.chabokan.net/npm/confbox/-/confbox-0.1.8.tgz" + integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== + +confbox@^0.2.4: + version "0.2.4" + resolved "https://mirror2.chabokan.net/npm/confbox/-/confbox-0.2.4.tgz" + integrity sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ== + +consola@^3.2.3: + version "3.4.2" + resolved "https://mirror2.chabokan.net/npm/consola/-/consola-3.4.2.tgz" + integrity sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA== + +copy-anything@^3.0.5: + version "3.0.5" + resolved "https://mirror2.chabokan.net/npm/copy-anything/-/copy-anything-3.0.5.tgz" + integrity sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w== + dependencies: + is-what "^4.1.8" + +core-js@^3.15.1: + version "3.49.0" + resolved "https://mirror2.chabokan.net/npm/core-js/-/core-js-3.49.0.tgz" + integrity sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg== + +cross-spawn@^7.0.2: + version "7.0.6" + resolved "https://mirror2.chabokan.net/npm/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://mirror2.chabokan.net/npm/css-tree/-/css-tree-2.3.1.tgz" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://mirror2.chabokan.net/npm/cssesc/-/cssesc-3.0.0.tgz" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +csstype@^3.2.3: + version "3.2.3" + resolved "https://mirror2.chabokan.net/npm/csstype/-/csstype-3.2.3.tgz" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== + +dayjs@^1.10.5: + version "1.11.21" + resolved "https://mirror2.chabokan.net/npm/dayjs/-/dayjs-1.11.21.tgz" + integrity sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA== + +de-indent@^1.0.2: + version "1.0.2" + resolved "https://mirror2.chabokan.net/npm/de-indent/-/de-indent-1.0.2.tgz" + integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== + +debug@^3.2.6: + version "3.2.7" + resolved "https://mirror2.chabokan.net/npm/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.4.0, debug@4: + version "4.4.3" + resolved "https://mirror2.chabokan.net/npm/debug/-/debug-4.4.3.tgz" + integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== + dependencies: + ms "^2.1.3" + +debug@2: + version "2.6.9" + resolved "https://mirror2.chabokan.net/npm/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://mirror2.chabokan.net/npm/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +defu@^6.1.4: + version "6.1.7" + resolved "https://mirror2.chabokan.net/npm/defu/-/defu-6.1.7.tgz" + integrity sha512-7z22QmUWiQ/2d0KkdYmANbRUVABpZ9SNYyH5vx6PZ+nE5bcC0l7uFvEfHlyld/HcGBFTL536ClDt3DEcSlEJAQ== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://mirror2.chabokan.net/npm/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +destr@^2.0.5: + version "2.0.5" + resolved "https://mirror2.chabokan.net/npm/destr/-/destr-2.0.5.tgz" + integrity sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://mirror2.chabokan.net/npm/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://mirror2.chabokan.net/npm/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-align@^1.12.1: + version "1.12.4" + resolved "https://mirror2.chabokan.net/npm/dom-align/-/dom-align-1.12.4.tgz" + integrity sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw== + +dom-scroll-into-view@^2.0.0: + version "2.0.1" + resolved "https://mirror2.chabokan.net/npm/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz" + integrity sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w== + +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + +duplexer@^0.1.2: + version "0.1.2" + resolved "https://mirror2.chabokan.net/npm/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +entities@^7.0.1: + version "7.0.1" + resolved "https://mirror2.chabokan.net/npm/entities/-/entities-7.0.1.tgz" + integrity sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== + +errno@^0.1.1: + version "0.1.8" + resolved "https://mirror2.chabokan.net/npm/errno/-/errno-0.1.8.tgz" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== + dependencies: + prr "~1.0.1" + +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://mirror2.chabokan.net/npm/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.2" + resolved "https://mirror2.chabokan.net/npm/es-object-atoms/-/es-object-atoms-1.1.2.tgz" + integrity sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://mirror2.chabokan.net/npm/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + +esbuild@^0.18.10: + version "0.18.20" + resolved "https://mirror2.chabokan.net/npm/esbuild/-/esbuild-0.18.20.tgz" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://mirror2.chabokan.net/npm/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +eslint-config-prettier@^8.8.0, "eslint-config-prettier@>= 7.0.0 <10.0.0 || >=10.1.0": + version "8.10.2" + resolved "https://mirror2.chabokan.net/npm/eslint-config-prettier/-/eslint-config-prettier-8.10.2.tgz" + integrity sha512-/IGJ6+Dka158JnP5n5YFMOszjDWrXggGz1LaK/guZq9vZTmniaKlHcsscvkAhn9y4U+BU3JuUdYvtAMcv30y4A== + +eslint-plugin-prettier@^5.0.0: + version "5.5.6" + resolved "https://mirror2.chabokan.net/npm/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.6.tgz" + integrity sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ== + dependencies: + prettier-linter-helpers "^1.0.1" + synckit "^0.11.13" + +eslint-plugin-vue@^9.0.0, eslint-plugin-vue@^9.15.1: + version "9.33.0" + resolved "https://mirror2.chabokan.net/npm/eslint-plugin-vue/-/eslint-plugin-vue-9.33.0.tgz" + integrity sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + globals "^13.24.0" + natural-compare "^1.4.0" + nth-check "^2.1.1" + postcss-selector-parser "^6.0.15" + semver "^7.6.3" + vue-eslint-parser "^9.4.3" + xml-name-validator "^4.0.0" + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://mirror2.chabokan.net/npm/eslint-scope/-/eslint-scope-5.1.1.tgz" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.1.1, eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://mirror2.chabokan.net/npm/eslint-scope/-/eslint-scope-7.2.2.tgz" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://mirror2.chabokan.net/npm/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@*, "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0", "eslint@^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", eslint@^8.45.0, "eslint@>= 8.0.0", eslint@>=6.0.0, eslint@>=7.0.0, eslint@>=8.0.0: + version "8.57.1" + resolved "https://mirror2.chabokan.net/npm/eslint/-/eslint-8.57.1.tgz" + integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== + dependencies: + "@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" + +espree@^9.3.1, espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://mirror2.chabokan.net/npm/espree/-/espree-9.6.1.tgz" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esquery@^1.4.0, esquery@^1.4.2: + version "1.7.0" + resolved "https://mirror2.chabokan.net/npm/esquery/-/esquery-1.7.0.tgz" + integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://mirror2.chabokan.net/npm/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://mirror2.chabokan.net/npm/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://mirror2.chabokan.net/npm/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://mirror2.chabokan.net/npm/estree-walker/-/estree-walker-2.0.2.tgz" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://mirror2.chabokan.net/npm/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +exsolve@^1.0.8: + version "1.1.0" + resolved "https://mirror2.chabokan.net/npm/exsolve/-/exsolve-1.1.0.tgz" + integrity sha512-D+42+T12DdIlJM3uepa55qGiL3sYdLBOxIl2ifQCzCHz4c7eiolaHsi3BIqEr7JxBzxv2pYZQX9kw16ziMcEmw== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://mirror2.chabokan.net/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.3.0" + resolved "https://mirror2.chabokan.net/npm/fast-diff/-/fast-diff-1.3.0.tgz" + integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== + +fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: + version "3.3.3" + resolved "https://mirror2.chabokan.net/npm/fast-glob/-/fast-glob-3.3.3.tgz" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== + 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.8" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://mirror2.chabokan.net/npm/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://mirror2.chabokan.net/npm/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.20.1" + resolved "https://mirror2.chabokan.net/npm/fastq/-/fastq-1.20.1.tgz" + integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== + dependencies: + reusify "^1.0.4" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://mirror2.chabokan.net/npm/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +fill-range@^7.1.1: + version "7.1.1" + resolved "https://mirror2.chabokan.net/npm/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://mirror2.chabokan.net/npm/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://mirror2.chabokan.net/npm/flat-cache/-/flat-cache-3.2.0.tgz" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flatted@^3.2.9: + version "3.4.3" + resolved "https://mirror2.chabokan.net/npm/flatted/-/flatted-3.4.3.tgz" + integrity sha512-/zipXxyO6rGvuNGDiULY9MvEGSkb2gaG4GGH4ygMi0ZZzyMHdUZBmntJmx5x1G2VuPytCwGN4xsJP6cw+sK+vQ== + +follow-redirects@^1.16.0: + version "1.16.0" + resolved "https://mirror2.chabokan.net/npm/follow-redirects/-/follow-redirects-1.16.0.tgz" + integrity sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw== + +form-data@^4.0.6: + version "4.0.6" + resolved "https://mirror2.chabokan.net/npm/form-data/-/form-data-4.0.6.tgz" + integrity sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.4" + mime-types "^2.1.35" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://mirror2.chabokan.net/npm/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://mirror2.chabokan.net/npm/function-bind/-/function-bind-1.1.2.tgz" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +get-intrinsic@^1.2.6: + version "1.3.0" + resolved "https://mirror2.chabokan.net/npm/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== + 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" + +get-proto@^1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://mirror2.chabokan.net/npm/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://mirror2.chabokan.net/npm/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@^7.1.3: + version "7.2.3" + resolved "https://mirror2.chabokan.net/npm/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + 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" + +globals@^13.19.0, globals@^13.24.0: + version "13.24.0" + resolved "https://mirror2.chabokan.net/npm/globals/-/globals-13.24.0.tgz" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globals@^15.14.0: + version "15.15.0" + resolved "https://mirror2.chabokan.net/npm/globals/-/globals-15.15.0.tgz" + integrity sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg== + +globby@^11.1.0: + version "11.1.0" + resolved "https://mirror2.chabokan.net/npm/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + 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" + +gopd@^1.2.0: + version "1.2.0" + resolved "https://mirror2.chabokan.net/npm/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + +graceful-fs@^4.1.2: + version "4.2.11" + resolved "https://mirror2.chabokan.net/npm/graceful-fs/-/graceful-fs-4.2.11.tgz" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://mirror2.chabokan.net/npm/graphemer/-/graphemer-1.4.0.tgz" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://mirror2.chabokan.net/npm/gzip-size/-/gzip-size-6.0.0.tgz" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://mirror2.chabokan.net/npm/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://mirror2.chabokan.net/npm/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://mirror2.chabokan.net/npm/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + +hasown@^2.0.2, hasown@^2.0.3, hasown@^2.0.4: + version "2.0.4" + resolved "https://mirror2.chabokan.net/npm/hasown/-/hasown-2.0.4.tgz" + integrity sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A== + dependencies: + function-bind "^1.1.2" + +he@^1.2.0: + version "1.2.0" + resolved "https://mirror2.chabokan.net/npm/he/-/he-1.2.0.tgz" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://mirror2.chabokan.net/npm/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://mirror2.chabokan.net/npm/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://mirror2.chabokan.net/npm/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ignore@^5.2.0: + version "5.3.2" + resolved "https://mirror2.chabokan.net/npm/ignore/-/ignore-5.3.2.tgz" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== + +import-fresh@^3.2.1: + version "3.3.1" + resolved "https://mirror2.chabokan.net/npm/import-fresh/-/import-fresh-3.3.1.tgz" + integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://mirror2.chabokan.net/npm/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://mirror2.chabokan.net/npm/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2: + version "2.0.4" + resolved "https://mirror2.chabokan.net/npm/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://mirror2.chabokan.net/npm/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.16.1: + version "2.16.2" + resolved "https://mirror2.chabokan.net/npm/is-core-module/-/is-core-module-2.16.2.tgz" + integrity sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA== + dependencies: + hasown "^2.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://mirror2.chabokan.net/npm/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://mirror2.chabokan.net/npm/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://mirror2.chabokan.net/npm/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://mirror2.chabokan.net/npm/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-object@3.0.1: + version "3.0.1" + resolved "https://mirror2.chabokan.net/npm/is-plain-object/-/is-plain-object-3.0.1.tgz" + integrity sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g== + +is-what@^4.1.8: + version "4.1.16" + resolved "https://mirror2.chabokan.net/npm/is-what/-/is-what-4.1.16.tgz" + integrity sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://mirror2.chabokan.net/npm/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jiti@^1.21.0: + version "1.21.7" + resolved "https://mirror2.chabokan.net/npm/jiti/-/jiti-1.21.7.tgz" + integrity sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://mirror2.chabokan.net/npm/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^4.1.0: + version "4.3.0" + resolved "https://mirror2.chabokan.net/npm/js-yaml/-/js-yaml-4.3.0.tgz" + integrity sha512-1td788aAnnZ5qs7V2QIRl1owjtYpbKt749Y3xauqQgwIIGF/xXWz1wMTEBx5O3LK3lXLVuqXPdPxj2BoFHaW9Q== + dependencies: + argparse "^2.0.1" + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://mirror2.chabokan.net/npm/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://mirror2.chabokan.net/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +keyv@^4.5.3: + version "4.5.4" + resolved "https://mirror2.chabokan.net/npm/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kolorist@^1.8.0: + version "1.8.0" + resolved "https://mirror2.chabokan.net/npm/kolorist/-/kolorist-1.8.0.tgz" + integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== + +less@*, less@^4.2.0: + version "4.8.1" + resolved "https://mirror2.chabokan.net/npm/less/-/less-4.8.1.tgz" + integrity sha512-jQ3lRIo1aUtiWVYXZ7mk4+V4BjCGswF3IxTLJ+4RUta8ZiHh8lhkig2G8dya2eCcyR1dYUvzuV46EkJN8PSwww== + dependencies: + copy-anything "^3.0.5" + parse-node-version "^1.0.1" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + make-dir "^5.1.0" + mime "^1.4.1" + needle "^3.1.0" + probe-image-size "^7.2.3" + source-map "~0.6.0" + +levn@^0.4.1: + version "0.4.1" + resolved "https://mirror2.chabokan.net/npm/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +local-pkg@^0.4.3: + version "0.4.3" + resolved "https://mirror2.chabokan.net/npm/local-pkg/-/local-pkg-0.4.3.tgz" + integrity sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g== + +local-pkg@^1.0.0: + version "1.2.1" + resolved "https://mirror2.chabokan.net/npm/local-pkg/-/local-pkg-1.2.1.tgz" + integrity sha512-++gUqRDEvcnN6Zhqrr+y/CkVEHhlrR96vZn3nZZPYzMcBUyBtTKzB9NadClFIsIVSsu+3i9tfk/erqy9kAmt7Q== + dependencies: + mlly "^1.7.4" + pkg-types "^2.3.0" + quansync "^0.2.11" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://mirror2.chabokan.net/npm/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash-es@^4.17.15: + version "4.18.1" + resolved "https://mirror2.chabokan.net/npm/lodash-es/-/lodash-es-4.18.1.tgz" + integrity sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://mirror2.chabokan.net/npm/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.21: + version "4.18.1" + resolved "https://mirror2.chabokan.net/npm/lodash/-/lodash-4.18.1.tgz" + integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== + +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://mirror2.chabokan.net/npm/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +magic-string@^0.30.1, magic-string@^0.30.21, magic-string@^0.30.3: + version "0.30.21" + resolved "https://mirror2.chabokan.net/npm/magic-string/-/magic-string-0.30.21.tgz" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== + dependencies: + "@jridgewell/sourcemap-codec" "^1.5.5" + +make-dir@^5.1.0: + version "5.1.0" + resolved "https://mirror2.chabokan.net/npm/make-dir/-/make-dir-5.1.0.tgz" + integrity sha512-IfpFq6UM39dUNiphpA6uDezNx/AvWyhwfICWPR3t1VspkgkMZrL+Rk1RbN1bx+aeNYwOrqGJgEgV3yotk+ZUVw== + +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://mirror2.chabokan.net/npm/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://mirror2.chabokan.net/npm/mdn-data/-/mdn-data-2.0.30.tgz" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://mirror2.chabokan.net/npm/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.8: + version "4.0.8" + resolved "https://mirror2.chabokan.net/npm/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://mirror2.chabokan.net/npm/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.35: + version "2.1.35" + resolved "https://mirror2.chabokan.net/npm/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@^1.4.1: + version "1.6.0" + resolved "https://mirror2.chabokan.net/npm/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.5" + resolved "https://mirror2.chabokan.net/npm/minimatch/-/minimatch-3.1.5.tgz" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.3: + version "9.0.9" + resolved "https://mirror2.chabokan.net/npm/minimatch/-/minimatch-9.0.9.tgz" + integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== + dependencies: + brace-expansion "^2.0.2" + +mlly@^1.7.4: + version "1.8.2" + resolved "https://mirror2.chabokan.net/npm/mlly/-/mlly-1.8.2.tgz" + integrity sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA== + dependencies: + acorn "^8.16.0" + pathe "^2.0.3" + pkg-types "^1.3.1" + ufo "^1.6.3" + +mrmime@^2.0.0: + version "2.0.1" + resolved "https://mirror2.chabokan.net/npm/mrmime/-/mrmime-2.0.1.tgz" + integrity sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ== + +ms@^2.1.1, ms@^2.1.3: + version "2.1.3" + resolved "https://mirror2.chabokan.net/npm/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +ms@2.0.0: + version "2.0.0" + resolved "https://mirror2.chabokan.net/npm/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +muggle-string@^0.4.1: + version "0.4.1" + resolved "https://mirror2.chabokan.net/npm/muggle-string/-/muggle-string-0.4.1.tgz" + integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== + +nanoid@^3.3.16: + version "3.3.16" + resolved "https://mirror2.chabokan.net/npm/nanoid/-/nanoid-3.3.16.tgz" + integrity sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q== + +nanopop@^2.1.0: + version "2.4.2" + resolved "https://mirror2.chabokan.net/npm/nanopop/-/nanopop-2.4.2.tgz" + integrity sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw== + +natural-compare-lite@^1.4.0: + version "1.4.0" + resolved "https://mirror2.chabokan.net/npm/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://mirror2.chabokan.net/npm/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +needle@^2.5.2: + version "2.9.1" + resolved "https://mirror2.chabokan.net/npm/needle/-/needle-2.9.1.tgz" + integrity sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +needle@^3.1.0: + version "3.5.0" + resolved "https://mirror2.chabokan.net/npm/needle/-/needle-3.5.0.tgz" + integrity sha512-jaQyPKKk2YokHrEg+vFDYxXIHTCBgiZwSHOoVx/8V3GIBS8/VN6NdVRmg8q1ERtPkMvmOvebsgga4sAj5hls/w== + dependencies: + iconv-lite "^0.6.3" + sax "^1.2.4" + +node-fetch-native@^1.6.7: + version "1.6.7" + resolved "https://mirror2.chabokan.net/npm/node-fetch-native/-/node-fetch-native-1.6.7.tgz" + integrity sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://mirror2.chabokan.net/npm/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +nth-check@^2.1.1: + version "2.1.1" + resolved "https://mirror2.chabokan.net/npm/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +ofetch@^1.3.3: + version "1.5.1" + resolved "https://mirror2.chabokan.net/npm/ofetch/-/ofetch-1.5.1.tgz" + integrity sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA== + dependencies: + destr "^2.0.5" + node-fetch-native "^1.6.7" + ufo "^1.6.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://mirror2.chabokan.net/npm/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optionator@^0.9.3: + version "0.9.4" + resolved "https://mirror2.chabokan.net/npm/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + 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" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://mirror2.chabokan.net/npm/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://mirror2.chabokan.net/npm/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +package-manager-detector@^1.3.0: + version "1.8.0" + resolved "https://mirror2.chabokan.net/npm/package-manager-detector/-/package-manager-detector-1.8.0.tgz" + integrity sha512-yQA4H19AmPEoMUeavPMDIe1higySl/gH/yaQrkT/s07Qp+7pp2hYz30N3z2l5BkjVkF9Ow6o0wjJamm2y7Sn0A== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-node-version@^1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/parse-node-version/-/parse-node-version-1.0.1.tgz" + integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== + +path-browserify@^1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/path-browserify/-/path-browserify-1.0.1.tgz" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://mirror2.chabokan.net/npm/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://mirror2.chabokan.net/npm/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://mirror2.chabokan.net/npm/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://mirror2.chabokan.net/npm/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pathe@^1.1.1: + version "1.1.2" + resolved "https://mirror2.chabokan.net/npm/pathe/-/pathe-1.1.2.tgz" + integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== + +pathe@^2.0.1, pathe@^2.0.3: + version "2.0.3" + resolved "https://mirror2.chabokan.net/npm/pathe/-/pathe-2.0.3.tgz" + integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== + +perfect-debounce@^1.0.0: + version "1.0.0" + resolved "https://mirror2.chabokan.net/npm/perfect-debounce/-/perfect-debounce-1.0.0.tgz" + integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA== + +picocolors@^1.1.1: + version "1.1.1" + resolved "https://mirror2.chabokan.net/npm/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.2" + resolved "https://mirror2.chabokan.net/npm/picomatch/-/picomatch-2.3.2.tgz" + integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== + +picomatch@^4.0.2: + version "4.0.5" + resolved "https://mirror2.chabokan.net/npm/picomatch/-/picomatch-4.0.5.tgz" + integrity sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A== + +pinia@^2.1.4: + version "2.3.1" + resolved "https://mirror2.chabokan.net/npm/pinia/-/pinia-2.3.1.tgz" + integrity sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug== + dependencies: + "@vue/devtools-api" "^6.6.3" + vue-demi "^0.14.10" + +pkg-types@^1.3.1: + version "1.3.1" + resolved "https://mirror2.chabokan.net/npm/pkg-types/-/pkg-types-1.3.1.tgz" + integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== + dependencies: + confbox "^0.1.8" + mlly "^1.7.4" + pathe "^2.0.1" + +pkg-types@^2.3.0: + version "2.3.1" + resolved "https://mirror2.chabokan.net/npm/pkg-types/-/pkg-types-2.3.1.tgz" + integrity sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg== + dependencies: + confbox "^0.2.4" + exsolve "^1.0.8" + pathe "^2.0.3" + +postcss-selector-parser@^6.0.15: + version "6.1.4" + resolved "https://mirror2.chabokan.net/npm/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz" + integrity sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss@^8.4.27, postcss@^8.4.28, postcss@^8.5.19: + version "8.5.25" + resolved "https://mirror2.chabokan.net/npm/postcss/-/postcss-8.5.25.tgz" + integrity sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw== + dependencies: + nanoid "^3.3.16" + picocolors "^1.1.1" + source-map-js "^1.2.1" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://mirror2.chabokan.net/npm/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-linter-helpers@^1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz" + integrity sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg== + dependencies: + fast-diff "^1.1.2" + +prettier@^3.0.0, "prettier@>= 3.0.0", prettier@>=3.0.0: + version "3.9.6" + resolved "https://mirror2.chabokan.net/npm/prettier/-/prettier-3.9.6.tgz" + integrity sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g== + +probe-image-size@^7.2.3: + version "7.3.0" + resolved "https://mirror2.chabokan.net/npm/probe-image-size/-/probe-image-size-7.3.0.tgz" + integrity sha512-7CaDeBwiAbh6ohXsvLbAZhO7wzsZAmaevfxe39qvCwRh8LyaZfDlBGGLU1CCTgrTLtCOdwBBhjOrIHaIIimHfQ== + dependencies: + lodash.merge "^4.6.2" + needle "^2.5.2" + stream-parser "~0.3.1" + +proxy-from-env@^2.1.0: + version "2.1.0" + resolved "https://mirror2.chabokan.net/npm/proxy-from-env/-/proxy-from-env-2.1.0.tgz" + integrity sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA== + +prr@~1.0.1: + version "1.0.1" + resolved "https://mirror2.chabokan.net/npm/prr/-/prr-1.0.1.tgz" + integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== + +punycode@^2.1.0: + version "2.3.1" + resolved "https://mirror2.chabokan.net/npm/punycode/-/punycode-2.3.1.tgz" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +quansync@^0.2.11: + version "0.2.11" + resolved "https://mirror2.chabokan.net/npm/quansync/-/quansync-0.2.11.tgz" + integrity sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://mirror2.chabokan.net/npm/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://mirror2.chabokan.net/npm/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +resize-observer-polyfill@^1.5.1: + version "1.5.1" + resolved "https://mirror2.chabokan.net/npm/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" + integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://mirror2.chabokan.net/npm/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.22.2: + version "1.22.12" + resolved "https://mirror2.chabokan.net/npm/resolve/-/resolve-1.22.12.tgz" + integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== + dependencies: + es-errors "^1.3.0" + is-core-module "^2.16.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.1.0" + resolved "https://mirror2.chabokan.net/npm/reusify/-/reusify-1.1.0.tgz" + integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://mirror2.chabokan.net/npm/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup@^1.20.0||^2.0.0||^3.0.0||^4.0.0, rollup@^3.27.1: + version "3.30.0" + resolved "https://mirror2.chabokan.net/npm/rollup/-/rollup-3.30.0.tgz" + integrity sha512-kQvGasUgN+AlWGliFn2POSajRQEsULVYFGTvOZmK06d7vCD+YhZztt70kGk3qaeAXeWYL5eO7zx+rAubBc55eA== + optionalDependencies: + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://mirror2.chabokan.net/npm/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://mirror2.chabokan.net/npm/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4: + version "1.6.1" + resolved "https://mirror2.chabokan.net/npm/sax/-/sax-1.6.1.tgz" + integrity sha512-42tBVwLWnaQvW5zc4HbZrTuWccECCZfBi92FDuwtqxasH+JbPB3/FOKb1m222K42R4WxuxzzMsTswfzgtSu64Q== + +scroll-into-view-if-needed@^2.2.25: + version "2.2.31" + resolved "https://mirror2.chabokan.net/npm/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz" + integrity sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA== + dependencies: + compute-scroll-into-view "^1.0.20" + +semver@^7.3.6, semver@^7.3.7, semver@^7.6.3: + version "7.8.5" + resolved "https://mirror2.chabokan.net/npm/semver/-/semver-7.8.5.tgz" + integrity sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA== + +shallow-equal@^1.0.0: + version "1.2.1" + resolved "https://mirror2.chabokan.net/npm/shallow-equal/-/shallow-equal-1.2.1.tgz" + integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://mirror2.chabokan.net/npm/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://mirror2.chabokan.net/npm/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +sirv@^2.0.3: + version "2.0.4" + resolved "https://mirror2.chabokan.net/npm/sirv/-/sirv-2.0.4.tgz" + integrity sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ== + dependencies: + "@polka/url" "^1.0.0-next.24" + mrmime "^2.0.0" + totalist "^3.0.0" + +slash@^3.0.0: + version "3.0.0" + resolved "https://mirror2.chabokan.net/npm/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +source-map-js@^1.0.1, source-map-js@^1.2.1: + version "1.2.1" + resolved "https://mirror2.chabokan.net/npm/source-map-js/-/source-map-js-1.2.1.tgz" + integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== + +source-map@~0.6.0: + version "0.6.1" + resolved "https://mirror2.chabokan.net/npm/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +stream-parser@~0.3.1: + version "0.3.1" + resolved "https://mirror2.chabokan.net/npm/stream-parser/-/stream-parser-0.3.1.tgz" + integrity sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ== + dependencies: + debug "2" + +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://mirror2.chabokan.net/npm/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://mirror2.chabokan.net/npm/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://mirror2.chabokan.net/npm/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://mirror2.chabokan.net/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +synckit@^0.11.13: + version "0.11.13" + resolved "https://mirror2.chabokan.net/npm/synckit/-/synckit-0.11.13.tgz" + integrity sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg== + dependencies: + "@pkgr/core" "^0.3.6" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://mirror2.chabokan.net/npm/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +tinyexec@^1.0.1: + version "1.2.4" + resolved "https://mirror2.chabokan.net/npm/tinyexec/-/tinyexec-1.2.4.tgz" + integrity sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://mirror2.chabokan.net/npm/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +totalist@^3.0.0: + version "3.0.1" + resolved "https://mirror2.chabokan.net/npm/totalist/-/totalist-3.0.1.tgz" + integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== + +tslib@^1.8.1: + version "1.14.1" + resolved "https://mirror2.chabokan.net/npm/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://mirror2.chabokan.net/npm/tsutils/-/tsutils-3.21.0.tgz" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://mirror2.chabokan.net/npm/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://mirror2.chabokan.net/npm/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +typescript@*, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=4.4.4, typescript@>=5.0.0, typescript@~5.1.6: + version "5.1.6" + resolved "https://mirror2.chabokan.net/npm/typescript/-/typescript-5.1.6.tgz" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== + +ufo@^1.6.1, ufo@^1.6.3: + version "1.6.4" + resolved "https://mirror2.chabokan.net/npm/ufo/-/ufo-1.6.4.tgz" + integrity sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA== + +unconfig@^0.3.10: + version "0.3.13" + resolved "https://mirror2.chabokan.net/npm/unconfig/-/unconfig-0.3.13.tgz" + integrity sha512-N9Ph5NC4+sqtcOjPfHrRcHekBCadCXWTBzp2VYYbySOHW0PfD9XLCeXshTXjkPYwLrBr9AtSeU0CZmkYECJhng== + dependencies: + "@antfu/utils" "^0.7.7" + defu "^6.1.4" + jiti "^1.21.0" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://mirror2.chabokan.net/npm/undici-types/-/undici-types-5.26.5.tgz" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unocss@^0.55.1: + version "0.55.7" + resolved "https://mirror2.chabokan.net/npm/unocss/-/unocss-0.55.7.tgz" + integrity sha512-3W9P7vj2EhSk/4oPCHBS0VgrwSf5zZL6Az1/XARVOpBnRJtCM2szFInYxHkMgt9pkZTsW8SFCuk/g+QIJ6A8tg== + dependencies: + "@unocss/astro" "0.55.7" + "@unocss/cli" "0.55.7" + "@unocss/core" "0.55.7" + "@unocss/extractor-arbitrary-variants" "0.55.7" + "@unocss/postcss" "0.55.7" + "@unocss/preset-attributify" "0.55.7" + "@unocss/preset-icons" "0.55.7" + "@unocss/preset-mini" "0.55.7" + "@unocss/preset-tagify" "0.55.7" + "@unocss/preset-typography" "0.55.7" + "@unocss/preset-uno" "0.55.7" + "@unocss/preset-web-fonts" "0.55.7" + "@unocss/preset-wind" "0.55.7" + "@unocss/reset" "0.55.7" + "@unocss/transformer-attributify-jsx" "0.55.7" + "@unocss/transformer-attributify-jsx-babel" "0.55.7" + "@unocss/transformer-compile-class" "0.55.7" + "@unocss/transformer-directives" "0.55.7" + "@unocss/transformer-variant-group" "0.55.7" + "@unocss/vite" "0.55.7" + +unplugin-vue-components@^0.25.1: + version "0.25.2" + resolved "https://mirror2.chabokan.net/npm/unplugin-vue-components/-/unplugin-vue-components-0.25.2.tgz" + integrity sha512-OVmLFqILH6w+eM8fyt/d/eoJT9A6WO51NZLf1vC5c1FZ4rmq2bbGxTy8WP2Jm7xwFdukaIdv819+UI7RClPyCA== + dependencies: + "@antfu/utils" "^0.7.5" + "@rollup/pluginutils" "^5.0.2" + chokidar "^3.5.3" + debug "^4.3.4" + fast-glob "^3.3.0" + local-pkg "^0.4.3" + magic-string "^0.30.1" + minimatch "^9.0.3" + resolve "^1.22.2" + unplugin "^1.4.0" + +unplugin@^1.4.0: + version "1.16.1" + resolved "https://mirror2.chabokan.net/npm/unplugin/-/unplugin-1.16.1.tgz" + integrity sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w== + dependencies: + acorn "^8.14.0" + webpack-virtual-modules "^0.6.2" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://mirror2.chabokan.net/npm/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://mirror2.chabokan.net/npm/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +"vite@^2.9.0 || ^3.0.0-0 || ^4.0.0", "vite@^4.0.0 || ^5.0.0", vite@^4.4.6: + version "4.5.14" + resolved "https://mirror2.chabokan.net/npm/vite/-/vite-4.5.14.tgz" + integrity sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + +vscode-uri@^3.0.8: + version "3.1.0" + resolved "https://mirror2.chabokan.net/npm/vscode-uri/-/vscode-uri-3.1.0.tgz" + integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== + +vue-demi@^0.14.10: + version "0.14.10" + resolved "https://mirror2.chabokan.net/npm/vue-demi/-/vue-demi-0.14.10.tgz" + integrity sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg== + +vue-eslint-parser@^9.1.1, vue-eslint-parser@^9.4.3: + version "9.4.3" + resolved "https://mirror2.chabokan.net/npm/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz" + integrity sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg== + dependencies: + debug "^4.3.4" + eslint-scope "^7.1.1" + eslint-visitor-keys "^3.3.0" + espree "^9.3.1" + esquery "^1.4.0" + lodash "^4.17.21" + semver "^7.3.6" + +vue-router@^4.2.4: + version "4.6.4" + resolved "https://mirror2.chabokan.net/npm/vue-router/-/vue-router-4.6.4.tgz" + integrity sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg== + dependencies: + "@vue/devtools-api" "^6.6.4" + +vue-tsc@^2.1.10: + version "2.2.12" + resolved "https://mirror2.chabokan.net/npm/vue-tsc/-/vue-tsc-2.2.12.tgz" + integrity sha512-P7OP77b2h/Pmk+lZdJ0YWs+5tJ6J2+uOQPo7tlBnY44QqQSPYvS0qVT4wqDJgwrZaLe47etJLLQRFia71GYITw== + dependencies: + "@volar/typescript" "2.4.15" + "@vue/language-core" "2.2.12" + +vue-types@^3.0.0: + version "3.0.2" + resolved "https://mirror2.chabokan.net/npm/vue-types/-/vue-types-3.0.2.tgz" + integrity sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw== + dependencies: + is-plain-object "3.0.1" + +"vue@^2.7.0 || ^3.5.11", vue@^3.0.0, "vue@^3.0.0-0 || ^2.6.0", vue@^3.2.25, vue@^3.3.4, vue@^3.5.0, vue@>=3.0.3, vue@>=3.2.0, "vue@2 || 3": + version "3.5.40" + resolved "https://mirror2.chabokan.net/npm/vue/-/vue-3.5.40.tgz" + integrity sha512-+8PJ4SJXdn/cHGImF4CKdxlWHIN5Dkt7DoufRREM6h6uVCx2m7QxgcEQmmzyOK8A9mcafg7sFbJFYsdFVubTig== + dependencies: + "@vue/compiler-dom" "3.5.40" + "@vue/compiler-sfc" "3.5.40" + "@vue/runtime-dom" "3.5.40" + "@vue/server-renderer" "3.5.40" + "@vue/shared" "3.5.40" + +warning@^4.0.0: + version "4.0.3" + resolved "https://mirror2.chabokan.net/npm/warning/-/warning-4.0.3.tgz" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +webpack-virtual-modules@^0.6.2: + version "0.6.2" + resolved "https://mirror2.chabokan.net/npm/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz" + integrity sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ== + +which@^2.0.1: + version "2.0.2" + resolved "https://mirror2.chabokan.net/npm/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://mirror2.chabokan.net/npm/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + +wrappy@1: + version "1.0.2" + resolved "https://mirror2.chabokan.net/npm/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://mirror2.chabokan.net/npm/xml-name-validator/-/xml-name-validator-4.0.0.tgz" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://mirror2.chabokan.net/npm/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==