commit 7fa984a1223df34a5d61e1a52bb3aeba9129b90b
Author: 没复习 <2353956224@qq.com>
Date: Tue Jul 1 21:14:03 2025 +0800
初始化仓库
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..403adbc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,23 @@
+.DS_Store
+node_modules
+/dist
+
+
+# local env files
+.env.local
+.env.*.local
+
+# Log files
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+
+# Editor directories and files
+.idea
+.vscode
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..279fe22
--- /dev/null
+++ b/README.md
@@ -0,0 +1,26 @@
+# Rainfo Vue Template
+
+## Description
+Setup Procedure
+## Project setup
+```
+yarn install
+```
+
+### Compiles and hot-reloads for development
+```
+yarn run serve
+```
+
+### Compiles and minifies for production
+```
+yarn run build
+```
+
+### Lints and fixes files
+```
+yarn run lint
+```
+
+### Customize configuration (vue-cli)
+See [Configuration Reference](https://cli.vuejs.org/config/).
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..c1a8558
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,19078 @@
+{
+ "name": "rainfo",
+ "version": "1.1.1",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "rainfo",
+ "version": "1.1.1",
+ "dependencies": {
+ "@mdi/font": "^5.6.55",
+ "core-js": "^3.6.5",
+ "element-ui": "^2.15.14",
+ "feather-icons": "^4.28.0",
+ "hooper": "^0.3.4",
+ "vee-validate": "^3.4.5",
+ "vue": "^2.6.11",
+ "vue-masonry-wall": "^0.3.2",
+ "vue-router": "^3.4.5",
+ "vue-scrollactive": "^0.9.3",
+ "vue-slick-carousel": "^1.0.6",
+ "vuetify": "^2.2.11"
+ },
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "^4.5.0",
+ "@vue/cli-plugin-eslint": "^4.5.0",
+ "@vue/cli-service": "^4.5.0",
+ "babel-eslint": "^10.1.0",
+ "eslint": "^6.7.2",
+ "eslint-plugin-vue": "^6.2.2",
+ "sass": "^1.19.0",
+ "sass-loader": "^8.0.0",
+ "vue-cli-plugin-vuetify": "^2.0.9",
+ "vue-template-compiler": "^2.6.11",
+ "vuetify-loader": "^1.3.0"
+ }
+ },
+ "node_modules/@achrinza/node-ipc": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz",
+ "integrity": "sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@node-ipc/js-queue": "2.0.3",
+ "event-pubsub": "4.3.0",
+ "js-message": "1.0.7"
+ },
+ "engines": {
+ "node": "8 || 10 || 12 || 14 || 16 || 17"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.26.8",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz",
+ "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz",
+ "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.10",
+ "@babel/helper-compilation-targets": "^7.26.5",
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helpers": "^7.26.10",
+ "@babel/parser": "^7.26.10",
+ "@babel/template": "^7.26.9",
+ "@babel/traverse": "^7.26.10",
+ "@babel/types": "^7.26.10",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz",
+ "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.27.0",
+ "@babel/types": "^7.27.0",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz",
+ "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz",
+ "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.26.8",
+ "@babel/helper-validator-option": "^7.25.9",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz",
+ "integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.26.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/traverse": "^7.27.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-create-regexp-features-plugin": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz",
+ "integrity": "sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "regexpu-core": "^6.2.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz",
+ "integrity": "sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.22.6",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
+ "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
+ "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz",
+ "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
+ "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-remap-async-to-generator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz",
+ "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-wrap-function": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz",
+ "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+ "@babel/traverse": "^7.26.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
+ "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
+ "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-wrap-function": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz",
+ "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
+ "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.27.0",
+ "@babel/types": "^7.27.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
+ "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.27.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz",
+ "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz",
+ "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz",
+ "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz",
+ "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/plugin-transform-optional-chaining": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.13.0"
+ }
+ },
+ "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz",
+ "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-class-properties": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
+ "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
+ "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-decorators": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz",
+ "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/plugin-syntax-decorators": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-private-property-in-object": {
+ "version": "7.21.0-placeholder-for-preset-env.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz",
+ "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-decorators": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz",
+ "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-dynamic-import": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz",
+ "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
+ "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
+ "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-unicode-sets-regex": {
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz",
+ "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.6"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-arrow-functions": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz",
+ "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-generator-functions": {
+ "version": "7.26.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz",
+ "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "@babel/helper-remap-async-to-generator": "^7.25.9",
+ "@babel/traverse": "^7.26.8"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-async-to-generator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz",
+ "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-remap-async-to-generator": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoped-functions": {
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz",
+ "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-block-scoping": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz",
+ "integrity": "sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-properties": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz",
+ "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-class-static-block": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz",
+ "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.12.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-classes": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz",
+ "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-computed-properties": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz",
+ "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/template": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-destructuring": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz",
+ "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dotall-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz",
+ "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-keys": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz",
+ "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz",
+ "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-dynamic-import": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz",
+ "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-exponentiation-operator": {
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz",
+ "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-export-namespace-from": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz",
+ "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-for-of": {
+ "version": "7.26.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz",
+ "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-function-name": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz",
+ "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-json-strings": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz",
+ "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-literals": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz",
+ "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-logical-assignment-operators": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz",
+ "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-member-expression-literals": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz",
+ "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-amd": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz",
+ "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-commonjs": {
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
+ "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-systemjs": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz",
+ "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-modules-umd": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz",
+ "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz",
+ "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-new-target": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz",
+ "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
+ "version": "7.26.6",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz",
+ "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-numeric-separator": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz",
+ "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-rest-spread": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz",
+ "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/plugin-transform-parameters": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-object-super": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz",
+ "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-catch-binding": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz",
+ "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-optional-chaining": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz",
+ "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-parameters": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz",
+ "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-methods": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz",
+ "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-private-property-in-object": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz",
+ "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-property-literals": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz",
+ "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regenerator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz",
+ "integrity": "sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "regenerator-transform": "^0.15.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-regexp-modifiers": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz",
+ "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-reserved-words": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz",
+ "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz",
+ "integrity": "sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.11.0",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-shorthand-properties": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz",
+ "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-spread": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz",
+ "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-sticky-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz",
+ "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-template-literals": {
+ "version": "7.26.8",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz",
+ "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typeof-symbol": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz",
+ "integrity": "sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.26.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-escapes": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz",
+ "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-property-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz",
+ "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz",
+ "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-unicode-sets-regex": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz",
+ "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/preset-env": {
+ "version": "7.26.9",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz",
+ "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.26.8",
+ "@babel/helper-compilation-targets": "^7.26.5",
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "@babel/helper-validator-option": "^7.25.9",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9",
+ "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
+ "@babel/plugin-syntax-import-assertions": "^7.26.0",
+ "@babel/plugin-syntax-import-attributes": "^7.26.0",
+ "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
+ "@babel/plugin-transform-arrow-functions": "^7.25.9",
+ "@babel/plugin-transform-async-generator-functions": "^7.26.8",
+ "@babel/plugin-transform-async-to-generator": "^7.25.9",
+ "@babel/plugin-transform-block-scoped-functions": "^7.26.5",
+ "@babel/plugin-transform-block-scoping": "^7.25.9",
+ "@babel/plugin-transform-class-properties": "^7.25.9",
+ "@babel/plugin-transform-class-static-block": "^7.26.0",
+ "@babel/plugin-transform-classes": "^7.25.9",
+ "@babel/plugin-transform-computed-properties": "^7.25.9",
+ "@babel/plugin-transform-destructuring": "^7.25.9",
+ "@babel/plugin-transform-dotall-regex": "^7.25.9",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.9",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9",
+ "@babel/plugin-transform-dynamic-import": "^7.25.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.26.3",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.9",
+ "@babel/plugin-transform-for-of": "^7.26.9",
+ "@babel/plugin-transform-function-name": "^7.25.9",
+ "@babel/plugin-transform-json-strings": "^7.25.9",
+ "@babel/plugin-transform-literals": "^7.25.9",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.9",
+ "@babel/plugin-transform-modules-amd": "^7.25.9",
+ "@babel/plugin-transform-modules-commonjs": "^7.26.3",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.9",
+ "@babel/plugin-transform-modules-umd": "^7.25.9",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9",
+ "@babel/plugin-transform-new-target": "^7.25.9",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6",
+ "@babel/plugin-transform-numeric-separator": "^7.25.9",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.9",
+ "@babel/plugin-transform-object-super": "^7.25.9",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.9",
+ "@babel/plugin-transform-optional-chaining": "^7.25.9",
+ "@babel/plugin-transform-parameters": "^7.25.9",
+ "@babel/plugin-transform-private-methods": "^7.25.9",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.9",
+ "@babel/plugin-transform-property-literals": "^7.25.9",
+ "@babel/plugin-transform-regenerator": "^7.25.9",
+ "@babel/plugin-transform-regexp-modifiers": "^7.26.0",
+ "@babel/plugin-transform-reserved-words": "^7.25.9",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.9",
+ "@babel/plugin-transform-spread": "^7.25.9",
+ "@babel/plugin-transform-sticky-regex": "^7.25.9",
+ "@babel/plugin-transform-template-literals": "^7.26.8",
+ "@babel/plugin-transform-typeof-symbol": "^7.26.7",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.9",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.9",
+ "@babel/plugin-transform-unicode-regex": "^7.25.9",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.9",
+ "@babel/preset-modules": "0.1.6-no-external-plugins",
+ "babel-plugin-polyfill-corejs2": "^0.4.10",
+ "babel-plugin-polyfill-corejs3": "^0.11.0",
+ "babel-plugin-polyfill-regenerator": "^0.6.1",
+ "core-js-compat": "^3.40.0",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/preset-modules": {
+ "version": "0.1.6-no-external-plugins",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz",
+ "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/@babel/runtime": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz",
+ "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regenerator-runtime": "^0.14.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
+ "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/parser": "^7.27.0",
+ "@babel/types": "^7.27.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz",
+ "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.27.0",
+ "@babel/parser": "^7.27.0",
+ "@babel/template": "^7.27.0",
+ "@babel/types": "^7.27.0",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
+ "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@hapi/address": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz",
+ "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==",
+ "deprecated": "Moved to 'npm install @sideway/address'",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/bourne": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
+ "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz",
+ "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@hapi/joi": {
+ "version": "15.1.1",
+ "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz",
+ "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==",
+ "deprecated": "Switch to 'npm install joi'",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/address": "2.x.x",
+ "@hapi/bourne": "1.x.x",
+ "@hapi/hoek": "8.x.x",
+ "@hapi/topo": "3.x.x"
+ }
+ },
+ "node_modules/@hapi/topo": {
+ "version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz",
+ "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==",
+ "deprecated": "This version has been deprecated and is no longer supported or maintained",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@hapi/hoek": "^8.3.0"
+ }
+ },
+ "node_modules/@intervolga/optimize-cssnano-plugin": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/@intervolga/optimize-cssnano-plugin/-/optimize-cssnano-plugin-1.0.6.tgz",
+ "integrity": "sha512-zN69TnSr0viRSU6cEDIcuPcP67QcpQ6uHACg58FiN9PDrU6SLyGW3MR4tiISbYxy1kDWAVPwD+XwQTWE5cigAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano": "^4.0.0",
+ "cssnano-preset-default": "^4.0.0",
+ "postcss": "^7.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@mdi/font": {
+ "version": "5.9.55",
+ "resolved": "https://registry.npmjs.org/@mdi/font/-/font-5.9.55.tgz",
+ "integrity": "sha512-jswRF6q3eq8NWpWiqct6q+6Fg/I7nUhrxYJfiEM8JJpap0wVJLQdbKtyS65GdlK7S7Ytnx3TTi/bmw+tBhkGmg==",
+ "license": "Apache-2.0"
+ },
+ "node_modules/@mrmlnc/readdir-enhanced": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz",
+ "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-me-maybe": "^1.0.1",
+ "glob-to-regexp": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@node-ipc/js-queue": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@node-ipc/js-queue/-/js-queue-2.0.3.tgz",
+ "integrity": "sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "easy-stack": "1.0.1"
+ },
+ "engines": {
+ "node": ">=1.0.0"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz",
+ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@parcel/watcher": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz",
+ "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^1.0.3",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.5",
+ "node-addon-api": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher-android-arm64": "2.5.1",
+ "@parcel/watcher-darwin-arm64": "2.5.1",
+ "@parcel/watcher-darwin-x64": "2.5.1",
+ "@parcel/watcher-freebsd-x64": "2.5.1",
+ "@parcel/watcher-linux-arm-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm-musl": "2.5.1",
+ "@parcel/watcher-linux-arm64-glibc": "2.5.1",
+ "@parcel/watcher-linux-arm64-musl": "2.5.1",
+ "@parcel/watcher-linux-x64-glibc": "2.5.1",
+ "@parcel/watcher-linux-x64-musl": "2.5.1",
+ "@parcel/watcher-win32-arm64": "2.5.1",
+ "@parcel/watcher-win32-ia32": "2.5.1",
+ "@parcel/watcher-win32-x64": "2.5.1"
+ }
+ },
+ "node_modules/@parcel/watcher-android-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz",
+ "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz",
+ "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-darwin-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz",
+ "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-freebsd-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz",
+ "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz",
+ "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz",
+ "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz",
+ "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-arm64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz",
+ "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-glibc": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz",
+ "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-linux-x64-musl": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz",
+ "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-arm64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz",
+ "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-ia32": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz",
+ "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher-win32-x64": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz",
+ "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">= 10.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/parcel"
+ }
+ },
+ "node_modules/@parcel/watcher/node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@parcel/watcher/node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@parcel/watcher/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/@parcel/watcher/node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/@parcel/watcher/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/@soda/friendly-errors-webpack-plugin": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/@soda/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.8.1.tgz",
+ "integrity": "sha512-h2ooWqP8XuFqTXT+NyAFbrArzfQA7R6HTezADrvD9Re8fxMLTPPniLdqVTdDaO0eIoLaAwKT+d6w+5GeTk7Vbg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^3.0.0",
+ "error-stack-parser": "^2.0.6",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/@soda/get-current-script": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@soda/get-current-script/-/get-current-script-1.0.2.tgz",
+ "integrity": "sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/body-parser": {
+ "version": "1.19.5",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz",
+ "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/connect": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect": {
+ "version": "3.4.38",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
+ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/connect-history-api-fallback": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz",
+ "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/express-serve-static-core": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/express": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.1.tgz",
+ "integrity": "sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/body-parser": "*",
+ "@types/express-serve-static-core": "^5.0.0",
+ "@types/serve-static": "*"
+ }
+ },
+ "node_modules/@types/express-serve-static-core": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.6.tgz",
+ "integrity": "sha512-3xhRnjJPkULekpSzgtoNYYcTWgEZkp4myc+Saevii5JPnHNvHMRlBSHDbs7Bh1iPPoVTERHEZXyhyLbMEsExsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/qs": "*",
+ "@types/range-parser": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/minimatch": "*",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/http-errors": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz",
+ "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/http-proxy": {
+ "version": "1.17.16",
+ "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.16.tgz",
+ "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mime": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
+ "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/minimatch": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
+ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "22.14.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz",
+ "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz",
+ "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/q": {
+ "version": "1.5.8",
+ "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz",
+ "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.18",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz",
+ "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/range-parser": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz",
+ "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/send": {
+ "version": "0.17.4",
+ "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz",
+ "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/mime": "^1",
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/serve-static": {
+ "version": "1.15.7",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz",
+ "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-errors": "*",
+ "@types/node": "*",
+ "@types/send": "*"
+ }
+ },
+ "node_modules/@types/source-list-map": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.6.tgz",
+ "integrity": "sha512-5JcVt1u5HDmlXkwOD2nslZVllBBc7HDuOICfiZah2Z0is8M8g+ddAEawbmd3VjedfDHBzxCaXLs07QEmb7y54g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/tapable": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz",
+ "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/uglify-js": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz",
+ "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/@types/webpack": {
+ "version": "4.41.40",
+ "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.40.tgz",
+ "integrity": "sha512-u6kMFSBM9HcoTpUXnL6mt2HSzftqb3JgYV6oxIgL2dl6sX6aCa5k6SOkzv5DuZjBTPUE/dJltKtwwuqrkZHpfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tapable": "^1",
+ "@types/uglify-js": "*",
+ "@types/webpack-sources": "*",
+ "anymatch": "^3.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/@types/webpack-dev-server": {
+ "version": "3.11.6",
+ "resolved": "https://registry.npmjs.org/@types/webpack-dev-server/-/webpack-dev-server-3.11.6.tgz",
+ "integrity": "sha512-XCph0RiiqFGetukCTC3KVnY1jwLcZ84illFRMbyFzCcWl90B/76ew0tSqF46oBhnLC4obNDG7dMO0JfTN0MgMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/connect-history-api-fallback": "*",
+ "@types/express": "*",
+ "@types/serve-static": "*",
+ "@types/webpack": "^4",
+ "http-proxy-middleware": "^1.0.0"
+ }
+ },
+ "node_modules/@types/webpack-sources": {
+ "version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-3.2.3.tgz",
+ "integrity": "sha512-4nZOdMwSPHZ4pTEZzSp0AsTM4K7Qmu40UKW4tJDiOVs20UzYF9l+qUe4s0ftfN0pin06n+5cWWDJXH+sbhAiDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "@types/source-list-map": "*",
+ "source-map": "^0.7.3"
+ }
+ },
+ "node_modules/@types/webpack-sources/node_modules/source-map": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@vue/babel-helper-vue-jsx-merge-props": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
+ "integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vue/babel-helper-vue-transform-on": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.4.0.tgz",
+ "integrity": "sha512-mCokbouEQ/ocRce/FpKCRItGo+013tHg7tixg3DUNS+6bmIchPt66012kBMm476vyEIJPafrvOf4E5OYj3shSw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vue/babel-plugin-jsx": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.4.0.tgz",
+ "integrity": "sha512-9zAHmwgMWlaN6qRKdrg1uKsBKHvnUU+Py+MOCTuYZBoZsopa90Di10QRjB+YPnVss0BZbG/H5XFwJY1fTxJWhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "@babel/plugin-syntax-jsx": "^7.25.9",
+ "@babel/template": "^7.26.9",
+ "@babel/traverse": "^7.26.9",
+ "@babel/types": "^7.26.9",
+ "@vue/babel-helper-vue-transform-on": "1.4.0",
+ "@vue/babel-plugin-resolve-type": "1.4.0",
+ "@vue/shared": "^3.5.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/babel-plugin-resolve-type": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.4.0.tgz",
+ "integrity": "sha512-4xqDRRbQQEWHQyjlYSgZsWj44KfiF6D+ktCuXyZ8EnVDYV3pztmXJDf1HveAjUAXxAnR8daCQT51RneWWxtTyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "@babel/parser": "^7.26.9",
+ "@vue/compiler-sfc": "^3.5.13"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sxzz"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-plugin-transform-vue-jsx": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.4.0.tgz",
+ "integrity": "sha512-Fmastxw4MMx0vlgLS4XBX0XiBbUFzoMGeVXuMV08wyOfXdikAFqBTuYPR0tlk+XskL19EzHc39SgjrPGY23JnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.0.0",
+ "@babel/plugin-syntax-jsx": "^7.2.0",
+ "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
+ "html-tags": "^2.0.0",
+ "lodash.kebabcase": "^4.1.1",
+ "svg-tags": "^1.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-preset-app": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/babel-preset-app/-/babel-preset-app-4.5.19.tgz",
+ "integrity": "sha512-VCNRiAt2P/bLo09rYt3DLe6xXUMlhJwrvU18Ddd/lYJgC7s8+wvhgYs+MTx4OiAXdu58drGwSBO9SPx7C6J82Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.0",
+ "@babel/helper-compilation-targets": "^7.9.6",
+ "@babel/helper-module-imports": "^7.8.3",
+ "@babel/plugin-proposal-class-properties": "^7.8.3",
+ "@babel/plugin-proposal-decorators": "^7.8.3",
+ "@babel/plugin-syntax-dynamic-import": "^7.8.3",
+ "@babel/plugin-syntax-jsx": "^7.8.3",
+ "@babel/plugin-transform-runtime": "^7.11.0",
+ "@babel/preset-env": "^7.11.0",
+ "@babel/runtime": "^7.11.0",
+ "@vue/babel-plugin-jsx": "^1.0.3",
+ "@vue/babel-preset-jsx": "^1.2.4",
+ "babel-plugin-dynamic-import-node": "^2.3.3",
+ "core-js": "^3.6.5",
+ "core-js-compat": "^3.6.5",
+ "semver": "^6.1.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "*",
+ "core-js": "^3",
+ "vue": "^2 || ^3.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "core-js": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/babel-preset-jsx": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-preset-jsx/-/babel-preset-jsx-1.4.0.tgz",
+ "integrity": "sha512-QmfRpssBOPZWL5xw7fOuHNifCQcNQC1PrOo/4fu6xlhlKJJKSA3HqX92Nvgyx8fqHZTUGMPHmFA+IDqwXlqkSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
+ "@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
+ "@vue/babel-sugar-composition-api-inject-h": "^1.4.0",
+ "@vue/babel-sugar-composition-api-render-instance": "^1.4.0",
+ "@vue/babel-sugar-functional-vue": "^1.4.0",
+ "@vue/babel-sugar-inject-h": "^1.4.0",
+ "@vue/babel-sugar-v-model": "^1.4.0",
+ "@vue/babel-sugar-v-on": "^1.4.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0",
+ "vue": "*"
+ },
+ "peerDependenciesMeta": {
+ "vue": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/babel-sugar-composition-api-inject-h": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-inject-h/-/babel-sugar-composition-api-inject-h-1.4.0.tgz",
+ "integrity": "sha512-VQq6zEddJHctnG4w3TfmlVp5FzDavUSut/DwR0xVoe/mJKXyMcsIibL42wPntozITEoY90aBV0/1d2KjxHU52g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-sugar-composition-api-render-instance": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-sugar-composition-api-render-instance/-/babel-sugar-composition-api-render-instance-1.4.0.tgz",
+ "integrity": "sha512-6ZDAzcxvy7VcnCjNdHJ59mwK02ZFuP5CnucloidqlZwVQv5CQLijc3lGpR7MD3TWFi78J7+a8J56YxbCtHgT9Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-sugar-functional-vue": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.4.0.tgz",
+ "integrity": "sha512-lTEB4WUFNzYt2In6JsoF9sAYVTo84wC4e+PoZWSgM6FUtqRJz7wMylaEhSRgG71YF+wfLD6cc9nqVeXN2rwBvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-sugar-inject-h": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.4.0.tgz",
+ "integrity": "sha512-muwWrPKli77uO2fFM7eA3G1lAGnERuSz2NgAxuOLzrsTlQl8W4G+wwbM4nB6iewlKbwKRae3nL03UaF5ffAPMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-jsx": "^7.2.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-sugar-v-model": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.4.0.tgz",
+ "integrity": "sha512-0t4HGgXb7WHYLBciZzN5s0Hzqan4Ue+p/3FdQdcaHAb7s5D9WZFGoSxEZHrR1TFVZlAPu1bejTKGeAzaaG3NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-jsx": "^7.2.0",
+ "@vue/babel-helper-vue-jsx-merge-props": "^1.4.0",
+ "@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
+ "camelcase": "^5.0.0",
+ "html-tags": "^2.0.0",
+ "svg-tags": "^1.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-sugar-v-on": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.4.0.tgz",
+ "integrity": "sha512-m+zud4wKLzSKgQrWwhqRObWzmTuyzl6vOP7024lrpeJM4x2UhQtRDLgYjXAw9xBXjCwS0pP9kXjg91F9ZNo9JA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-jsx": "^7.2.0",
+ "@vue/babel-plugin-transform-vue-jsx": "^1.4.0",
+ "camelcase": "^5.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/cli-overlay": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.19.tgz",
+ "integrity": "sha512-GdxvNSmOw7NHIazCO8gTK+xZbaOmScTtxj6eHVeMbYpDYVPJ+th3VMLWNpw/b6uOjwzzcyKlA5dRQ1DAb+gF/g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vue/cli-plugin-babel": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-4.5.19.tgz",
+ "integrity": "sha512-8ebXzaMW9KNTMAN6+DzkhFsjty1ieqT7hIW5Lbk4v30Qhfjkms7lBWyXPGkoq+wAikXFa1Gnam2xmWOBqDDvWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.0",
+ "@vue/babel-preset-app": "^4.5.19",
+ "@vue/cli-shared-utils": "^4.5.19",
+ "babel-loader": "^8.1.0",
+ "cache-loader": "^4.1.0",
+ "thread-loader": "^2.1.3",
+ "webpack": "^4.0.0"
+ },
+ "peerDependencies": {
+ "@vue/cli-service": "^3.0.0 || ^4.0.0-0"
+ }
+ },
+ "node_modules/@vue/cli-plugin-eslint": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-eslint/-/cli-plugin-eslint-4.5.19.tgz",
+ "integrity": "sha512-53sa4Pu9j5KajesFlj494CcO8vVo3e3nnZ1CCKjGGnrF90id1rUeepcFfz5XjwfEtbJZp2x/NoX/EZE6zCzSFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vue/cli-shared-utils": "^4.5.19",
+ "eslint-loader": "^2.2.1",
+ "globby": "^9.2.0",
+ "inquirer": "^7.1.0",
+ "webpack": "^4.0.0",
+ "yorkie": "^2.0.0"
+ },
+ "peerDependencies": {
+ "@vue/cli-service": "^3.0.0 || ^4.0.0-0",
+ "eslint": ">= 1.6.0 < 7.0.0"
+ }
+ },
+ "node_modules/@vue/cli-plugin-router": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.19.tgz",
+ "integrity": "sha512-3icGzH1IbVYmMMsOwYa0lal/gtvZLebFXdE5hcQJo2mnTwngXGMTyYAzL56EgHBPjbMmRpyj6Iw9k4aVInVX6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vue/cli-shared-utils": "^4.5.19"
+ },
+ "peerDependencies": {
+ "@vue/cli-service": "^3.0.0 || ^4.0.0-0"
+ }
+ },
+ "node_modules/@vue/cli-plugin-vuex": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.19.tgz",
+ "integrity": "sha512-DUmfdkG3pCdkP7Iznd87RfE9Qm42mgp2hcrNcYQYSru1W1gX2dG/JcW8bxmeGSa06lsxi9LEIc/QD1yPajSCZw==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@vue/cli-service": "^3.0.0 || ^4.0.0-0"
+ }
+ },
+ "node_modules/@vue/cli-service": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-4.5.19.tgz",
+ "integrity": "sha512-+Wpvj8fMTCt9ZPOLu5YaLkFCQmB4MrZ26aRmhhKiCQ/4PMoL6mLezfqdt6c+m2htM+1WV5RunRo+0WHl2DfwZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@intervolga/optimize-cssnano-plugin": "^1.0.5",
+ "@soda/friendly-errors-webpack-plugin": "^1.7.1",
+ "@soda/get-current-script": "^1.0.0",
+ "@types/minimist": "^1.2.0",
+ "@types/webpack": "^4.0.0",
+ "@types/webpack-dev-server": "^3.11.0",
+ "@vue/cli-overlay": "^4.5.19",
+ "@vue/cli-plugin-router": "^4.5.19",
+ "@vue/cli-plugin-vuex": "^4.5.19",
+ "@vue/cli-shared-utils": "^4.5.19",
+ "@vue/component-compiler-utils": "^3.1.2",
+ "@vue/preload-webpack-plugin": "^1.1.0",
+ "@vue/web-component-wrapper": "^1.2.0",
+ "acorn": "^7.4.0",
+ "acorn-walk": "^7.1.1",
+ "address": "^1.1.2",
+ "autoprefixer": "^9.8.6",
+ "browserslist": "^4.12.0",
+ "cache-loader": "^4.1.0",
+ "case-sensitive-paths-webpack-plugin": "^2.3.0",
+ "cli-highlight": "^2.1.4",
+ "clipboardy": "^2.3.0",
+ "cliui": "^6.0.0",
+ "copy-webpack-plugin": "^5.1.1",
+ "css-loader": "^3.5.3",
+ "cssnano": "^4.1.10",
+ "debug": "^4.1.1",
+ "default-gateway": "^5.0.5",
+ "dotenv": "^8.2.0",
+ "dotenv-expand": "^5.1.0",
+ "file-loader": "^4.2.0",
+ "fs-extra": "^7.0.1",
+ "globby": "^9.2.0",
+ "hash-sum": "^2.0.0",
+ "html-webpack-plugin": "^3.2.0",
+ "launch-editor-middleware": "^2.2.1",
+ "lodash.defaultsdeep": "^4.6.1",
+ "lodash.mapvalues": "^4.6.0",
+ "lodash.transform": "^4.6.0",
+ "mini-css-extract-plugin": "^0.9.0",
+ "minimist": "^1.2.5",
+ "pnp-webpack-plugin": "^1.6.4",
+ "portfinder": "^1.0.26",
+ "postcss-loader": "^3.0.0",
+ "ssri": "^8.0.1",
+ "terser-webpack-plugin": "^1.4.4",
+ "thread-loader": "^2.1.3",
+ "url-loader": "^2.2.0",
+ "vue-loader": "^15.9.2",
+ "vue-style-loader": "^4.1.2",
+ "webpack": "^4.0.0",
+ "webpack-bundle-analyzer": "^3.8.0",
+ "webpack-chain": "^6.4.0",
+ "webpack-dev-server": "^3.11.0",
+ "webpack-merge": "^4.2.2"
+ },
+ "bin": {
+ "vue-cli-service": "bin/vue-cli-service.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "optionalDependencies": {
+ "vue-loader-v16": "npm:vue-loader@^16.1.0"
+ },
+ "peerDependencies": {
+ "@vue/compiler-sfc": "^3.0.0-beta.14",
+ "vue-template-compiler": "^2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/compiler-sfc": {
+ "optional": true
+ },
+ "less-loader": {
+ "optional": true
+ },
+ "pug-plain-loader": {
+ "optional": true
+ },
+ "raw-loader": {
+ "optional": true
+ },
+ "sass-loader": {
+ "optional": true
+ },
+ "stylus-loader": {
+ "optional": true
+ },
+ "vue-template-compiler": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/cli-shared-utils": {
+ "version": "4.5.19",
+ "resolved": "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.19.tgz",
+ "integrity": "sha512-JYpdsrC/d9elerKxbEUtmSSU6QRM60rirVubOewECHkBHj+tLNznWq/EhCjswywtePyLaMUK25eTqnTSZlEE+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@achrinza/node-ipc": "9.2.2",
+ "@hapi/joi": "^15.0.1",
+ "chalk": "^2.4.2",
+ "execa": "^1.0.0",
+ "launch-editor": "^2.2.1",
+ "lru-cache": "^5.1.1",
+ "open": "^6.3.0",
+ "ora": "^3.4.0",
+ "read-pkg": "^5.1.1",
+ "request": "^2.88.2",
+ "semver": "^6.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "node_modules/@vue/cli-shared-utils/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/cli-shared-utils/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/cli-shared-utils/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/@vue/cli-shared-utils/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vue/cli-shared-utils/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/cli-shared-utils/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz",
+ "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.25.3",
+ "@vue/shared": "3.5.13",
+ "entities": "^4.5.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz",
+ "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-core": "3.5.13",
+ "@vue/shared": "3.5.13"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.13.tgz",
+ "integrity": "sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.25.3",
+ "@vue/compiler-core": "3.5.13",
+ "@vue/compiler-dom": "3.5.13",
+ "@vue/compiler-ssr": "3.5.13",
+ "@vue/shared": "3.5.13",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.11",
+ "postcss": "^8.4.48",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-sfc/node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "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.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.13.tgz",
+ "integrity": "sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-dom": "3.5.13",
+ "@vue/shared": "3.5.13"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz",
+ "integrity": "sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "consolidate": "^0.15.1",
+ "hash-sum": "^1.0.2",
+ "lru-cache": "^4.1.2",
+ "merge-source-map": "^1.1.0",
+ "postcss": "^7.0.36",
+ "postcss-selector-parser": "^6.0.2",
+ "source-map": "~0.6.1",
+ "vue-template-es2015-compiler": "^1.9.0"
+ },
+ "optionalDependencies": {
+ "prettier": "^1.18.2 || ^2.0.0"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/@vue/component-compiler-utils/node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@vue/preload-webpack-plugin": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@vue/preload-webpack-plugin/-/preload-webpack-plugin-1.1.2.tgz",
+ "integrity": "sha512-LIZMuJk38pk9U9Ur4YzHjlIyMuxPlACdBIHH9/nGYVTsaGKOSnSuELiE8vS9wa+dJpIYspYUOqk+L1Q4pgHQHQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "peerDependencies": {
+ "html-webpack-plugin": ">=2.26.0",
+ "webpack": ">=4.0.0"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.5.13",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz",
+ "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@vue/web-component-wrapper": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@vue/web-component-wrapper/-/web-component-wrapper-1.3.0.tgz",
+ "integrity": "sha512-Iu8Tbg3f+emIIMmI2ycSI8QcEuAUgPTgHwesDU1eKMLE4YC/c/sFbGc70QgMq31ijRftV0R7vCm9co6rldCeOA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+ "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+ "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+ "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+ "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-code-frame": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+ "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-fsm": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+ "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/@webassemblyjs/helper-module-context": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+ "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+ "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+ "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+ "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/ieee754": "^1.2.0"
+ }
+ },
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+ "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+ "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+ "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/helper-wasm-section": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-opt": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "@webassemblyjs/wast-printer": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+ "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+ "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+ "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+ "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-code-frame": "1.9.0",
+ "@webassemblyjs/helper-fsm": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+ "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0",
+ "@xtuc/long": "4.2.2"
+ }
+ },
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz",
+ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/address": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz",
+ "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "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/ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": ">=5.0.0"
+ }
+ },
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ansi-colors": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
+ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-html-community": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz",
+ "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8.0"
+ ],
+ "license": "Apache-2.0",
+ "bin": {
+ "ansi-html": "bin/ansi-html"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "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/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/arch": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/arr-union": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "is-array-buffer": "^3.0.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/array-union": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-uniq": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array.prototype.reduce": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz",
+ "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.9",
+ "es-array-method-boxes-properly": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "is-string": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/arraybuffer.prototype.slice": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.1",
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "is-array-buffer": "^3.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "node_modules/asn1.js": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz",
+ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/asn1.js/node_modules/bn.js": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/assert": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz",
+ "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "object.assign": "^4.1.4",
+ "util": "^0.10.4"
+ }
+ },
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/assert/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/assert/node_modules/util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
+ "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/async-each": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz",
+ "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/async-function": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz",
+ "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/async-validator": {
+ "version": "1.8.5",
+ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.5.tgz",
+ "integrity": "sha512-tXBM+1m056MAX0E8TL2iCjg8WvSyXu0Zc8LNtYqrVeyoL3+esHRZ4SieE9fKQyyU09uONjnMEjrNBMqT0mbvmA==",
+ "dependencies": {
+ "babel-runtime": "6.x"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
+ "dev": true,
+ "license": "(MIT OR Apache-2.0)",
+ "bin": {
+ "atob": "bin/atob.js"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ }
+ },
+ "node_modules/autoprefixer": {
+ "version": "9.8.8",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.8.tgz",
+ "integrity": "sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.12.0",
+ "caniuse-lite": "^1.0.30001109",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "picocolors": "^0.2.1",
+ "postcss": "^7.0.32",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "bin": {
+ "autoprefixer": "bin/autoprefixer"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/autoprefixer"
+ }
+ },
+ "node_modules/autoprefixer/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
+ "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/babel-eslint": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz",
+ "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==",
+ "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "@babel/parser": "^7.7.0",
+ "@babel/traverse": "^7.7.0",
+ "@babel/types": "^7.7.0",
+ "eslint-visitor-keys": "^1.0.0",
+ "resolve": "^1.12.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "eslint": ">= 4.12.1"
+ }
+ },
+ "node_modules/babel-helper-vue-jsx-merge-props": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz",
+ "integrity": "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg=="
+ },
+ "node_modules/babel-loader": {
+ "version": "8.4.1",
+ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.4.1.tgz",
+ "integrity": "sha512-nXzRChX+Z1GoE6yWavBQg6jDslyFF3SDjl2paADuoQtQW10JqShJt62R6eJQ5m/pjJFDT8xgKIWSP85OY8eXeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-cache-dir": "^3.3.1",
+ "loader-utils": "^2.0.4",
+ "make-dir": "^3.1.0",
+ "schema-utils": "^2.6.5"
+ },
+ "engines": {
+ "node": ">= 8.9"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0",
+ "webpack": ">=2"
+ }
+ },
+ "node_modules/babel-plugin-dynamic-import-node": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "object.assign": "^4.1.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.4.13",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz",
+ "integrity": "sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.22.6",
+ "@babel/helper-define-polyfill-provider": "^0.6.4",
+ "semver": "^6.3.1"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz",
+ "integrity": "sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.3",
+ "core-js-compat": "^3.40.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz",
+ "integrity": "sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.6.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
+ }
+ },
+ "node_modules/babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==",
+ "dependencies": {
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
+ }
+ },
+ "node_modules/babel-runtime/node_modules/core-js": {
+ "version": "2.6.12",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz",
+ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==",
+ "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.",
+ "hasInstallScript": true
+ },
+ "node_modules/babel-runtime/node_modules/regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/batch": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
+ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "node_modules/bezier-easing": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/bezier-easing/-/bezier-easing-2.1.0.tgz",
+ "integrity": "sha512-gbIqZ/eslnUFC1tjEvtz0sgx+xTK20wDnYMIA27VA04R7w6xxXQPZDbibjA9DTWZRA2CXtwHykkVzlCaAJAZig==",
+ "license": "MIT"
+ },
+ "node_modules/bfj": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.2.tgz",
+ "integrity": "sha512-BmBJa4Lip6BPRINSZ0BPEIfB1wUY/9rwbwvIHQA1KjX9om29B6id0wnWXq7m3bn5JrUVjeOTnVuhPT1FiHwPGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bluebird": "^3.5.5",
+ "check-types": "^8.0.3",
+ "hoopy": "^0.1.4",
+ "tryer": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.13.0",
+ "raw-body": "2.5.2",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/body-parser/node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/bonjour": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
+ "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-flatten": "^2.1.0",
+ "deep-equal": "^1.0.1",
+ "dns-equal": "^1.0.0",
+ "dns-txt": "^2.0.2",
+ "multicast-dns": "^6.0.1",
+ "multicast-dns-service-types": "^1.1.0"
+ }
+ },
+ "node_modules/bonjour/node_modules/array-flatten": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
+ "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-flatten": "^1.1.0",
+ "array-unique": "^0.3.2",
+ "extend-shallow": "^2.0.1",
+ "fill-range": "^4.0.0",
+ "isobject": "^3.0.1",
+ "repeat-element": "^1.1.2",
+ "snapdragon": "^0.8.1",
+ "snapdragon-node": "^2.0.1",
+ "split-string": "^3.0.2",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/braces/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/braces/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz",
+ "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^5.2.1",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/browserify-rsa/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/browserify-sign": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz",
+ "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "bn.js": "^5.2.1",
+ "browserify-rsa": "^4.1.0",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.5",
+ "hash-base": "~3.0",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.7",
+ "readable-stream": "^2.3.8",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/browserify-sign/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
+ "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001688",
+ "electron-to-chromium": "^1.5.73",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.1"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/buffer-indexof": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
+ "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/buffer-json": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/buffer-json/-/buffer-json-2.0.0.tgz",
+ "integrity": "sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacache": {
+ "version": "12.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+ "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "node_modules/cacache/node_modules/ssri": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz",
+ "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "figgy-pudding": "^3.5.1"
+ }
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cache-loader": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-4.1.0.tgz",
+ "integrity": "sha512-ftOayxve0PwKzBF/GLsZNC9fJBXl8lkZE3TOsjkboHfVHVkL39iUEs1FO07A33mizmci5Dudt38UZrrYXDtbhw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-json": "^2.0.0",
+ "find-cache-dir": "^3.0.0",
+ "loader-utils": "^1.2.3",
+ "mkdirp": "^0.5.1",
+ "neo-async": "^2.6.1",
+ "schema-utils": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/cache-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/cache-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
+ "es-define-property": "^1.0.0",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-me-maybe": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
+ "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/caller-callsite": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz",
+ "integrity": "sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caller-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz",
+ "integrity": "sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "caller-callsite": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/callsite": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz",
+ "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz",
+ "integrity": "sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-api": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz",
+ "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-lite": "^1.0.0",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001714",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001714.tgz",
+ "integrity": "sha512-mtgapdwDLSSBnCI3JokHM7oEQBLxiJKVRtg10AxM1AyeiKcM96f0Mkbqeq+1AbiCtvMcHRulAAEMu693JrSWqg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/case-sensitive-paths-webpack-plugin": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz",
+ "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/chalk": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chardet": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
+ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/check-types": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/check-types/-/check-types-8.0.3.tgz",
+ "integrity": "sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/chokidar": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz",
+ "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "readdirp": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 14.16.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz",
+ "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz",
+ "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz",
+ "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/cipher-base/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/class-utils/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/classnames": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz",
+ "integrity": "sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==",
+ "license": "MIT"
+ },
+ "node_modules/clean-css": {
+ "version": "4.2.4",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz",
+ "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "source-map": "~0.6.0"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-highlight": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz",
+ "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "highlight.js": "^10.7.1",
+ "mz": "^2.4.0",
+ "parse5": "^5.1.1",
+ "parse5-htmlparser2-tree-adapter": "^6.0.0",
+ "yargs": "^16.0.0"
+ },
+ "bin": {
+ "highlight": "bin/highlight"
+ },
+ "engines": {
+ "node": ">=8.0.0",
+ "npm": ">=5.0.0"
+ }
+ },
+ "node_modules/cli-highlight/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-width": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/clipboardy": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-2.3.0.tgz",
+ "integrity": "sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arch": "^2.1.1",
+ "execa": "^1.0.0",
+ "is-wsl": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clone-deep": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz",
+ "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4",
+ "kind-of": "^6.0.2",
+ "shallow-clone": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/coa": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
+ "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/q": "^1.5.1",
+ "chalk": "^2.4.1",
+ "q": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/coa/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/coa/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/coa/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/coa/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/coa/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/coa/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "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://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/color/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/commander": {
+ "version": "2.17.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz",
+ "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/compressible": {
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": ">= 1.43.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz",
+ "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "compressible": "~2.0.18",
+ "debug": "2.6.9",
+ "negotiator": "~0.6.4",
+ "on-headers": "~1.0.2",
+ "safe-buffer": "5.2.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/compression/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/compression/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/compression/node_modules/negotiator": {
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/compression/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/connect-history-api-fallback": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz",
+ "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
+ },
+ "node_modules/consolidate": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz",
+ "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==",
+ "deprecated": "Please upgrade to consolidate v1.0.0+ as it has been modernized with several long-awaited fixes implemented. Maintenance is supported by Forward Email at https://forwardemail.net ; follow/watch https://github.com/ladjs/consolidate for updates and release changelog",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bluebird": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-disposition/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cookie": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "deprecated": "This package is no longer supported.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.2.tgz",
+ "integrity": "sha512-Uh7crJAco3AjBvgAy9Z75CjK8IG+gxaErro71THQ+vv/bl4HaQcpkexAY8KVW/T6D2W2IRr+couF/knIRkZMIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cacache": "^12.0.3",
+ "find-cache-dir": "^2.1.0",
+ "glob-parent": "^3.1.0",
+ "globby": "^7.1.1",
+ "is-glob": "^4.0.1",
+ "loader-utils": "^1.2.3",
+ "minimatch": "^3.0.4",
+ "normalize-path": "^3.0.0",
+ "p-limit": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "webpack-log": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/globby": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
+ "integrity": "sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^1.0.1",
+ "dir-glob": "^2.0.0",
+ "glob": "^7.1.2",
+ "ignore": "^3.3.5",
+ "pify": "^3.0.0",
+ "slash": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/globby/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/ignore": {
+ "version": "3.3.10",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz",
+ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/copy-webpack-plugin/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/copy-webpack-plugin/node_modules/slash": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/core-js": {
+ "version": "3.41.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.41.0.tgz",
+ "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.41.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz",
+ "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.24.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cosmiconfig": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz",
+ "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-fresh": "^2.0.0",
+ "is-directory": "^0.3.1",
+ "js-yaml": "^3.13.1",
+ "parse-json": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "node_modules/create-ecdh/node_modules/bn.js": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "6.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz",
+ "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
+ },
+ "node_modules/cross-spawn/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/crypto-browserify": {
+ "version": "3.12.1",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz",
+ "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserify-cipher": "^1.0.1",
+ "browserify-sign": "^4.2.3",
+ "create-ecdh": "^4.0.4",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "diffie-hellman": "^5.0.3",
+ "hash-base": "~3.0.4",
+ "inherits": "^2.0.4",
+ "pbkdf2": "^3.1.2",
+ "public-encrypt": "^4.0.3",
+ "randombytes": "^2.1.0",
+ "randomfill": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/css-color-names": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
+ "integrity": "sha512-zj5D7X1U2h2zsXOAM8EyUREBnnts6H+Jm+d1M2DbiQQcUtnqgQsMrdo8JW9R80YFUmIdBZeMu5wvYM7hcgWP/Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/css-declaration-sorter": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz",
+ "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.1",
+ "timsort": "^0.3.0"
+ },
+ "engines": {
+ "node": ">4"
+ }
+ },
+ "node_modules/css-loader": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz",
+ "integrity": "sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "cssesc": "^3.0.0",
+ "icss-utils": "^4.1.1",
+ "loader-utils": "^1.2.3",
+ "normalize-path": "^3.0.0",
+ "postcss": "^7.0.32",
+ "postcss-modules-extract-imports": "^2.0.0",
+ "postcss-modules-local-by-default": "^3.0.2",
+ "postcss-modules-scope": "^2.2.0",
+ "postcss-modules-values": "^3.0.0",
+ "postcss-value-parser": "^4.1.0",
+ "schema-utils": "^2.7.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/css-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/css-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/css-select": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz",
+ "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.0.1",
+ "domhandler": "^4.3.1",
+ "domutils": "^2.8.0",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-select-base-adapter": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz",
+ "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/css-tree": {
+ "version": "1.0.0-alpha.37",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz",
+ "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.4",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssnano": {
+ "version": "4.1.11",
+ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz",
+ "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cosmiconfig": "^5.0.0",
+ "cssnano-preset-default": "^4.0.8",
+ "is-resolvable": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-preset-default": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz",
+ "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-declaration-sorter": "^4.0.1",
+ "cssnano-util-raw-cache": "^4.0.1",
+ "postcss": "^7.0.0",
+ "postcss-calc": "^7.0.1",
+ "postcss-colormin": "^4.0.3",
+ "postcss-convert-values": "^4.0.1",
+ "postcss-discard-comments": "^4.0.2",
+ "postcss-discard-duplicates": "^4.0.2",
+ "postcss-discard-empty": "^4.0.1",
+ "postcss-discard-overridden": "^4.0.1",
+ "postcss-merge-longhand": "^4.0.11",
+ "postcss-merge-rules": "^4.0.3",
+ "postcss-minify-font-values": "^4.0.2",
+ "postcss-minify-gradients": "^4.0.2",
+ "postcss-minify-params": "^4.0.2",
+ "postcss-minify-selectors": "^4.0.2",
+ "postcss-normalize-charset": "^4.0.1",
+ "postcss-normalize-display-values": "^4.0.2",
+ "postcss-normalize-positions": "^4.0.2",
+ "postcss-normalize-repeat-style": "^4.0.2",
+ "postcss-normalize-string": "^4.0.2",
+ "postcss-normalize-timing-functions": "^4.0.2",
+ "postcss-normalize-unicode": "^4.0.1",
+ "postcss-normalize-url": "^4.0.1",
+ "postcss-normalize-whitespace": "^4.0.2",
+ "postcss-ordered-values": "^4.1.2",
+ "postcss-reduce-initial": "^4.0.3",
+ "postcss-reduce-transforms": "^4.0.2",
+ "postcss-svgo": "^4.0.3",
+ "postcss-unique-selectors": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-arguments": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz",
+ "integrity": "sha512-6RIcwmV3/cBMG8Aj5gucQRsJb4vv4I4rn6YjPbVWd5+Pn/fuG+YseGvXGk00XLkoZkaj31QOD7vMUpNPC4FIuw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-get-match": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz",
+ "integrity": "sha512-JPMZ1TSMRUPVIqEalIBNoBtAYbi8okvcFns4O0YIhcdGebeYZK7dMyHJiQ6GqNBA9kE0Hym4Aqym5rPdsV/4Cw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-raw-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz",
+ "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/cssnano-util-same-parent": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz",
+ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/csso": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz",
+ "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-tree": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/css-tree": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
+ "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mdn-data": "2.0.14",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/csso/node_modules/mdn-data": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
+ "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "license": "MIT"
+ },
+ "node_modules/cyclist": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz",
+ "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/data-view-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/data-view-byte-length": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/inspect-js"
+ }
+ },
+ "node_modules/data-view-byte-offset": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "is-data-view": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decache": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.2.tgz",
+ "integrity": "sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsite": "^1.0.0"
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
+ "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/deep-equal": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz",
+ "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-arguments": "^1.1.1",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "regexp.prototype.flags": "^1.5.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deepmerge": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz",
+ "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/default-gateway": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-5.0.5.tgz",
+ "integrity": "sha512-z2RnruVmj8hVMmAnEJMTIJNijhKCDiGjbLP+BHJFOT7ld3Bo5qcIBpVYDniqhbMIIf+jZDlkP2MkPXiQy/DBLA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "execa": "^3.3.0"
+ },
+ "engines": {
+ "node": "^8.12.0 || >=9.7.0"
+ }
+ },
+ "node_modules/default-gateway/node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/execa": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz",
+ "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "p-finally": "^2.0.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": "^8.12.0 || >=9.7.0"
+ }
+ },
+ "node_modules/default-gateway/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-gateway/node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-gateway/node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/p-finally": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
+ "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/default-gateway/node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz",
+ "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz",
+ "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.2",
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz",
+ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/glob": "^7.1.1",
+ "globby": "^6.1.0",
+ "is-path-cwd": "^2.0.0",
+ "is-path-in-cwd": "^2.0.0",
+ "p-map": "^2.0.0",
+ "pify": "^4.0.1",
+ "rimraf": "^2.6.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/del/node_modules/globby": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-union": "^1.0.1",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/del/node_modules/globby/node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/des.js": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz",
+ "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-libc": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+ "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "bin": {
+ "detect-libc": "bin/detect-libc.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/detect-node": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz",
+ "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/diffie-hellman/node_modules/bn.js": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dir-glob": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz",
+ "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-type": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dns-equal": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
+ "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/dns-packet": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz",
+ "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ip": "^1.1.0",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/dns-txt": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
+ "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-indexof": "^1.0.0"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-converter": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz",
+ "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "utila": "~0.4"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4",
+ "npm": ">=1.2"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-prop": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
+ "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-obj": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "dev": true,
+ "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://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/duplexify": {
+ "version": "3.7.1",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz",
+ "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/easy-stack": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz",
+ "integrity": "sha512-wK2sCs4feiiJeFXn3zvY0p41mdU5VUgbgs1rNsc/y5ngFUijdWd+iIN8eoyuZHKB8xN6BL4PdWmzqFmxNg6V2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ejs": {
+ "version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz",
+ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.137",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.137.tgz",
+ "integrity": "sha512-/QSJaU2JyIuTbbABAo/crOs+SuAZLS+fVVS10PVrIT9hrRkmZl8Hb0xPSkKRUUWHQtYzXHpQUW3Dy5hwMzGZkA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/element-ui": {
+ "version": "2.15.14",
+ "resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.14.tgz",
+ "integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
+ "dependencies": {
+ "async-validator": "~1.8.1",
+ "babel-helper-vue-jsx-merge-props": "^2.0.0",
+ "deepmerge": "^1.2.0",
+ "normalize-wheel": "^1.0.1",
+ "resize-observer-polyfill": "^1.5.0",
+ "throttle-debounce": "^1.0.1"
+ },
+ "peerDependencies": {
+ "vue": "^2.5.17"
+ }
+ },
+ "node_modules/elliptic": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
+ "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+ "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/enhanced-resolve/node_modules/memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/enquire.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz",
+ "integrity": "sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw==",
+ "license": "MIT"
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/error-stack-parser": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz",
+ "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "stackframe": "^1.3.4"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.23.9",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
+ "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-buffer-byte-length": "^1.0.2",
+ "arraybuffer.prototype.slice": "^1.0.4",
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "data-view-buffer": "^1.0.2",
+ "data-view-byte-length": "^1.0.2",
+ "data-view-byte-offset": "^1.0.1",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "es-set-tostringtag": "^2.1.0",
+ "es-to-primitive": "^1.3.0",
+ "function.prototype.name": "^1.1.8",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.0",
+ "get-symbol-description": "^1.1.0",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
+ "has-property-descriptors": "^1.0.2",
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "internal-slot": "^1.1.0",
+ "is-array-buffer": "^3.0.5",
+ "is-callable": "^1.2.7",
+ "is-data-view": "^1.0.2",
+ "is-regex": "^1.2.1",
+ "is-shared-array-buffer": "^1.0.4",
+ "is-string": "^1.1.1",
+ "is-typed-array": "^1.1.15",
+ "is-weakref": "^1.1.0",
+ "math-intrinsics": "^1.1.0",
+ "object-inspect": "^1.13.3",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.7",
+ "own-keys": "^1.0.1",
+ "regexp.prototype.flags": "^1.5.3",
+ "safe-array-concat": "^1.1.3",
+ "safe-push-apply": "^1.0.0",
+ "safe-regex-test": "^1.1.0",
+ "set-proto": "^1.0.0",
+ "string.prototype.trim": "^1.2.10",
+ "string.prototype.trimend": "^1.0.9",
+ "string.prototype.trimstart": "^1.0.8",
+ "typed-array-buffer": "^1.0.3",
+ "typed-array-byte-length": "^1.0.3",
+ "typed-array-byte-offset": "^1.0.4",
+ "typed-array-length": "^1.0.7",
+ "unbox-primitive": "^1.1.0",
+ "which-typed-array": "^1.1.18"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-array-method-boxes-properly": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz",
+ "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-set-tostringtag": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+ "dev": true,
+ "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/es-to-primitive": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.2.7",
+ "is-date-object": "^1.0.5",
+ "is-symbol": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
+ "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
+ "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "ajv": "^6.10.0",
+ "chalk": "^2.1.0",
+ "cross-spawn": "^6.0.5",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "eslint-scope": "^5.0.0",
+ "eslint-utils": "^1.4.3",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.1.2",
+ "esquery": "^1.0.1",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^5.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.0.0",
+ "globals": "^12.1.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^7.0.0",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.3.0",
+ "lodash": "^4.17.14",
+ "minimatch": "^3.0.4",
+ "mkdirp": "^0.5.1",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.8.3",
+ "progress": "^2.0.0",
+ "regexpp": "^2.0.1",
+ "semver": "^6.1.2",
+ "strip-ansi": "^5.2.0",
+ "strip-json-comments": "^3.0.1",
+ "table": "^5.2.3",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^8.10.0 || ^10.13.0 || >=11.10.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-loader": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz",
+ "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==",
+ "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-fs-cache": "^1.0.0",
+ "loader-utils": "^1.0.2",
+ "object-assign": "^4.0.1",
+ "object-hash": "^1.1.4",
+ "rimraf": "^2.6.1"
+ },
+ "peerDependencies": {
+ "eslint": ">=1.6.0 <7.0.0",
+ "webpack": ">=2.0.0 <5.0.0"
+ }
+ },
+ "node_modules/eslint-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/eslint-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-vue": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz",
+ "integrity": "sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "natural-compare": "^1.4.0",
+ "semver": "^5.6.0",
+ "vue-eslint-parser": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.10"
+ },
+ "peerDependencies": {
+ "eslint": "^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/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/eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/eslint/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/eslint/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/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/eslint/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/eslint/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/espree": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
+ "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "acorn-jsx": "^5.2.0",
+ "eslint-visitor-keys": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/event-pubsub": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/event-pubsub/-/event-pubsub-4.3.0.tgz",
+ "integrity": "sha512-z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==",
+ "dev": true,
+ "license": "Unlicense",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/eventsource": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz",
+ "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/execa": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/expand-brackets/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/express": {
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.3",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.7.1",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.3.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.3",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.12",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.13.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.19.0",
+ "serve-static": "1.16.2",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/express/node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/express/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/extend-shallow": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assign-symbols": "^1.0.0",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/external-editor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
+ "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chardet": "^0.7.0",
+ "iconv-lite": "^0.4.24",
+ "tmp": "^0.0.33"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extglob/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "license": "MIT"
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "2.2.7",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz",
+ "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@mrmlnc/readdir-enhanced": "^2.2.1",
+ "@nodelib/fs.stat": "^1.1.2",
+ "glob-parent": "^3.1.0",
+ "is-glob": "^4.0.0",
+ "merge2": "^1.2.3",
+ "micromatch": "^3.1.10"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/faye-websocket": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz",
+ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "websocket-driver": ">=0.5.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/feather-icons": {
+ "version": "4.29.2",
+ "resolved": "https://registry.npmjs.org/feather-icons/-/feather-icons-4.29.2.tgz",
+ "integrity": "sha512-0TaCFTnBTVCz6U+baY2UJNKne5ifGh7sMG4ZC2LoBWCZdIyPa+y6UiR4lEYGws1JOFWdee8KAsAIvu0VcXqiqA==",
+ "license": "MIT",
+ "dependencies": {
+ "classnames": "^2.2.5",
+ "core-js": "^3.1.3"
+ }
+ },
+ "node_modules/figgy-pudding": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
+ "deprecated": "This module is no longer supported.",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
+ "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/file-loader": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz",
+ "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^1.2.3",
+ "schema-utils": "^2.5.0"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/file-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/file-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/filesize": {
+ "version": "3.6.1",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz",
+ "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1",
+ "to-regex-range": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fill-range/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fill-range/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/find-cache-dir": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
+ "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^2.0.0",
+ "rimraf": "2.6.3",
+ "write": "1.0.3"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/flat-cache/node_modules/rimraf": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
+ }
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+ "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/for-each": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz",
+ "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.2.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ }
+ },
+ "node_modules/fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=6 <7 || >=8"
+ }
+ },
+ "node_modules/fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==",
+ "deprecated": "This package is no longer supported.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "functions-have-names": "^1.2.3",
+ "hasown": "^2.0.2",
+ "is-callable": "^1.2.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "dev": true,
+ "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://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/get-symbol-description": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-value": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "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": "3.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^3.1.0",
+ "path-dirname": "^1.0.0"
+ }
+ },
+ "node_modules/glob-parent/node_modules/is-glob": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/glob-to-regexp": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz",
+ "integrity": "sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==",
+ "dev": true,
+ "license": "BSD"
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globalthis": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz",
+ "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.2.1",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/globby": {
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-9.2.0.tgz",
+ "integrity": "sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/glob": "^7.1.1",
+ "array-union": "^1.0.2",
+ "dir-glob": "^2.2.2",
+ "fast-glob": "^2.2.6",
+ "glob": "^7.1.3",
+ "ignore": "^4.0.3",
+ "pify": "^4.0.1",
+ "slash": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/gzip-size": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz",
+ "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "duplexer": "^0.1.1",
+ "pify": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/handle-thing": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz",
+ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "deprecated": "this library is no longer supported",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz",
+ "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-bigints": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
+ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-value": "^2.0.6",
+ "has-values": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "kind-of": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/has-values/node_modules/kind-of": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/hash-base": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz",
+ "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.4",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/hash-base/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/hash-sum": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
+ "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/hex-color-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
+ "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/highlight.js": {
+ "version": "10.7.3",
+ "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz",
+ "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/hooper": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/hooper/-/hooper-0.3.4.tgz",
+ "integrity": "sha512-hV1c+MCiCfVjltdvZIgTrGYHInvhKiNLVNOT/hRWbfjZNIS9H6F6ZUPeaxhxrYkjsEL96Z0RIs+4YPoBqrrrHQ==",
+ "license": "MIT"
+ },
+ "node_modules/hoopy": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
+ "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/hpack.js": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
+ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "obuf": "^1.0.0",
+ "readable-stream": "^2.0.1",
+ "wbuf": "^1.1.0"
+ }
+ },
+ "node_modules/hsl-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz",
+ "integrity": "sha512-M5ezZw4LzXbBKMruP+BNANf0k+19hDQMgpzBIYnya//Al+fjNct9Wf3b1WedLqdEs2hKBvxq/jh+DsHJLj0F9A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/hsla-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz",
+ "integrity": "sha512-7Wn5GMLuHBjZCb2bTmnDOycho0p/7UVaAeqXZGbHrBCl6Yd/xDhQJAXe6Ga9AXJH2I5zY1dEdYw2u1UptnSBJA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/html-entities": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz",
+ "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/html-minifier": {
+ "version": "3.5.21",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz",
+ "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camel-case": "3.0.x",
+ "clean-css": "4.2.x",
+ "commander": "2.17.x",
+ "he": "1.2.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
+ },
+ "bin": {
+ "html-minifier": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/html-tags": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
+ "integrity": "sha512-+Il6N8cCo2wB/Vd3gqy/8TZhTD3QvcVeQLCnZiGkGCH3JP28IgGAY41giccp2W4R3jfyJPAP318FQTa1yU7K7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/html-webpack-plugin": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz",
+ "integrity": "sha512-Br4ifmjQojUP4EmHnRBoUIYcZ9J7M4bTMcm7u6xoIAIuq2Nte4TzXX0533owvkQKQD1WeMTTTyD4Ni4QKxS0Bg==",
+ "deprecated": "3.x is no longer supported",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "html-minifier": "^3.2.3",
+ "loader-utils": "^0.2.16",
+ "lodash": "^4.17.3",
+ "pretty-error": "^2.0.2",
+ "tapable": "^1.0.0",
+ "toposort": "^1.0.0",
+ "util.promisify": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9"
+ },
+ "peerDependencies": {
+ "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/big.js": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
+ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha512-knHEZMgs8BB+MInokmNTg/OyPlAddghe1YBgNwJBc5zsJi/uyIcXoSDsL/W9ymOsBoBGdPIHXYJ9+qKFwRwDng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/json5": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
+ "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/html-webpack-plugin/node_modules/loader-utils": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
+ "integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz",
+ "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.0.0",
+ "domutils": "^2.5.2",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/htmlparser2/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/http-deceiver": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
+ "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-parser-js": {
+ "version": "0.5.10",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz",
+ "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/http-proxy": {
+ "version": "1.18.1",
+ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
+ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter3": "^4.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/http-proxy-middleware": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.3.1.tgz",
+ "integrity": "sha512-13eVVDYS4z79w7f1+NPllJtOQFx/FdUW4btIvVRMaRlUY9VGstAbo5MOhLEuUgZFRHn3x50ufn25zkj/boZnEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/http-proxy": "^1.17.5",
+ "http-proxy": "^1.18.1",
+ "is-glob": "^4.0.1",
+ "is-plain-obj": "^3.0.0",
+ "micromatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/http-proxy-middleware/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
+ }
+ },
+ "node_modules/https-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
+ "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/icss-utils": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz",
+ "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss": "^7.0.14"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/iferr": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
+ "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ignore": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/immutable": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz",
+ "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/import-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz",
+ "integrity": "sha512-Ew5AZzJQFqrOV5BTW3EIoHAnoie1LojZLXKcCQ/yTRyVZosBhK1x1ViYjHGf5pAFOq8ZyChZp6m/fSN7pJyZtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "import-from": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz",
+ "integrity": "sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "caller-path": "^2.0.0",
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-from": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz",
+ "integrity": "sha512-0vdnLL2wSGnhlRmzHJAg5JHjt1l2vYhzJ7tNLGbeVg0fse56tpGaH0uzH+r9Slej+BSXXEHvBKDEnVSLLE9/+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
+ "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pkg-dir": "^3.0.0",
+ "resolve-cwd": "^2.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/import-local/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-local/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indexes-of": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz",
+ "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/infer-owner": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/inquirer": {
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.1.0",
+ "cli-cursor": "^3.1.0",
+ "cli-width": "^3.0.0",
+ "external-editor": "^3.0.3",
+ "figures": "^3.0.0",
+ "lodash": "^4.17.19",
+ "mute-stream": "0.0.8",
+ "run-async": "^2.4.0",
+ "rxjs": "^6.6.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0",
+ "through": "^2.3.6"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/inquirer/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/internal-ip": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
+ "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "default-gateway": "^4.2.0",
+ "ipaddr.js": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/internal-ip/node_modules/default-gateway": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz",
+ "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "execa": "^1.0.0",
+ "ip-regex": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/internal-slot": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.2",
+ "side-channel": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/ip": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz",
+ "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ip-regex": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "integrity": "sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-absolute-url": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
+ "integrity": "sha512-vOx7VprsKyllwjSkLV79NIhpyLfr3jAp7VaTCMXOJHu4m0Ew1CZ2fcjASwmV1jI3BWuWHB013M48eyeldk9gYg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-accessor-descriptor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz",
+ "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-arguments": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
+ "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-array-buffer": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-async-function": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz",
+ "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "async-function": "^1.0.0",
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.1",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-bigint": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-bigints": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-binary-path": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-boolean-object": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
+ "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-buffer": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-callable": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
+ "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-ci": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz",
+ "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ci-info": "^1.5.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-color-stop": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz",
+ "integrity": "sha512-H1U8Vz0cfXNujrJzEcvvwMDW9Ra+biSYA3ThdQvAnMLJkEHQXn6bWzLkxHtVYJ+Sdbx0b6finn3jZiaVe7MAHA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-color-names": "^0.0.4",
+ "hex-color-regex": "^1.1.0",
+ "hsl-regex": "^1.0.0",
+ "hsla-regex": "^1.0.0",
+ "rgb-regex": "^1.0.1",
+ "rgba-regex": "^1.0.0"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-data-descriptor": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz",
+ "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-data-view": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "is-typed-array": "^1.1.13"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-date-object": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-descriptor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz",
+ "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/is-directory": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz",
+ "integrity": "sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extendable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-object": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-finalizationregistry": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-function": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
+ "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.0",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
+ "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number-object": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-number/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-obj": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-path-cwd": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz",
+ "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-in-cwd": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz",
+ "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-path-inside": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz",
+ "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-is-inside": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
+ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-regex": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-resolvable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
+ "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/is-set": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz",
+ "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-string": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-symbol": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typed-array": {
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "which-typed-array": "^1.1.16"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
+ "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz",
+ "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
+ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-docker": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/javascript-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz",
+ "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-message": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz",
+ "integrity": "sha512-efJLHhLjIyKRewNS9EGZ4UpI8NguuL6fKkhRxVuMmrGV2xN/0APGdQYwLFky5w9naebSZ0OwAGp0G6/2Cg90rA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-parse-better-errors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true,
+ "license": "(AFL-2.1 OR BSD-3-Clause)"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/json2mq": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz",
+ "integrity": "sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA==",
+ "license": "MIT",
+ "dependencies": {
+ "string-convert": "^0.2.0"
+ }
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
+ "dev": true,
+ "license": "MIT",
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsprim": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/killable": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
+ "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/launch-editor": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.10.0.tgz",
+ "integrity": "sha512-D7dBRJo/qcGX9xlvt/6wUYzQxjh5G1RvZPgPv8vi4KRU99DVQL/oW7tnVOCCTm2HGeo3C5HvGE5Yrh6UBoZ0vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^1.0.0",
+ "shell-quote": "^1.8.1"
+ }
+ },
+ "node_modules/launch-editor-middleware": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.10.0.tgz",
+ "integrity": "sha512-RzZu7MeVlE3p1H6Sadc2BhuDGAj7bkeDCBpNq/zSENP4ohJGhso00k5+iYaRwKshIpiOAhMmimce+5D389xmSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "launch-editor": "^2.10.0"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/loader-fs-cache": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz",
+ "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-cache-dir": "^0.1.1",
+ "mkdirp": "^0.5.1"
+ }
+ },
+ "node_modules/loader-fs-cache/node_modules/find-cache-dir": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
+ "integrity": "sha512-Z9XSBoNE7xQiV6MSgPuCfyMokH2K7JdpRkOYE1+mu3d4BFJtx3GW+f6Bo4q8IX6rlf5MYbLBKW0pjl2cWdkm2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pkg-dir": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loader-fs-cache/node_modules/find-up": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+ "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loader-fs-cache/node_modules/path-exists": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+ "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loader-fs-cache/node_modules/pkg-dir": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
+ "integrity": "sha512-c6pv3OE78mcZ92ckebVDqg0aWSoKhOTbwCV6qbCWMk546mAL9pZln0+QsN/yQ7fkucd4+yJPLrCBXNt8Ruk+Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/loader-runner": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz",
+ "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
+ }
+ },
+ "node_modules/loader-utils": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
+ "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^2.1.2"
+ },
+ "engines": {
+ "node": ">=8.9.0"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.assign": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz",
+ "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.defaultsdeep": {
+ "version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz",
+ "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.",
+ "license": "MIT"
+ },
+ "node_modules/lodash.kebabcase": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz",
+ "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.mapvalues": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz",
+ "integrity": "sha512-JPFqXFeZQ7BfS00H58kClY7SPVeHertPE0lNuCyZ26/XlN8TvakYD7b9bGyNmXbT/D3BbtPAAmq90gPWqLkxlQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.pick": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz",
+ "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==",
+ "deprecated": "This package is deprecated. Use destructuring assignment syntax instead.",
+ "license": "MIT"
+ },
+ "node_modules/lodash.transform": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz",
+ "integrity": "sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/log-symbols": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-symbols/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/log-symbols/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/log-symbols/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/loglevel": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz",
+ "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ },
+ "funding": {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/loglevel"
+ }
+ },
+ "node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.17",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz",
+ "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/md5.js": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
+ "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/mdn-data": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
+ "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memory-fs": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
+ "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge-source-map": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
+ "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "source-map": "^0.6.1"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "braces": "^2.3.1",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "extglob": "^2.0.4",
+ "fragment-cache": "^0.2.1",
+ "kind-of": "^6.0.2",
+ "nanomatch": "^1.2.9",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/miller-rabin": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz",
+ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.0.0",
+ "brorand": "^1.0.1"
+ },
+ "bin": {
+ "miller-rabin": "bin/miller-rabin"
+ }
+ },
+ "node_modules/miller-rabin/node_modules/bn.js": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mime": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/mini-css-extract-plugin": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz",
+ "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^1.1.0",
+ "normalize-url": "1.9.1",
+ "schema-utils": "^1.0.0",
+ "webpack-sources": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.4.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mini-css-extract-plugin/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
+ "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/minipass/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/mississippi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+ "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^3.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/mixin-deep": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "for-in": "^1.0.2",
+ "is-extendable": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/move-concurrently": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
+ "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==",
+ "deprecated": "This package is no longer supported.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "copy-concurrently": "^1.0.0",
+ "fs-write-stream-atomic": "^1.0.8",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.3"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/multicast-dns": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
+ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dns-packet": "^1.3.1",
+ "thunky": "^1.0.2"
+ },
+ "bin": {
+ "multicast-dns": "cli.js"
+ }
+ },
+ "node_modules/multicast-dns-service-types": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
+ "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
+ "node_modules/nan": {
+ "version": "2.22.2",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.2.tgz",
+ "integrity": "sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/nanomatch": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-diff": "^4.0.0",
+ "array-unique": "^0.3.2",
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "fragment-cache": "^0.2.1",
+ "is-windows": "^1.0.2",
+ "kind-of": "^6.0.2",
+ "object.pick": "^1.3.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/nice-try": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node_modules/node-addon-api": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
+ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/node-forge": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
+ "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==",
+ "dev": true,
+ "license": "(BSD-3-Clause OR GPL-2.0)",
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/node-libs-browser": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
+ "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.2.0",
+ "buffer": "^4.3.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
+ "crypto-browserify": "^3.11.0",
+ "domain-browser": "^1.1.1",
+ "events": "^3.0.0",
+ "https-browserify": "^1.0.0",
+ "os-browserify": "^0.3.0",
+ "path-browserify": "0.0.1",
+ "process": "^0.11.10",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.3.3",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.7.2",
+ "string_decoder": "^1.0.0",
+ "timers-browserify": "^2.0.4",
+ "tty-browserify": "0.0.0",
+ "url": "^0.11.0",
+ "util": "^0.11.0",
+ "vm-browserify": "^1.0.1"
+ }
+ },
+ "node_modules/node-libs-browser/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/normalize-package-data/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-range": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
+ "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/normalize-url": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
+ "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "object-assign": "^4.0.1",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/normalize-wheel": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz",
+ "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA=="
+ },
+ "node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/null-loader": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz",
+ "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/null-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/num2fraction": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz",
+ "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/object-assign": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "copy-descriptor": "^0.1.0",
+ "define-property": "^0.2.5",
+ "kind-of": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-copy/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-copy/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-hash": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
+ "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-is": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz",
+ "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/object-visit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.assign": {
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.getownpropertydescriptors": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz",
+ "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array.prototype.reduce": "^1.0.6",
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.2",
+ "es-object-atoms": "^1.0.0",
+ "gopd": "^1.0.1",
+ "safe-array-concat": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.values": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
+ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/obuf": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
+ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/on-headers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
+ "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open": {
+ "version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz",
+ "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/open/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/opener": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz",
+ "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==",
+ "dev": true,
+ "license": "(WTFPL OR MIT)",
+ "bin": {
+ "opener": "bin/opener-bin.js"
+ }
+ },
+ "node_modules/opn": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz",
+ "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-wsl": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/opn/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ora": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz",
+ "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^2.4.2",
+ "cli-cursor": "^2.1.0",
+ "cli-spinners": "^2.0.0",
+ "log-symbols": "^2.2.0",
+ "strip-ansi": "^5.2.0",
+ "wcwidth": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/cli-cursor": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+ "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "restore-cursor": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/ora/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ora/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/mimic-fn": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/onetime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+ "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/restore-cursor": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+ "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "onetime": "^2.0.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ora/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ora/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/os-browserify": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
+ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/os-tmpdir": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/own-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
+ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-intrinsic": "^1.2.6",
+ "object-keys": "^1.1.1",
+ "safe-push-apply": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/p-finally": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz",
+ "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-retry": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz",
+ "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "retry": "^0.12.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true,
+ "license": "(MIT AND Zlib)"
+ },
+ "node_modules/parallel-transform": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cyclist": "^1.0.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ }
+ },
+ "node_modules/param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-module/node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-asn1": {
+ "version": "5.1.7",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz",
+ "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "asn1.js": "^4.10.1",
+ "browserify-aes": "^1.2.0",
+ "evp_bytestokey": "^1.0.3",
+ "hash-base": "~3.0",
+ "pbkdf2": "^3.1.2",
+ "safe-buffer": "^5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/parse-asn1/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "error-ex": "^1.3.1",
+ "json-parse-better-errors": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
+ "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz",
+ "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parse5": "^6.0.1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/pascalcase": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz",
+ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-dirname": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-is-inside": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
+ "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==",
+ "dev": true,
+ "license": "(WTFPL OR MIT)"
+ },
+ "node_modules/path-key": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-to-regexp": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-type": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
+ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/path-type/node_modules/pify": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/pbkdf2": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz",
+ "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
+ "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pinkie": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinkie-promise": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pinkie": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pnp-webpack-plugin": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz",
+ "integrity": "sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ts-pnp": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/portfinder": {
+ "version": "1.0.36",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.36.tgz",
+ "integrity": "sha512-gMKUzCoP+feA7t45moaSx7UniU7PgGN3hA8acAB+3Qn7/js0/lJ07fYZlxt9riE9S3myyxDCyAFzSrLlta0c9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "async": "^3.2.6",
+ "debug": "^4.3.6"
+ },
+ "engines": {
+ "node": ">= 10.12"
+ }
+ },
+ "node_modules/posix-character-classes": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
+ "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "7.0.39",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz",
+ "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picocolors": "^0.2.1",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-calc": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz",
+ "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.27",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.0.2"
+ }
+ },
+ "node_modules/postcss-colormin": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz",
+ "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "color": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-colormin/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-convert-values": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz",
+ "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-convert-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-discard-comments": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz",
+ "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-duplicates": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz",
+ "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-empty": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz",
+ "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-discard-overridden": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz",
+ "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-load-config": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz",
+ "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cosmiconfig": "^5.0.0",
+ "import-cwd": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ }
+ },
+ "node_modules/postcss-loader": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz",
+ "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^1.1.0",
+ "postcss": "^7.0.0",
+ "postcss-load-config": "^2.0.0",
+ "schema-utils": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/postcss-loader/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/postcss-merge-longhand": {
+ "version": "4.0.11",
+ "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz",
+ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-color-names": "0.0.4",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "stylehacks": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-merge-rules": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz",
+ "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "cssnano-util-same-parent": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0",
+ "vendors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-minify-font-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz",
+ "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-minify-gradients": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz",
+ "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "is-color-stop": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-minify-params": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz",
+ "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "browserslist": "^4.0.0",
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-params/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-minify-selectors": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz",
+ "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/postcss-modules-extract-imports": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz",
+ "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss": "^7.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-local-by-default": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
+ "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "icss-utils": "^4.1.1",
+ "postcss": "^7.0.32",
+ "postcss-selector-parser": "^6.0.2",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-scope": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz",
+ "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "postcss": "^7.0.6",
+ "postcss-selector-parser": "^6.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/postcss-modules-values": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz",
+ "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "icss-utils": "^4.0.0",
+ "postcss": "^7.0.6"
+ }
+ },
+ "node_modules/postcss-normalize-charset": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz",
+ "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz",
+ "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-normalize-positions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz",
+ "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-normalize-repeat-style": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz",
+ "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-normalize-string": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz",
+ "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-normalize-timing-functions": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz",
+ "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-normalize-unicode": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz",
+ "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-normalize-url": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz",
+ "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^3.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-url/node_modules/normalize-url": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz",
+ "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-normalize-whitespace": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz",
+ "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-ordered-values": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz",
+ "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-util-get-arguments": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-reduce-initial": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz",
+ "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "caniuse-api": "^3.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz",
+ "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssnano-util-get-match": "^4.0.0",
+ "has": "^1.0.0",
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
+ "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-svgo": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz",
+ "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "postcss": "^7.0.0",
+ "postcss-value-parser": "^3.0.0",
+ "svgo": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-svgo/node_modules/postcss-value-parser": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz",
+ "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss-unique-selectors": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz",
+ "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "alphanum-sort": "^1.0.0",
+ "postcss": "^7.0.0",
+ "uniqs": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/postcss/node_modules/picocolors": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz",
+ "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prepend-http": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
+ "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
+ "license": "MIT",
+ "optional": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/pretty-error": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz",
+ "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.20",
+ "renderkid": "^2.0.4"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/progress": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/promise-inflight": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/prr": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pseudomap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/psl": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/lupomontero"
+ }
+ },
+ "node_modules/public-encrypt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz",
+ "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "browserify-rsa": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "parse-asn1": "^5.0.0",
+ "randombytes": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/public-encrypt/node_modules/bn.js": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
+ "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/pumpify": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ }
+ },
+ "node_modules/pumpify/node_modules/pump": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/q": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
+ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==",
+ "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.0",
+ "teleport": ">=0.2.0"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/query-string": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
+ "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/querystring-es3": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
+ "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.x"
+ }
+ },
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/randomfill": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz",
+ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "randombytes": "^2.0.5",
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg/node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz",
+ "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.18.0"
+ },
+ "funding": {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dev": true,
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/reflect.getprototypeof": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
+ "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.9",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.1",
+ "which-builtin-type": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regenerate": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regenerate-unicode-properties": {
+ "version": "10.2.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz",
+ "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regenerator-runtime": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
+ "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regenerator-transform": {
+ "version": "0.15.2",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz",
+ "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.8.4"
+ }
+ },
+ "node_modules/regex-not": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^3.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
+ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "set-function-name": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/regexpp": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
+ "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.5.0"
+ }
+ },
+ "node_modules/regexpu-core": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz",
+ "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "regenerate": "^1.4.2",
+ "regenerate-unicode-properties": "^10.2.0",
+ "regjsgen": "^0.8.0",
+ "regjsparser": "^0.12.0",
+ "unicode-match-property-ecmascript": "^2.0.0",
+ "unicode-match-property-value-ecmascript": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/regjsgen": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz",
+ "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/regjsparser": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz",
+ "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "jsesc": "~3.0.2"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
+ }
+ },
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/remove-trailing-separator": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/renderkid": {
+ "version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz",
+ "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "css-select": "^4.1.3",
+ "dom-converter": "^0.2.0",
+ "htmlparser2": "^6.1.0",
+ "lodash": "^4.17.21",
+ "strip-ansi": "^3.0.1"
+ }
+ },
+ "node_modules/renderkid/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/renderkid/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-element": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/repeat-string": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/request": {
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/resize-observer-polyfill": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==",
+ "license": "MIT"
+ },
+ "node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "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-cwd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
+ "integrity": "sha512-ccu8zQTrzVr954472aUVPLEcB3YpKSYR3cg/3lo1okzobPBM+1INXBbBZlDbnI/hbEocnf8j0QVo43hQKrbchg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-from": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
+ "integrity": "sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve-url": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
+ "deprecated": "https://github.com/lydell/resolve-url#deprecated",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ret": {
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/retry": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/rgb-regex": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz",
+ "integrity": "sha512-gDK5mkALDFER2YLqH6imYvK6g02gpNGM4ILDZ472EwWfXZnC2ZEpoB2ECXTyOVUKuk/bPJZMzwQPBYICzP+D3w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/rgba-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz",
+ "integrity": "sha512-zgn5OjNQXLUTdq8m17KdaicF6w89TZs8ZU8y0AYENIU6wG8GG6LLm0yLSiPY8DmaYmHdgRW8rnApjoT0fQRfMg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/ripemd160": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz",
+ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "node_modules/run-async": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
+ "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/run-queue": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "aproba": "^1.1.1"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
+ "node_modules/safe-array-concat": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-array-concat/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/safe-push-apply": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safe-push-apply/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/safe-regex": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ret": "~0.1.10"
+ }
+ },
+ "node_modules/safe-regex-test": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "is-regex": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/sass": {
+ "version": "1.86.3",
+ "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.3.tgz",
+ "integrity": "sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^4.0.0",
+ "immutable": "^5.0.2",
+ "source-map-js": ">=0.6.2 <2.0.0"
+ },
+ "bin": {
+ "sass": "sass.js"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "optionalDependencies": {
+ "@parcel/watcher": "^2.4.1"
+ }
+ },
+ "node_modules/sass-loader": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz",
+ "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "clone-deep": "^4.0.1",
+ "loader-utils": "^1.2.3",
+ "neo-async": "^2.6.1",
+ "schema-utils": "^2.6.1",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "fibers": ">= 3.1.0",
+ "node-sass": "^4.0.0",
+ "sass": "^1.3.0",
+ "webpack": "^4.36.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "fibers": {
+ "optional": true
+ },
+ "node-sass": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/sass-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/sass-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/schema-utils": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz",
+ "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.5",
+ "ajv": "^6.12.4",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/select-hose": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
+ "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/selfsigned": {
+ "version": "1.10.14",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.14.tgz",
+ "integrity": "sha512-lkjaiAye+wBZDCBsu5BGi0XiLRxeUlsGod5ZP924CRSEoGuZAw/f7y9RKu28rwTfiHVhdavhB0qH0INV6P1lEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "node-forge": "^0.10.0"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/send": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/send/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/send/node_modules/debug/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/send/node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/send/node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/serve-index": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
+ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.4",
+ "batch": "0.6.1",
+ "debug": "2.6.9",
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/serve-index/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/serve-index/node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/http-errors": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
+ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "depd": "~1.1.2",
+ "inherits": "2.0.3",
+ "setprototypeof": "1.1.0",
+ "statuses": ">= 1.4.0 < 2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-index/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/serve-index/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/serve-index/node_modules/setprototypeof": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
+ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/serve-index/node_modules/statuses": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
+ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/serve-static": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "~2.0.0",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.19.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/set-blocking": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
+ "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-proto": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
+ "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-value": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^2.0.1",
+ "is-extendable": "^0.1.1",
+ "is-plain-object": "^2.0.3",
+ "split-string": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/set-value/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
+ "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/sha.js": {
+ "version": "2.4.11",
+ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
+ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
+ "dev": true,
+ "license": "(MIT AND BSD-3-Clause)",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ },
+ "bin": {
+ "sha.js": "bin.js"
+ }
+ },
+ "node_modules/shallow-clone": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz",
+ "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
+ "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/simple-swizzle/node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/slash": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz",
+ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
+ "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "astral-regex": "^1.0.0",
+ "is-fullwidth-code-point": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/snapdragon": {
+ "version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "base": "^0.11.1",
+ "debug": "^2.2.0",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "map-cache": "^0.2.2",
+ "source-map": "^0.5.6",
+ "source-map-resolve": "^0.5.0",
+ "use": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.0",
+ "snapdragon-util": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-node/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon-util/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extendable": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/snapdragon/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/snapdragon/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/snapdragon/node_modules/source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sockjs": {
+ "version": "0.3.24",
+ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
+ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "faye-websocket": "^0.11.3",
+ "uuid": "^8.3.2",
+ "websocket-driver": "^0.7.4"
+ }
+ },
+ "node_modules/sockjs-client": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz",
+ "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^3.2.7",
+ "eventsource": "^2.0.2",
+ "faye-websocket": "^0.11.4",
+ "inherits": "^2.0.4",
+ "url-parse": "^1.5.10"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://tidelift.com/funding/github/npm/sockjs-client"
+ }
+ },
+ "node_modules/sockjs-client/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/sockjs/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/sort-keys": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
+ "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-plain-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sort-keys/node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-list-map": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz",
+ "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-resolve": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
+ "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "atob": "^2.1.2",
+ "decode-uri-component": "^0.2.0",
+ "resolve-url": "^0.2.1",
+ "source-map-url": "^0.4.0",
+ "urix": "^0.1.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/source-map-url": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
+ "deprecated": "See https://github.com/lydell/source-map-url#deprecated",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz",
+ "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
+ "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
+ "dev": true,
+ "license": "CC-BY-3.0"
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.21",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.21.tgz",
+ "integrity": "sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==",
+ "dev": true,
+ "license": "CC0-1.0"
+ },
+ "node_modules/spdy": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz",
+ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "handle-thing": "^2.0.0",
+ "http-deceiver": "^1.2.7",
+ "select-hose": "^2.0.0",
+ "spdy-transport": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/spdy-transport": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz",
+ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "detect-node": "^2.0.4",
+ "hpack.js": "^2.1.6",
+ "obuf": "^1.1.2",
+ "readable-stream": "^3.0.6",
+ "wbuf": "^1.7.3"
+ }
+ },
+ "node_modules/spdy-transport/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/split-string": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend-shallow": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ssri": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^3.1.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/stable": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
+ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
+ "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/stackframe": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz",
+ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/static-extend": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-property": "^0.2.5",
+ "object-copy": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-extend/node_modules/is-descriptor": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz",
+ "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-accessor-descriptor": "^1.0.1",
+ "is-data-descriptor": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/stream-browserify": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz",
+ "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/stream-each": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
+ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/stream-http": {
+ "version": "2.8.3",
+ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz",
+ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
+ }
+ },
+ "node_modules/stream-shift": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.3.tgz",
+ "integrity": "sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/strict-uri-encode": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string-convert": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz",
+ "integrity": "sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A==",
+ "license": "MIT"
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string.prototype.trim": {
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimend": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/string.prototype.trimstart": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
+ "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-eof": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz",
+ "integrity": "sha512-RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/stylehacks": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz",
+ "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "browserslist": "^4.0.0",
+ "postcss": "^7.0.0",
+ "postcss-selector-parser": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/stylehacks/node_modules/postcss-selector-parser": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "dot-prop": "^5.2.0",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
+ "dev": true
+ },
+ "node_modules/svgo": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz",
+ "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==",
+ "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^2.4.1",
+ "coa": "^2.0.2",
+ "css-select": "^2.0.0",
+ "css-select-base-adapter": "^0.1.1",
+ "css-tree": "1.0.0-alpha.37",
+ "csso": "^4.0.2",
+ "js-yaml": "^3.13.1",
+ "mkdirp": "~0.5.1",
+ "object.values": "^1.1.0",
+ "sax": "~1.2.4",
+ "stable": "^0.1.8",
+ "unquote": "~1.1.1",
+ "util.promisify": "~1.0.0"
+ },
+ "bin": {
+ "svgo": "bin/svgo"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/svgo/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svgo/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svgo/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/svgo/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/svgo/node_modules/css-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz",
+ "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^3.2.1",
+ "domutils": "^1.7.0",
+ "nth-check": "^1.0.2"
+ }
+ },
+ "node_modules/svgo/node_modules/css-what": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz",
+ "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/svgo/node_modules/dom-serializer": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "entities": "^2.0.0"
+ }
+ },
+ "node_modules/svgo/node_modules/domutils": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz",
+ "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "dom-serializer": "0",
+ "domelementtype": "1"
+ }
+ },
+ "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+ "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==",
+ "dev": true,
+ "license": "BSD-2-Clause"
+ },
+ "node_modules/svgo/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/svgo/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svgo/node_modules/nth-check": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+ "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "~1.0.0"
+ }
+ },
+ "node_modules/svgo/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table": {
+ "version": "5.4.6",
+ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
+ "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "ajv": "^6.10.2",
+ "lodash": "^4.17.14",
+ "slice-ansi": "^2.1.0",
+ "string-width": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/table/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/table/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
+ "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
+ "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "commander": "^2.20.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.12"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz",
+ "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cacache": "^12.0.2",
+ "find-cache-dir": "^2.1.0",
+ "is-wsl": "^1.1.0",
+ "schema-utils": "^1.0.0",
+ "serialize-javascript": "^4.0.0",
+ "source-map": "^0.6.1",
+ "terser": "^4.1.2",
+ "webpack-sources": "^1.4.0",
+ "worker-farm": "^1.7.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
+ "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commondir": "^1.0.1",
+ "make-dir": "^2.0.0",
+ "pkg-dir": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/is-wsl": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz",
+ "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/make-dir": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
+ "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pify": "^4.0.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/pkg-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
+ "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/terser-webpack-plugin/node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/thread-loader": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/thread-loader/-/thread-loader-2.1.3.tgz",
+ "integrity": "sha512-wNrVKH2Lcf8ZrWxDF/khdlLlsTMczdcwPA9VEK4c2exlEPynYWxi9op3nPTo5lAnDIkE0rQEB3VBP+4Zncc9Hg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-runner": "^2.3.1",
+ "loader-utils": "^1.1.0",
+ "neo-async": "^2.6.0"
+ },
+ "engines": {
+ "node": ">= 6.9.0 <7.0.0 || >= 8.9.0"
+ },
+ "peerDependencies": {
+ "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0"
+ }
+ },
+ "node_modules/thread-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/thread-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/throttle-debounce": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-1.1.0.tgz",
+ "integrity": "sha512-XH8UiPCQcWNuk2LYePibW/4qL97+ZQ1AN3FNXwZRBNPPowo/NRU5fAlDCSNBJIYCKbioZfuYtMhG4quqoJhVzg==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/thunky": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
+ "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/timers-browserify": {
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz",
+ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "setimmediate": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tmp": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
+ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "os-tmpdir": "~1.0.2"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "node_modules/to-arraybuffer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz",
+ "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/to-object-path": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-object-path/node_modules/kind-of": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-property": "^2.0.2",
+ "extend-shallow": "^3.0.2",
+ "regex-not": "^1.0.2",
+ "safe-regex": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^3.0.0",
+ "repeat-string": "^1.6.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/toposort": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz",
+ "integrity": "sha512-FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tough-cookie": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/tryer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
+ "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ts-pnp": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz",
+ "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true,
+ "license": "0BSD"
+ },
+ "node_modules/tty-browserify": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz",
+ "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true,
+ "license": "Unlicense"
+ },
+ "node_modules/type-check": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/typed-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "es-errors": "^1.3.0",
+ "is-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/typed-array-byte-length": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.8",
+ "for-each": "^0.3.3",
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.14"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-byte-offset": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "for-each": "^0.3.3",
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.15",
+ "reflect.getprototypeof": "^1.0.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typed-array-length": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "is-typed-array": "^1.1.13",
+ "possible-typed-array-names": "^1.0.0",
+ "reflect.getprototypeof": "^1.0.6"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uglify-js": {
+ "version": "3.4.10",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
+ "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "commander": "~2.19.0",
+ "source-map": "~0.6.1"
+ },
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/uglify-js/node_modules/commander": {
+ "version": "2.19.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+ "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unbox-primitive": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.3",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "which-boxed-primitive": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unicode-canonical-property-names-ecmascript": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
+ "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-ecmascript": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "unicode-canonical-property-names-ecmascript": "^2.0.0",
+ "unicode-property-aliases-ecmascript": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-match-property-value-ecmascript": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz",
+ "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/unicode-property-aliases-ecmascript": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz",
+ "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/union-value": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "get-value": "^2.0.6",
+ "is-extendable": "^0.1.1",
+ "set-value": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/union-value/node_modules/is-extendable": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/uniq": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz",
+ "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uniqs": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz",
+ "integrity": "sha512-mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unique-filename": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "unique-slug": "^2.0.0"
+ }
+ },
+ "node_modules/unique-slug": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ }
+ },
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/unquote": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
+ "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unset-value": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-value": "^0.3.1",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "get-value": "^2.0.3",
+ "has-values": "^0.1.4",
+ "isobject": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isarray": "1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/unset-value/node_modules/has-values": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/upath": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urix": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
+ "deprecated": "Please see https://github.com/lydell/urix#deprecated",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/url": {
+ "version": "0.11.4",
+ "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz",
+ "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^1.4.1",
+ "qs": "^6.12.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/url-loader": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz",
+ "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^1.2.3",
+ "mime": "^2.4.4",
+ "schema-utils": "^2.5.0"
+ },
+ "engines": {
+ "node": ">= 8.9.0"
+ },
+ "peerDependencies": {
+ "file-loader": "*",
+ "webpack": "^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "file-loader": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/url-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/url-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/url/node_modules/punycode": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/url/node_modules/qs": {
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz",
+ "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/use": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz",
+ "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/util.promisify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
+ "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-properties": "^1.1.2",
+ "object.getownpropertydescriptors": "^2.0.3"
+ }
+ },
+ "node_modules/util/node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/utila": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
+ "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
+ "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/vee-validate": {
+ "version": "3.4.15",
+ "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-3.4.15.tgz",
+ "integrity": "sha512-qEtvq9X2N7l5pjBe/6YGrrIBHxJA4KTrb3QrER3qzM7fzkH730m8LyVWMIzM47l//618nlUa7VvTdMFTRKr8tQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "vue": "^2.5.18"
+ }
+ },
+ "node_modules/vendors": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "node_modules/verror/node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vm-browserify": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vue": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-2.7.16.tgz",
+ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==",
+ "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.",
+ "license": "MIT",
+ "dependencies": {
+ "@vue/compiler-sfc": "2.7.16",
+ "csstype": "^3.1.0"
+ }
+ },
+ "node_modules/vue-cli-plugin-vuetify": {
+ "version": "2.5.8",
+ "resolved": "https://registry.npmjs.org/vue-cli-plugin-vuetify/-/vue-cli-plugin-vuetify-2.5.8.tgz",
+ "integrity": "sha512-uqi0/URJETJBbWlQHD1l0pnY7JN8Ytu+AL1fw50HFlGByPa8/xx+mq19GkFXA9FcwFT01IqEc/TkxMPugchomg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "null-loader": "^4.0.1",
+ "semver": "^7.1.2",
+ "shelljs": "^0.8.3"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "sass-loader": {
+ "optional": true
+ },
+ "vuetify-loader": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-cli-plugin-vuetify/node_modules/semver": {
+ "version": "7.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
+ "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vue-eslint-parser": {
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
+ "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "eslint-scope": "^5.1.1",
+ "eslint-visitor-keys": "^1.1.0",
+ "espree": "^6.2.1",
+ "esquery": "^1.4.0",
+ "lodash": "^4.17.21",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8.10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.0.0"
+ }
+ },
+ "node_modules/vue-hot-reload-api": {
+ "version": "2.3.4",
+ "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
+ "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vue-loader": {
+ "version": "15.11.1",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.11.1.tgz",
+ "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vue/component-compiler-utils": "^3.1.0",
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.1.0",
+ "vue-hot-reload-api": "^2.3.0",
+ "vue-style-loader": "^4.1.0"
+ },
+ "peerDependencies": {
+ "css-loader": "*",
+ "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "cache-loader": {
+ "optional": true
+ },
+ "prettier": {
+ "optional": true
+ },
+ "vue-template-compiler": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-loader-v16": {
+ "name": "vue-loader",
+ "version": "16.8.3",
+ "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
+ "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "hash-sum": "^2.0.0",
+ "loader-utils": "^2.0.0"
+ },
+ "peerDependencies": {
+ "webpack": "^4.1.0 || ^5.0.0-0"
+ }
+ },
+ "node_modules/vue-loader-v16/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "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/vue-loader/node_modules/hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vue-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/vue-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/vue-masonry-wall": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/vue-masonry-wall/-/vue-masonry-wall-0.3.2.tgz",
+ "integrity": "sha512-uy/tY9Lz6zVZCXmS78sv5u1yf70gAC+ElFXdV8miJfLiNnzXXt2i03I8sccx2YXDKk1IOZv6wDbKTUL8ethvfw==",
+ "license": "MIT",
+ "dependencies": {
+ "vue-observe-visibility": "^0.4.6"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "lodash": "^4.17.15",
+ "vue": "^2.6.10"
+ }
+ },
+ "node_modules/vue-observe-visibility": {
+ "version": "0.4.6",
+ "resolved": "https://registry.npmjs.org/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz",
+ "integrity": "sha512-xo0CEVdkjSjhJoDdLSvoZoQrw/H2BlzB5jrCBKGZNXN2zdZgMuZ9BKrxXDjNP2AxlcCoKc8OahI3F3r3JGLv2Q==",
+ "license": "MIT"
+ },
+ "node_modules/vue-router": {
+ "version": "3.6.5",
+ "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz",
+ "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==",
+ "license": "MIT"
+ },
+ "node_modules/vue-scrollactive": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/vue-scrollactive/-/vue-scrollactive-0.9.3.tgz",
+ "integrity": "sha512-W7Z2EQGDjnvgZ4h+/bpRVjiVU3bKWQDmT9f0bUL+zq3C/VSZaQiQ+qzWlMYDEpJbm13wJ6KIE6ry3HKLVyU4cQ==",
+ "license": "MIT",
+ "dependencies": {
+ "bezier-easing": "^2.0.3"
+ }
+ },
+ "node_modules/vue-slick-carousel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/vue-slick-carousel/-/vue-slick-carousel-1.0.6.tgz",
+ "integrity": "sha512-1CN/hpWC8m1U/eO7Kuc71jntJqdg6Z/ieLji21OPfQUhs8ZYnnGhQSu1covpa3IyuovM9T5puPCVgexs3DDF5A==",
+ "license": "MIT",
+ "dependencies": {
+ "enquire.js": "2.1.6",
+ "json2mq": "0.2.0",
+ "lodash.assign": "^4.2.0",
+ "lodash.debounce": "^4.0.8",
+ "lodash.get": "^4.4.2",
+ "lodash.pick": "^4.4.0",
+ "resize-observer-polyfill": "1.5.1",
+ "vue": "^2.6.10"
+ }
+ },
+ "node_modules/vue-style-loader": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz",
+ "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash-sum": "^1.0.2",
+ "loader-utils": "^1.0.2"
+ }
+ },
+ "node_modules/vue-style-loader/node_modules/hash-sum": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz",
+ "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vue-style-loader/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/vue-style-loader/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/vue-template-compiler": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
+ "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "de-indent": "^1.0.2",
+ "he": "^1.2.0"
+ }
+ },
+ "node_modules/vue-template-es2015-compiler": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz",
+ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vue/node_modules/@vue/compiler-sfc": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-2.7.16.tgz",
+ "integrity": "sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==",
+ "dependencies": {
+ "@babel/parser": "^7.23.5",
+ "postcss": "^8.4.14",
+ "source-map": "^0.6.1"
+ },
+ "optionalDependencies": {
+ "prettier": "^1.18.2 || ^2.0.0"
+ }
+ },
+ "node_modules/vue/node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "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.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/vuetify": {
+ "version": "2.6.13",
+ "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-2.6.13.tgz",
+ "integrity": "sha512-HhJi52IzhfrmWFwcYFUiA1GRIzz9smbR06Lj61Ml5HgD5PBcMiDywUnNPVid1VsXO4qWpBU6kO3O89uTxH1yzw==",
+ "license": "MIT",
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/johnleider"
+ },
+ "peerDependencies": {
+ "vue": "^2.6.4"
+ }
+ },
+ "node_modules/vuetify-loader": {
+ "version": "1.9.2",
+ "resolved": "https://registry.npmjs.org/vuetify-loader/-/vuetify-loader-1.9.2.tgz",
+ "integrity": "sha512-8PP2w7aAs/rjA+Izec6qY7sHVb75MNrGQrDOTZJ5IEnvl+NiFhVpU2iWdRDZ3eMS842cWxSWStvkr+KJJKy+Iw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.2.0",
+ "decache": "^4.6.0",
+ "file-loader": "^6.2.0",
+ "loader-utils": "^2.0.0"
+ },
+ "peerDependencies": {
+ "gm": "^1.23.0",
+ "pug": "^2.0.0 || ^3.0.0",
+ "sharp": "*",
+ "vue": "^2.7.2",
+ "vuetify": "^1.3.0 || ^2.0.0",
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "gm": {
+ "optional": true
+ },
+ "pug": {
+ "optional": true
+ },
+ "sharp": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vuetify-loader/node_modules/acorn": {
+ "version": "8.14.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/vuetify-loader/node_modules/acorn-walk": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/vuetify-loader/node_modules/file-loader": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz",
+ "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "loader-utils": "^2.0.0",
+ "schema-utils": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/vuetify-loader/node_modules/schema-utils": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
+ "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/json-schema": "^7.0.8",
+ "ajv": "^6.12.5",
+ "ajv-keywords": "^3.5.2"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ }
+ },
+ "node_modules/watchpack": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
+ "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "neo-async": "^2.5.0"
+ },
+ "optionalDependencies": {
+ "chokidar": "^3.4.1",
+ "watchpack-chokidar2": "^2.0.1"
+ }
+ },
+ "node_modules/watchpack-chokidar2": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz",
+ "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "chokidar": "^2.1.8"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/watchpack-chokidar2/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/watchpack/node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/watchpack/node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/watchpack/node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "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/watchpack/node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/watchpack/node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/watchpack/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "optional": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/watchpack/node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/watchpack/node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/watchpack/node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/watchpack/node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/wbuf": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
+ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/wcwidth": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+ "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/webpack": {
+ "version": "4.47.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz",
+ "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/wasm-edit": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "acorn": "^6.4.1",
+ "ajv": "^6.10.2",
+ "ajv-keywords": "^3.4.1",
+ "chrome-trace-event": "^1.0.2",
+ "enhanced-resolve": "^4.5.0",
+ "eslint-scope": "^4.0.3",
+ "json-parse-better-errors": "^1.0.2",
+ "loader-runner": "^2.4.0",
+ "loader-utils": "^1.2.3",
+ "memory-fs": "^0.4.1",
+ "micromatch": "^3.1.10",
+ "mkdirp": "^0.5.3",
+ "neo-async": "^2.6.1",
+ "node-libs-browser": "^2.2.1",
+ "schema-utils": "^1.0.0",
+ "tapable": "^1.1.3",
+ "terser-webpack-plugin": "^1.4.3",
+ "watchpack": "^1.7.4",
+ "webpack-sources": "^1.4.1"
+ },
+ "bin": {
+ "webpack": "bin/webpack.js"
+ },
+ "engines": {
+ "node": ">=6.11.5"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/webpack"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ },
+ "webpack-command": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-bundle-analyzer": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-3.9.0.tgz",
+ "integrity": "sha512-Ob8amZfCm3rMB1ScjQVlbYYUEJyEjdEtQ92jqiFUYt5VkEeO2v5UMbv49P/gnmCZm3A6yaFQzCBvpZqN4MUsdA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "acorn-walk": "^7.1.1",
+ "bfj": "^6.1.1",
+ "chalk": "^2.4.1",
+ "commander": "^2.18.0",
+ "ejs": "^2.6.1",
+ "express": "^4.16.3",
+ "filesize": "^3.6.1",
+ "gzip-size": "^5.0.0",
+ "lodash": "^4.17.19",
+ "mkdirp": "^0.5.1",
+ "opener": "^1.5.1",
+ "ws": "^6.0.0"
+ },
+ "bin": {
+ "webpack-bundle-analyzer": "lib/bin/analyzer.js"
+ },
+ "engines": {
+ "node": ">= 6.14.4"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-bundle-analyzer/node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-chain": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz",
+ "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==",
+ "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
+ "dev": true,
+ "license": "MPL-2.0",
+ "dependencies": {
+ "deepmerge": "^1.5.2",
+ "javascript-stringify": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/webpack-dev-middleware": {
+ "version": "3.7.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz",
+ "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "memory-fs": "^0.4.1",
+ "mime": "^2.4.4",
+ "mkdirp": "^0.5.1",
+ "range-parser": "^1.2.1",
+ "webpack-log": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server": {
+ "version": "3.11.3",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz",
+ "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-html-community": "0.0.8",
+ "bonjour": "^3.5.0",
+ "chokidar": "^2.1.8",
+ "compression": "^1.7.4",
+ "connect-history-api-fallback": "^1.6.0",
+ "debug": "^4.1.1",
+ "del": "^4.1.1",
+ "express": "^4.17.1",
+ "html-entities": "^1.3.1",
+ "http-proxy-middleware": "0.19.1",
+ "import-local": "^2.0.0",
+ "internal-ip": "^4.3.0",
+ "ip": "^1.1.5",
+ "is-absolute-url": "^3.0.3",
+ "killable": "^1.0.1",
+ "loglevel": "^1.6.8",
+ "opn": "^5.5.0",
+ "p-retry": "^3.0.1",
+ "portfinder": "^1.0.26",
+ "schema-utils": "^1.0.0",
+ "selfsigned": "^1.10.8",
+ "semver": "^6.3.0",
+ "serve-index": "^1.9.1",
+ "sockjs": "^0.3.21",
+ "sockjs-client": "^1.5.0",
+ "spdy": "^4.0.2",
+ "strip-ansi": "^3.0.1",
+ "supports-color": "^6.1.0",
+ "url": "^0.11.0",
+ "webpack-dev-middleware": "^3.7.2",
+ "webpack-log": "^2.0.0",
+ "ws": "^6.2.1",
+ "yargs": "^13.3.2"
+ },
+ "bin": {
+ "webpack-dev-server": "bin/webpack-dev-server.js"
+ },
+ "engines": {
+ "node": ">= 6.11.5"
+ },
+ "peerDependencies": {
+ "webpack": "^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "webpack-cli": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/anymatch": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "micromatch": "^3.1.4",
+ "normalize-path": "^2.1.1"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "remove-trailing-separator": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/chokidar": {
+ "version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "^2.0.0",
+ "async-each": "^1.0.1",
+ "braces": "^2.3.2",
+ "glob-parent": "^3.1.0",
+ "inherits": "^2.0.3",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "normalize-path": "^3.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.2.1",
+ "upath": "^1.1.1"
+ },
+ "optionalDependencies": {
+ "fsevents": "^1.2.7"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
+ "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/webpack-dev-server/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
+ "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/webpack-dev-server/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz",
+ "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "http-proxy": "^1.17.0",
+ "is-glob": "^4.0.0",
+ "lodash": "^4.17.11",
+ "micromatch": "^3.1.10"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-absolute-url": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz",
+ "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/path-exists": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/readdirp": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "graceful-fs": "^4.1.11",
+ "micromatch": "^3.1.10",
+ "readable-stream": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
+ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/supports-color": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
+ "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
+ "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
+ "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
+ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/yargs": {
+ "version": "13.3.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
+ "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.2"
+ }
+ },
+ "node_modules/webpack-dev-server/node_modules/yargs-parser": {
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/webpack-log": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz",
+ "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-colors": "^3.0.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/webpack-merge": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
+ "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lodash": "^4.17.15"
+ }
+ },
+ "node_modules/webpack-sources": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz",
+ "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "source-list-map": "^2.0.0",
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/webpack/node_modules/acorn": {
+ "version": "6.4.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
+ "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/webpack/node_modules/eslint-scope": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz",
+ "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
+ }
+ },
+ "node_modules/webpack/node_modules/loader-utils": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz",
+ "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "big.js": "^5.2.2",
+ "emojis-list": "^3.0.0",
+ "json5": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/webpack/node_modules/schema-utils": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz",
+ "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.1.0",
+ "ajv-errors": "^1.0.0",
+ "ajv-keywords": "^3.1.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/websocket-driver": {
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
+ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "http-parser-js": ">=0.5.1",
+ "safe-buffer": ">=5.1.0",
+ "websocket-extensions": ">=0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-bigint": "^1.1.0",
+ "is-boolean-object": "^1.2.1",
+ "is-number-object": "^1.1.1",
+ "is-string": "^1.1.1",
+ "is-symbol": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-builtin-type": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "function.prototype.name": "^1.1.6",
+ "has-tostringtag": "^1.0.2",
+ "is-async-function": "^2.0.0",
+ "is-date-object": "^1.1.0",
+ "is-finalizationregistry": "^1.1.0",
+ "is-generator-function": "^1.0.10",
+ "is-regex": "^1.2.1",
+ "is-weakref": "^1.0.2",
+ "isarray": "^2.0.5",
+ "which-boxed-primitive": "^1.1.0",
+ "which-collection": "^1.0.2",
+ "which-typed-array": "^1.1.16"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-builtin-type/node_modules/isarray": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz",
+ "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-map": "^2.0.3",
+ "is-set": "^2.0.3",
+ "is-weakmap": "^2.0.2",
+ "is-weakset": "^2.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-module": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz",
+ "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.19",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz",
+ "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.4",
+ "for-each": "^0.3.5",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/worker-farm": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
+ "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "errno": "~0.1.7"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/write": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
+ "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "mkdirp": "^0.5.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/ws": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
+ "integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yargs/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/yargs/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/yargs/node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yorkie": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yorkie/-/yorkie-2.0.0.tgz",
+ "integrity": "sha512-jcKpkthap6x63MB4TxwCyuIGkV0oYP/YRyuQU5UO0Yz/E/ZAu+653/uov+phdmO54n6BcvFRyyt0RRrWdN2mpw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^0.8.0",
+ "is-ci": "^1.0.10",
+ "normalize-path": "^1.0.0",
+ "strip-indent": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yorkie/node_modules/cross-spawn": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
+ "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "lru-cache": "^4.0.1",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "node_modules/yorkie/node_modules/execa": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-0.8.0.tgz",
+ "integrity": "sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yorkie/node_modules/get-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yorkie/node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/yorkie/node_modules/normalize-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-1.0.0.tgz",
+ "integrity": "sha512-7WyT0w8jhpDStXRq5836AMmihQwq2nrUVQrgjvUo/p/NZf9uy/MeJ246lBJVmWuYXMlJuG9BNZHF0hWjfTbQUA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/yorkie/node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
+ "dev": true,
+ "license": "ISC"
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..4905720
--- /dev/null
+++ b/package.json
@@ -0,0 +1,56 @@
+{
+ "name": "rainfo",
+ "version": "1.1.1",
+ "private": true,
+ "scripts": {
+ "serve": "vue-cli-service serve",
+ "build": "vue-cli-service build",
+ "lint": "vue-cli-service lint"
+ },
+ "dependencies": {
+ "@mdi/font": "^5.6.55",
+ "core-js": "^3.6.5",
+ "element-ui": "^2.15.14",
+ "feather-icons": "^4.28.0",
+ "hooper": "^0.3.4",
+ "vee-validate": "^3.4.5",
+ "vue": "^2.6.11",
+ "vue-masonry-wall": "^0.3.2",
+ "vue-router": "^3.4.5",
+ "vue-scrollactive": "^0.9.3",
+ "vue-slick-carousel": "^1.0.6",
+ "vuetify": "^2.2.11"
+ },
+ "devDependencies": {
+ "@vue/cli-plugin-babel": "^4.5.0",
+ "@vue/cli-plugin-eslint": "^4.5.0",
+ "@vue/cli-service": "^4.5.0",
+ "babel-eslint": "^10.1.0",
+ "eslint": "^6.7.2",
+ "eslint-plugin-vue": "^6.2.2",
+ "sass": "^1.19.0",
+ "sass-loader": "^8.0.0",
+ "vue-cli-plugin-vuetify": "^2.0.9",
+ "vue-template-compiler": "^2.6.11",
+ "vuetify-loader": "^1.3.0"
+ },
+ "eslintConfig": {
+ "root": true,
+ "env": {
+ "node": true
+ },
+ "extends": [
+ "plugin:vue/essential",
+ "eslint:recommended"
+ ],
+ "parserOptions": {
+ "parser": "babel-eslint"
+ },
+ "rules": {}
+ },
+ "browserslist": [
+ "> 1%",
+ "last 2 versions",
+ "not dead"
+ ]
+}
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..b40c169
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/public/index.html b/public/index.html
new file mode 100644
index 0000000..e69bfd9
--- /dev/null
+++ b/public/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+ YOLO助手
+
+
+
+
+ We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
+ Please enable it to continue.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/App.vue b/src/App.vue
new file mode 100644
index 0000000..dacb82c
--- /dev/null
+++ b/src/App.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/img/ajax-loader.gif b/src/assets/img/ajax-loader.gif
new file mode 100644
index 0000000..e0e6e97
Binary files /dev/null and b/src/assets/img/ajax-loader.gif differ
diff --git a/src/assets/img/award/awards-1.jpg b/src/assets/img/award/awards-1.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/award/awards-1.jpg differ
diff --git a/src/assets/img/award/awards-2.jpg b/src/assets/img/award/awards-2.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/award/awards-2.jpg differ
diff --git a/src/assets/img/award/awards-3.jpg b/src/assets/img/award/awards-3.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/award/awards-3.jpg differ
diff --git a/src/assets/img/award/awards-4.jpg b/src/assets/img/award/awards-4.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/award/awards-4.jpg differ
diff --git a/src/assets/img/bg/bcg_slide-4.jpg b/src/assets/img/bg/bcg_slide-4.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bcg_slide-4.jpg differ
diff --git a/src/assets/img/bg/bg-image-1.jpg b/src/assets/img/bg/bg-image-1.jpg
new file mode 100644
index 0000000..9d6461f
Binary files /dev/null and b/src/assets/img/bg/bg-image-1.jpg differ
diff --git a/src/assets/img/bg/bg-image-10.jpg b/src/assets/img/bg/bg-image-10.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-10.jpg differ
diff --git a/src/assets/img/bg/bg-image-11.jpg b/src/assets/img/bg/bg-image-11.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-11.jpg differ
diff --git a/src/assets/img/bg/bg-image-12.jpg b/src/assets/img/bg/bg-image-12.jpg
new file mode 100644
index 0000000..4bac3ff
Binary files /dev/null and b/src/assets/img/bg/bg-image-12.jpg differ
diff --git a/src/assets/img/bg/bg-image-13.jpg b/src/assets/img/bg/bg-image-13.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-13.jpg differ
diff --git a/src/assets/img/bg/bg-image-14.jpg b/src/assets/img/bg/bg-image-14.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-14.jpg differ
diff --git a/src/assets/img/bg/bg-image-15.jpg b/src/assets/img/bg/bg-image-15.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-15.jpg differ
diff --git a/src/assets/img/bg/bg-image-16.jpg b/src/assets/img/bg/bg-image-16.jpg
new file mode 100644
index 0000000..cc56334
Binary files /dev/null and b/src/assets/img/bg/bg-image-16.jpg differ
diff --git a/src/assets/img/bg/bg-image-17.jpg b/src/assets/img/bg/bg-image-17.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-17.jpg differ
diff --git a/src/assets/img/bg/bg-image-2.jpg b/src/assets/img/bg/bg-image-2.jpg
new file mode 100644
index 0000000..cc56334
Binary files /dev/null and b/src/assets/img/bg/bg-image-2.jpg differ
diff --git a/src/assets/img/bg/bg-image-3.jpg b/src/assets/img/bg/bg-image-3.jpg
new file mode 100644
index 0000000..4bac3ff
Binary files /dev/null and b/src/assets/img/bg/bg-image-3.jpg differ
diff --git a/src/assets/img/bg/bg-image-4.jpg b/src/assets/img/bg/bg-image-4.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-4.jpg differ
diff --git a/src/assets/img/bg/bg-image-5.jpg b/src/assets/img/bg/bg-image-5.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-5.jpg differ
diff --git a/src/assets/img/bg/bg-image-6.jpg b/src/assets/img/bg/bg-image-6.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-6.jpg differ
diff --git a/src/assets/img/bg/bg-image-7.jpg b/src/assets/img/bg/bg-image-7.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-7.jpg differ
diff --git a/src/assets/img/bg/bg-image-8.jpg b/src/assets/img/bg/bg-image-8.jpg
new file mode 100644
index 0000000..a0cddbd
Binary files /dev/null and b/src/assets/img/bg/bg-image-8.jpg differ
diff --git a/src/assets/img/bg/bg-image-9.jpg b/src/assets/img/bg/bg-image-9.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/bg/bg-image-9.jpg differ
diff --git a/src/assets/img/chevron-left.svg b/src/assets/img/chevron-left.svg
new file mode 100644
index 0000000..747d46d
--- /dev/null
+++ b/src/assets/img/chevron-left.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/img/chevron-right.svg b/src/assets/img/chevron-right.svg
new file mode 100644
index 0000000..258de41
--- /dev/null
+++ b/src/assets/img/chevron-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/1.rar b/src/assets/img/demos/2025-04/1.rar
new file mode 100644
index 0000000..a715863
Binary files /dev/null and b/src/assets/img/demos/2025-04/1.rar differ
diff --git a/src/assets/img/demos/2025-04/4级用户sql.txt b/src/assets/img/demos/2025-04/4级用户sql.txt
new file mode 100644
index 0000000..e3e4ee8
--- /dev/null
+++ b/src/assets/img/demos/2025-04/4级用户sql.txt
@@ -0,0 +1,47 @@
+SELECT
+ h.host_id,
+ h.host_name,
+ h.country,
+ h.hosts_source,
+ h.comment,
+ h.useable,
+ hi.info_type as hi_info_type,
+ hi.info_value as hi_info_value,
+ hi.part_month as hi_part_month
+ FROM (
+ SELECT DISTINCT
+ hos.host_id,
+ hs.host_name,
+ hs.country,
+ hs.hosts_source,
+ hos.comment,
+ hos.useable
+ FROM host_of_users hos
+ LEFT JOIN hosts hs ON hos.tenant_id = hs.tenant_id AND hos.host_id = hs.host_id
+
+ INNER JOIN hosts_info hi_filter ON hos.host_id = hi_filter.hosts_id
+ AND hi_filter.info_type = #{params.dataType}
+ AND CAST(hi_filter.info_value AS SIGNED) >= #{params.dataStart}
+ AND CAST(hi_filter.info_value AS SIGNED) #{params.dataEnd}
+
+
+
+ AND hos.owner_by = #{params.userId}
+
+
+ AND hos.tenant_id = #{params.tenantId}
+
+
+ AND hs.country IN
+ (SELECT country_name FROM country_info WHERE country_group_name = #{params.region})
+
+
+ AND hs.update_dt = #{params.searchTime}
+
+
+ LIMIT #{page.size} OFFSET #{page.current}
+ ) h
+ INNER JOIN hosts_info hi ON h.host_id = hi.hosts_id
+
+ AND hi.part_month = #{params.searchTime}
+
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/AppBar (2).vue b/src/assets/img/demos/2025-04/AppBar (2).vue
new file mode 100644
index 0000000..fe18e72
--- /dev/null
+++ b/src/assets/img/demos/2025-04/AppBar (2).vue
@@ -0,0 +1,710 @@
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Credenciales backstage
+
+ Correo
+
+
+
+ Contraseña
+
+
+
+
Guía
+
+
+
+
+
Inicia sesión con las credenciales y agrega al creador
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/img/demos/2025-04/AppBar.vue b/src/assets/img/demos/2025-04/AppBar.vue
new file mode 100644
index 0000000..321eadd
--- /dev/null
+++ b/src/assets/img/demos/2025-04/AppBar.vue
@@ -0,0 +1,635 @@
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Credenciales backstage
+
+ Correo
+
+
+
+ Contraseña
+
+
+
+
Guía
+
+
+
+
+
Inicia sesión con las credenciales y agrega al creador
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/img/demos/2025-04/Clash.for.Windows-0.20.39-win.zip b/src/assets/img/demos/2025-04/Clash.for.Windows-0.20.39-win.zip
new file mode 100644
index 0000000..f09d548
Binary files /dev/null and b/src/assets/img/demos/2025-04/Clash.for.Windows-0.20.39-win.zip differ
diff --git a/src/assets/img/demos/2025-04/JsInteraction.py b/src/assets/img/demos/2025-04/JsInteraction.py
new file mode 100644
index 0000000..28af99c
--- /dev/null
+++ b/src/assets/img/demos/2025-04/JsInteraction.py
@@ -0,0 +1,248 @@
+import json
+import threading
+from PySide6.QtCore import QObject, Slot, QUrl
+from PySide6.QtGui import QDesktopServices
+
+from utils.countrycode import get_country_id_with_name
+from utils.tiktokAPI import batch_check_anchor
+from utils.tiktok_cookies import monitor_url_and_cookies
+
+
+# 爬虫全局配置
+class fetch_data_config:
+ cookies_dict = {}
+
+ # msToken
+ msToken = "mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE="
+
+ # ehaders
+ sid_guard = "4da643b0f71c914bc520343c2df39737%7C1744177601%7C15551757%7CMon%2C+06-Oct-2025+05%3A42%3A38+GMT"
+
+ # cookie
+ cookie = ""
+
+ # 当前国家
+ country = ""
+
+ # 国家code
+ regin = ""
+
+ # 用户id
+ ownerId = ""
+
+ # 租户id
+ tenantId = ""
+
+ # 脚本启动状态
+ isStart = False
+
+ # tk后台管理账号
+ tkBackStageAccounts = []
+
+ # 金币相关
+ class gold:
+ # 最大
+ max = 0
+ # 最小
+ min = 0
+
+ # 粉丝相关
+ class fans:
+ # 最大
+ max = 0
+ # 最小
+ min = 0
+
+ # 爬取速度相关
+ class frequency:
+ # 最大
+ day = 0
+ hour = 0
+
+# js交互类
+class Bridge(QObject):
+
+ def __init__(self, parent=None):
+ super().__init__(parent)
+
+ # 传值给js 此为测试方法
+ @Slot(str,result=str)
+ def stringToJs(self, name):
+ print(name)
+ return name
+
+ # 获取js的传值 此为测试方法
+ @Slot(str)
+ def stringFromJs(self, str):
+ print(str)
+
+ # 直接调用 此为测试方法
+ @Slot()
+ def doSomething(self):
+ print("执行了一些代码")
+
+ # 爬虫配置的相关配置
+ @Slot(str, result=int)
+ def fetchDataConfig(self,data):
+
+ from infos.autohostinfo import checkAnchorObjs
+
+ dict = json.loads(data)
+ try:
+ fetch_data_config.country = dict["country"]
+ regin = get_country_id_with_name(dict["country"])
+ fetch_data_config.regin = regin
+ fetch_data_config.ownerId = dict["userId"]
+ fetch_data_config.tenantId = dict["tenantId"]
+ fetch_data_config.isStart = dict["isStart"]
+ fetch_data_config.gold.max = dict["gold"]["max"]
+ fetch_data_config.gold.min = dict["gold"]["min"]
+ fetch_data_config.fans.max = dict["fans"]["max"]
+ fetch_data_config.fans.min = dict["fans"]["min"]
+ fetch_data_config.frequency.day = dict["frequency"]["day"]
+ fetch_data_config.frequency.hour = dict["frequency"]["hour"]
+
+ print("数据解析成功")
+
+ if fetch_data_config.isStart:
+ print("开始执行脚本")
+ from infos.autohostinfo import Fetch_TK_data
+ fetch = Fetch_TK_data()
+ threading.Thread(target=fetch.loopRun).start()
+ else:
+ print("停止脚本")
+ pass
+
+ return 200
+ except:
+ print("数据解析失败")
+ #非200为异常
+ return 1
+
+ # 提供给前端各种数量
+ @Slot(result=str)
+ def fetchDataCount(self):
+ from infos.autohostinfo import totalDataCount, validAnchorsCount, checkedDataCount, canInvitationCount
+ data = {
+ "totalCount": totalDataCount, # 总数量
+ "validAnchorsCount":validAnchorsCount, # 有效的主播数量
+ "checkedDataCount":checkedDataCount, # 已查询的数量
+ "canInvitationCount":canInvitationCount # 可邀请的数量
+ }
+ jsonStr = json.dumps(data)
+ return jsonStr
+
+
+ # 前端查询tk后台登录状态的方法
+ @Slot(result=str)
+ def backStageloginStatus(self ):
+ dic = {
+ "index":self.index,
+ "code":self.loginStatus
+ }
+ return json.dumps(dic)
+
+ # 创建公会页面对象
+ def createApi(self, obj):
+ from infos.autohostinfo import checkAnchorObjs
+ from infos.autohostinfo import Fetch_TK_data
+
+ try:
+ dic = json.loads(obj)
+ account = dic["account"]
+ password = dic["password"]
+ self.index = dic["index"] # 获取前端传递的索引值
+ self.loginStatus = 0
+
+ # 添加登录账号到管理端
+ fetch_data_config.tkBackStageAccounts.append(account)
+
+ def loginCallBack():
+ self.loginStatus = 1
+
+ print("准备创建查询对象")
+ api = batch_check_anchor(account, password , loginCallBack)
+ print("查询对象创建完成")
+ checkAnchorObjs.append(api)
+ print("把对象添加到数组")
+
+ print("checkAnchorObjs count = " , len(checkAnchorObjs))
+ except Exception as e:
+ print(f"Error in createApi: {str(e)}")
+
+ # 打开后台
+ @Slot(str)
+ def loginBackStage(self, obj):
+ try:
+ # 创建并启动新线程
+ thread = threading.Thread(
+ target=self.createApi,
+ args=(obj,),
+ daemon=True # 设置为守护线程,主线程退出时会自动结束
+ )
+ thread.start()
+ except Exception as e:
+ print(e)
+
+
+ # 前端查询tk后台登录状态的方法
+ @Slot(result=str)
+ def backStageloginStatusCopy(self ):
+ dic = {
+ "index":self.index,
+ "code":self.loginStatus
+ }
+ return json.dumps(dic)
+
+ def createApiCopy(self, obj):
+ from infos.autohostinfo import checkAnchorObjs
+ try:
+ dic = json.loads(obj)
+ account = dic["account"]
+ password = dic["password"]
+ self.index = dic["index"] # 获取前端传递的索引值
+ self.loginStatus = 0
+
+ # 添加登录账号到管理端
+ fetch_data_config.tkBackStageAccounts.append(account)
+
+ def loginCallBack():
+ self.loginStatus = 1
+
+ print("准备创建查询对象")
+ api = batch_check_anchor(account, password , loginCallBack)
+ print("查询对象创建完成")
+ checkAnchorObjs.append(api)
+ print("把对象添加到数组")
+
+ print("checkAnchorObjs count = " , len(checkAnchorObjs))
+ except Exception as e:
+ print(f"Error in createApi: {str(e)}")
+
+
+
+ @Slot(str)
+ def loginBackStageCopy(self, obj):
+ try:
+ # 创建并启动新线程
+ thread = threading.Thread(
+ target=self.createApi,
+ args=(obj,),
+ daemon=True # 设置为守护线程,主线程退出时会自动结束
+ )
+ thread.start()
+ except Exception as e:
+ print(e)
+
+
+ # 打开tiktok
+ @Slot()
+ def loginTikTok(self):
+ threading.Thread(target=monitor_url_and_cookies).start()
+
+ # js传递主播id给Python
+ @Slot(str)
+ def givePyAnchorId(self, anchorId):
+ print(anchorId)
+ url = QUrl(f"https://www.tiktok.com/@{anchorId}/live")
+ QDesktopServices.openUrl(url)
diff --git a/src/assets/img/demos/2025-04/autohostinfo.py b/src/assets/img/demos/2025-04/autohostinfo.py
new file mode 100644
index 0000000..6458ee3
--- /dev/null
+++ b/src/assets/img/demos/2025-04/autohostinfo.py
@@ -0,0 +1,392 @@
+import mysql.connector
+import datetime
+import requests
+import countrycode as cc
+import tableaction as tt
+
+'''
+获取checkalive接口,验证正在直播的房间,目前用不着
+'''
+def fetch_tiktok_checkalive(mstoken):
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=g4gW1gFF-n8yPsVakDGDmrNHod_3BKquWkHI; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742537773%7C662969551ee538eab2dcdc43c3fe4040eb616fadb0643fdf214cd492020211bb; store-country-sign=MEIEDAsnjoHJTjFNneFmHAQgQR99HNzDAO_9D6SuCvfYF54a6DyVUejXuTNuzPiPad4EECxy0Xgv6zgOnvZRwbL1BOI; odin_tt=f6dd93d06620a488d2c682614b0220bd90ce162c6ed4519dd238268f2d093ba6681742fda279cbbc281003b9653189488b0835410c681b9dd606fc3bea583d1e7db3636194de935ad4fb5a4edb93bc7f; FPLC=0cwaDGpn9gDBc5kgScVenLiwA4ke7utdzOwoyYXd01vs%2BTmgjutMCQsNbb4Op9PIx91duASeDnByT92SJCBf7O9%2BcIrWqPtwAdF%2BnTeb9U9Qwtfe%2Fc5qsS4YtdCK3Q%3D%3D; csrfToken=UXnAHlaM-oJpqmZgGifEUaKBQt2qDZdEs5VE; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; msToken={mstoken}; _ga_LWWPCY99PB=GS1.1.1742537780.39.1.1742538627.0.0.1606106523'
+ }
+
+ try:
+ url = f'https://webcast.tiktok.com/webcast/room/check_alive/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&focus_state=false&from_page=user&history_len=8&is_fullscreen=false&is_page_visible=true&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2F®ion=JP&room_ids=7485246672541682450%2C7485247033091246855%2C7485244095834295048%2C7485241576454638357&root_referer=https%3A%2F%2Fwww.tiktok.com%2F&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&webcast_language=zh-Hans&msToken={mstoken}&X-Bogus=DFSzswVuvOxANcScthfHPYG0V1L1&_signature=_02B4Z6wo00001TB-YIwAAIDAfzpHmnTd6QEwfmQAACwC03'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
+
+
+'''
+获取audience_room_enter_backup接口,用于查找主播的金币(当日当场在线的人数)
+'''
+def fetch_tiktok_audience_room_enter_backup(mstoken,roomid):
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=g4gW1gFF-n8yPsVakDGDmrNHod_3BKquWkHI; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742537773%7C662969551ee538eab2dcdc43c3fe4040eb616fadb0643fdf214cd492020211bb; store-country-sign=MEIEDAsnjoHJTjFNneFmHAQgQR99HNzDAO_9D6SuCvfYF54a6DyVUejXuTNuzPiPad4EECxy0Xgv6zgOnvZRwbL1BOI; odin_tt=f6dd93d06620a488d2c682614b0220bd90ce162c6ed4519dd238268f2d093ba6681742fda279cbbc281003b9653189488b0835410c681b9dd606fc3bea583d1e7db3636194de935ad4fb5a4edb93bc7f; FPLC=0cwaDGpn9gDBc5kgScVenLiwA4ke7utdzOwoyYXd01vs%2BTmgjutMCQsNbb4Op9PIx91duASeDnByT92SJCBf7O9%2BcIrWqPtwAdF%2BnTeb9U9Qwtfe%2Fc5qsS4YtdCK3Q%3D%3D; csrfToken=UXnAHlaM-oJpqmZgGifEUaKBQt2qDZdEs5VE; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; msToken={mstoken}; _ga_LWWPCY99PB=GS1.1.1742537780.39.1.1742538627.0.0.1606106523'
+ }
+
+ try:
+ url = f'https://webcast.tiktok.com/webcast/linkmic_multi_guest/webapp/audience_room_enter_backup/?aid=1988&app_id=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&focus_state=true&from_page=user&history_len=45&is_fullscreen=false&is_page_visible=true&live_id=12&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2Fsearch%2Fuser%3FblankpageEnterFrom%3Dlive_detail%26blankpageEnterMethod%3Denter%26enterMethod%3Dclick_icon%26q%3Dshouhu2024%26searchSource%3Dsearch_history%26t%3D1742909035069%26videoPageType%3D®ion=SG&room_id={roomid}&root_referer=https%3A%2F%2Fwww.tiktok.com%2F&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&verifyFp=verify_m8o9s5gf_yVPbZr0N_PSYe_4qbO_BiFg_AlqcZCJbDhXc&webcast_language=zh-Hans&msToken={mstoken}&_signature=_02B4Z6wo00001lRJTtgAAIDDGw1pztgsPqZUSUpAAPMAc3'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
+
+'''
+获取https://webcast16-normal-c-useast1a.tiktokv.com/webcast/ranklist/list/v2接口,用于查找主播的金币(手机端榜单接口)
+'''
+def fetch_tiktok_ranklist_list_v2(mstoken,roomid,anchor_id,gapstyle):
+ #gapstyle代表昨日或今日,0代表今日,-1代表昨日
+ #cokkie中的session需要修改
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ #'Cookie': f'store-idc=maliva; passport_csrf_token=9f1c3313673d0cffd87316094dbffc7c; passport_csrf_token_default=9f1c3313673d0cffd87316094dbffc7c; multi_sids=7486734628213965840%3A976a1e25225285cf360b44e5fde377c6; cmpl_token=AgQQAPOHF-RPsLfY193SfZ0p-yMtHnfPP4fZYNjGCA; d_ticket=f1c8feea880f8bddd1258fc98100606241a3c; sid_guard=976a1e25225285cf360b44e5fde377c6%7C1743405899%7C15552000%7CSat%2C+27-Sep-2025+07%3A24%3A59+GMT; uid_tt=fb68d9a7e8ea0cece1b7958c8d2da425c2256f153c0b6f7ff56cacde89a20b2e; uid_tt_ss=fb68d9a7e8ea0cece1b7958c8d2da425c2256f153c0b6f7ff56cacde89a20b2e; sid_tt=976a1e25225285cf360b44e5fde377c6; sessionid=73c9e1dd1af6bed1d6e6ba49b50aad0f; sessionid_ss=73c9e1dd1af6bed1d6e6ba49b50aad0f; store-country-code=tw; store-country-code-src=uid; tt-target-idc=alisg; install_id=7487871815659669256; ttreq=1$53c460ab556f59872a6917b9efc4b4dc0ffac9cc; odin_tt=6b7c3d7ec51030c806c5337dadeb3685319ad24874dc5871ebd07'
+
+ 'Cookie': f'install_id=7487870756572186410; ttreq=1$2afa63cd4b0ff1161e179c28084d891d64dbb6d9; store-idc=useast5; store-country-code=us; store-country-code-src=uid; tt-target-idc=useast8; uid_tt=732c3940cf2659167f84e71ffdb5616914b710b0b37ffd080e9b0b7b5248e215; uid_tt_ss=732c3940cf2659167f84e71ffdb5616914b710b0b37ffd080e9b0b7b5248e215; sid_guard=b5b341deed5cd4c5174f9203a94dbb89%7C1743601129%7C15378367%7CSat%2C+27-Sep-2025+13%3A24%3A56+GMT; sid_tt=b5b341deed5cd4c5174f9203a94dbb89; sessionid=b5b341deed5cd4c5174f9203a94dbb89; sessionid_ss=b5b341deed5cd4c5174f9203a94dbb89; passport_csrf_token=003f54014b009e057755ae7d4102704a; passport_csrf_token_default=003f54014b009e057755ae7d4102704a; store-country-sign=MEIEDGiF6NUvpjtZij7DxwQgmVgJbARKDUZuipnE77PfyGu02WoyElZtyrloDuD343AEEPieJ8HazV_DRIBjcFzdHr0; odin_tt=ff5a7b80d4a9eef1cc71d5e7430093fe7bf41c03fa008266649e3da7a6fe7ea4c95aa88240daa64ba49e51708f4b921677ee1d42c4d998bec20193aa5ecd8a119784b2b18e3529bde2cb1dc07f6d76d6; msToken=c4Lt_RIFfxVBf5e-ahm9CaI1cOxzgBS9drafpwA6g0UtdLlixh956HRJS8n48LgM_NXzEAhxsvjs7_vR3dDHSoqSgMU7zy3ii-18UDp9gyoDHdBOrWwcXhBtH8k5'
+ }
+
+
+ try:
+ url = f'https://webcast16-normal-useast8.tiktokv.us/webcast/ranklist/list/v2/?anchor_id={anchor_id}&room_id={roomid}&rank_type=8®ion_type=1&gap_interval={gapstyle}&use_simple_user=true&league_phase=0&device_platform=android&os=android&ssmix=a&_rticket=1743411002698&channel=huaweiadsglobal_int&aid=1233&app_name=musical_ly&version_code=390303&version_name=39.3.3&manifest_version_code=2023903030&update_version_code=2023903030&ab_version=39.3.3&resolution=720*1280&dpi=240&device_type=G011A&device_brand=google&language=zh-Hans&os_api=28&os_version=9&ac=wifi&is_pad=0¤t_region=US&app_type=normal&sys_region=CN&last_install_time=1743405779&mcc_mnc=31031&timezone_name=America%2FLos_Angeles&residence=US&app_language=zh-Hans&carrier_region=US&timezone_offset=-28800&host_abi=armeabi-v7a&locale=zh-Hans&ac2=wifi&uoo=0&op_region=US&build_number=39.3.3®ion=CN&ts=1743411004&iid=7487871815659669256&device_id=7008362079137564165&webcast_sdk_version=3840&webcast_language=zh-Hans&webcast_locale=zh_CN&effect_sdk_version=18.6.0¤t_network_quality_info=%7B%7D'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
+
+
+
+
+'''
+获取feed接口,拿到多个房间号
+'''
+def fetch_tiktok_feed(mstoken,region):
+ mstoken = 'mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE='
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=g4gW1gFF-n8yPsVakDGDmrNHod_3BKquWkHI; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742537773%7C662969551ee538eab2dcdc43c3fe4040eb616fadb0643fdf214cd492020211bb; store-country-sign=MEIEDAsnjoHJTjFNneFmHAQgQR99HNzDAO_9D6SuCvfYF54a6DyVUejXuTNuzPiPad4EECxy0Xgv6zgOnvZRwbL1BOI; odin_tt=f6dd93d06620a488d2c682614b0220bd90ce162c6ed4519dd238268f2d093ba6681742fda279cbbc281003b9653189488b0835410c681b9dd606fc3bea583d1e7db3636194de935ad4fb5a4edb93bc7f; FPLC=0cwaDGpn9gDBc5kgScVenLiwA4ke7utdzOwoyYXd01vs%2BTmgjutMCQsNbb4Op9PIx91duASeDnByT92SJCBf7O9%2BcIrWqPtwAdF%2BnTeb9U9Qwtfe%2Fc5qsS4YtdCK3Q%3D%3D; csrfToken=UXnAHlaM-oJpqmZgGifEUaKBQt2qDZdEs5VE; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; msToken={mstoken}; _ga_LWWPCY99PB=GS1.1.1742537780.39.1.1742538627.0.0.1606106523'
+ }
+ try:
+ #req_from的属性需要重新设置为:webapp_taxonomy_drawer_enter_feed
+ url = f'https://webcast.tiktok.com/webcast/feed/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&channel_id=1222001&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&device_type=web_h265&focus_state=true&from_page=live&history_len=40&is_fullscreen=false&is_non_personalized=0&is_page_visible=true&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20®ion=PH&related_live_tag=chatting&req_from=pc_web_recommend_room&root_referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&webcast_language=zh-Hans&msToken={mstoken}&_signature=_02B4Z6wo000019C5TqAAAIDCn.1ptJ30HF.QuUoAAJP85b'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
+
+
+'''
+获取主播的礼物、榜单等信息
+'''
+
+
+# 访问list接口
+def fetch_tiktok_list(mstoken, roomid,region):
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; FPLC=unxTy%2BHNrlbV12WKer2Z4p%2BFMLTNffNmPfgFFyE1p9Yp%2F9UV00Mw%2Ft0yEjuVuELtDYxncw%2F6fTuwOoJBWhPgNaHGUHaO7SOvAgQWikUz0VM9W8idI3Y%2Fj2QbcvT7gQ%3D%3D; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=ZZvquAov-Asrhyv5oLnE4hVh26-TeCgL892E; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742472556%7Cacad91b38df171e37fa8b2032ee565f8f914e106077cd09bed5aef06edde7b56; store-country-sign=MEIEDOrgSZcKDYtd2mW_6gQgI6MIN_5J-Gh3ZUXIvVE5P87RnDlWDCqBb4cDzPmde5YEEM9aENKPObrvdh6fQ2M4v1w; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; odin_tt=37ea501de00ce0d41f3d9a672f883e3995deae585ed2ced9a0333e872578d6c3142cc5b3030ad88f8594a07cc2a0987f85dd19ed9c9270ddf442b85d67b2c1d7259c98b829d7dfe4977ccc1e90652b9a; csrfToken=XkGOy09r-k51hDZ99RTHEnjAkxWtivpKt380; _ga_LWWPCY99PB=GS1.1.1742470182.37.1.1742472563.0.0.415184211; msToken={mstoken}'
+ }
+
+ try:
+ url = f'https://webcast.tiktok.com/webcast/gift/list/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&focus_state=true&from_page=user&history_len=2&is_fullscreen=false&is_page_visible=true&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2Fsearch%3Fq%3Dricca1204%26t%3D1742472555302®ion={region}&room_id={roomid}&root_referer=https%3A%2F%2Fwww.tiktok.com%2Fsearch%3Fq%3Dricca1204%26t%3D1742472555302&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&webcast_language=zh-Hans&msToken={mstoken}&_signature=_02B4Z6wo00001mnonGwAAIDDJqy7eSCf.YZp6JjAAP21bf'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
+
+# 访问enter接口,暂时弃用,爬多了会被封号
+# def fetch_tiktok_enter(mstoken, roomid):
+# url = f'https://webcast.tiktok.com/webcast/room/enter/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&device_type=web_h265&focus_state=true&from_page=user&history_len=24&is_fullscreen=false&is_page_visible=true&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2F®ion=PH&root_referer=https%3A%2F%2Fwww.tiktok.com%2F&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&verifyFp=verify_m8ijel2v_9YnZMchp_swhm_4bs1_9GXv_G1EbQ1f3NTh4&webcast_language=zh-Hans&msToken={mstoken}&_signature=_02B4Z6wo00001ABqsfgAAIDBTy6W7FBLWBwAarVAAGfOb8'
+#
+# headers = {
+# # 留下
+# "cookie": f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; tt_csrf_token=g4gW1gFF-n8yPsVakDGDmrNHod_3BKquWkHI; FPLC=0cwaDGpn9gDBc5kgScVenLiwA4ke7utdzOwoyYXd01vs%2BTmgjutMCQsNbb4Op9PIx91duASeDnByT92SJCBf7O9%2BcIrWqPtwAdF%2BnTeb9U9Qwtfe%2Fc5qsS4YtdCK3Q%3D%3D; csrfToken=UXnAHlaM-oJpqmZgGifEUaKBQt2qDZdEs5VE; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; s_v_web_id=verify_m8ijel2v_9YnZMchp_swhm_4bs1_9GXv_G1EbQ1f3NTh4; d_ticket=29d26aed73a954d73f7f495857a66eed44a85; multi_sids=7480081853916922896%3Ad2199c813f4c846be72cc15f3e31588d; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4ohYNi_-w; uid_tt=5bc3b1892a01e1d11e13425d33f3ce57a110ea566d0914bcd316f729167a2d4f; uid_tt_ss=5bc3b1892a01e1d11e13425d33f3ce57a110ea566d0914bcd316f729167a2d4f; sid_tt=d2199c813f4c846be72cc15f3e31588d; sessionid=d2199c813f4c846be72cc15f3e31588d; sessionid_ss=d2199c813f4c846be72cc15f3e31588d; store-idc=alisg; store-country-code=ph; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=nVo6E-__ps27ANpVx26momHQUU-VWByzS7Qdt3dPewZU-6bU2W7N7X8v561Miu5Nw1KpnuOj_5-vzZUkbAZqcW8qvoGFC11aSH8_qSWtcanul6aB4sO5GCgaOQnKWiYgGnqk7l3yjQncUBiZhi1O7GQUsr4nmFELFcCezMPO1R46h39Z0szBn_P0QNyzLDRhB3wJWSm9wXxGJFSxCYvC8dQiaojppyHwlowVTmQwPT8WJiFPu60f_AjHO6nJ-tfc6MgwJN4SeLVZgFx1SCBhvd0d7UOjaqPUx5YtS9Q4JkQaZcA_huo-E5g-Tvc2YnDYljdf-QEpHPjFW6AQhxpPQeQMDiZe8IXi7YcqXSU4CnYGxi7pCrp_fBXksqMbb8Xr4z1ZjME_rtMTWrCtF7kmKUvmcmCQDAguNDsNuvj8hN00j6dmZ2yozG35rwUf97owUqpRQk9uu241pAtQ-DHcpvUh08cfUUxD8D5woeMay7mPq1f3lHVkqF9rATCYVdcJ; sid_guard=d2199c813f4c846be72cc15f3e31588d%7C1742546855%7C15551996%7CWed%2C+17-Sep-2025+08%3A47%3A31+GMT; sid_ucp_v1=1.0.0-KGMxNmNhMWIzOWQ1NjQzM2UxOWVhNTZiYmZjM2MxNjZmOTVkMWQ2MWIKGgiQiMGMitql52cQp8_0vgYYsws4AUDqB0gEEAMaAm15IiBkMjE5OWM4MTNmNGM4NDZiZTcyY2MxNWYzZTMxNTg4ZA; ssid_ucp_v1=1.0.0-KGMxNmNhMWIzOWQ1NjQzM2UxOWVhNTZiYmZjM2MxNjZmOTVkMWQ2MWIKGgiQiMGMitql52cQp8_0vgYYsws4AUDqB0gEEAMaAm15IiBkMjE5OWM4MTNmNGM4NDZiZTcyY2MxNWYzZTMxNTg4ZA; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742553650%7C5fcb46d604bb476d1b8d8047e750969770090f323ddbb69c969dc5a603c5b5dc; store-country-sign=MEIEDFJ-0POjzOvOax6tXgQgdL8sJRGNGwCKAKrA6Ba9AdAyNXHazJ3SWgAuRKKzN3MEEFmTC_o_venconbY3G7AAPs; odin_tt=c97f93758dadfc5203f0dfa5e629ae3c403fffd1a639692aa76319a0b43a3b60cb3bd7db7550fb4aaaf72d1a397293970922de61e112343f44e0d06ebd73dfd58e5629ff4c49fbeac266784326e8b61a; _ga_LWWPCY99PB=GS1.1.1742551714.41.1.1742554753.0.0.290463167; msToken={mstoken}',
+# "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
+# }
+#
+# form_data = {
+# 'enter_source': 'recommend-next_icon_click',
+#
+# # 注意,room_id是会变化的,后面要从直播大厅直接拿数据,作为入参传进来
+# 'room_id': f'{roomid}'
+# }
+# # 发送 POST 请求
+# response = requests.post(url, headers=headers, data=form_data)
+# # json格式
+# return response
+
+
+
+#feed接口拿房间号
+'''
+预留的功能模块,动态获取cookie
+'''
+#获取动态的cookie。目前先写死
+mstoken = 'mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE='
+
+# 连接到MySQL数据库
+#后续业务复杂性提升的话,可以考虑引入SQLAlchemy框架
+config = {
+ 'host' : '120.26.251.180',
+ 'port': '3326',
+ 'user' : 'root',
+ 'password' : 'wfn53400',
+ 'database' : 'tkdata'
+}
+# 建立连接
+conn = mysql.connector.connect(**config)
+print("连接成功!")
+
+# 创建一个游标对象来执行 SQL 语句
+cursor = conn.cursor()
+#搜索区域,目前写死,其实不用填写,会自动根据vpn转
+region = "DE"
+
+def gethostsinfo():
+ '''
+ 业务代码,爬取各类信息
+ '''
+ #feed接口的返回,返回了多个房间的数据
+ roomlist = fetch_tiktok_feed(mstoken,region).get("data")
+
+ #有些国家可能没有直播的,需要添加兼容,别报错
+ if roomlist is not None:
+ num = len(roomlist)
+ else:
+ num = 0
+
+ for room in roomlist:
+ # 这张表的数据有多条,创建字典
+ hosts_info_dict = {}
+
+ dataall = room.get("data")
+
+ #房间号
+ try:
+ roomid = dataall.get("id_str")
+ # print(roomid)
+ except:
+ print("未能获取到房间号")
+ continue
+
+ #主播id
+ try:
+ hosts__host_id = dataall.get("owner").get("display_id")
+ #主播的用户号,需要查询金币使用
+ hosts__host_id_str = dataall.get("owner").get("id_str")
+ except:
+ continue
+
+ #默认目前我来托管
+ hosts__owner_by = 666675
+
+ #获取主播名称
+ hosts__host_name = dataall.get("owner").get("nickname")
+
+ #获取主播的粉丝数
+ try:
+ fllowernum = dataall.get("owner").get("follow_info").get("follower_count")
+ except:
+ fllowernum = "0"
+
+ #获取主播的关注数
+ try:
+ fllowingnum = dataall.get("owner").get("follow_info").get("following_count")
+ except:
+ fllowingnum = "0"
+
+ #获取直播类型
+ try:
+ hosts_source = dataall.get("hashtag").get("title")
+ except:
+ hosts_source = " "
+
+ #获取在线人数
+ try:
+ onlinefans = dataall.get("user_count")
+ except:
+ onlinefans = "0"
+
+ #获取金币模块,当前数据
+ # enterdata = fetch_tiktok_audience_room_enter_backup(mstoken,roomid).get('data').get("multi_guest_linkmic_info")
+ hostcoins = 0
+ ysthostcoins = 0
+ try:
+ #锚定的id=hosts__host_id_str,需要先写死
+ hostinfo = fetch_tiktok_ranklist_list_v2(mstoken, roomid,hosts__host_id_str,0).get("data").get("rank_view").get("owner_rank")
+ hostcoins = hostinfo.get("score")
+
+ #昨日的金币
+ yshostinfo = fetch_tiktok_ranklist_list_v2(mstoken, roomid, hosts__host_id_str, -1).get("data").get("rank_view").get("owner_rank")
+ ysthostcoins = yshostinfo.get("score")
+ except:
+ print("不能获取主播金币")
+
+ # 获取list接口的返回,取国家信息和等级
+ hosts__country = 'unkown'
+ hostlevel = " "
+
+ # 获取金币模块,周数据
+ weeklycoins = 0
+
+ try:
+ data = fetch_tiktok_list(mstoken,roomid,region)
+ # 获取国家的代码逻辑
+ pages = data.get("data").get("pages")[0]
+
+ hosts__country = cc.get_country_name(pages.get("region"))
+
+ # 获取主播的等级数据,需要插入字典中,做个映射
+ hostlevel = data.get("data").get("gifts_info").get("gift_gallery_info").get("anchor_ranking_league")
+
+ #获取周金币数据
+ try:
+ giftslist = pages.get("gifts")
+ for gift in giftslist:
+ price = gift.get("diamond_count")
+ if gift.get("gift_sponsor_info") is not None:
+ #数量乘时间的累加
+ weeklycoins += gift.get("gift_sponsor_info").get("sponsor_count") * price
+ else:
+ continue
+ except:
+ print("获取周金币数据失败")
+
+ except:
+ pass
+
+
+
+ # 获取直播的时间戳,可以转换
+ livetime = datetime.datetime.fromtimestamp(dataall.get("owner").get("modify_time"))
+ recordtime = datetime.datetime.now()
+ tips = f"我爬取了: {hosts__host_name}的直播信息,的id是{hosts__host_id},房间号是{roomid},直接类型是{hosts_source}," \
+ f"有{onlinefans}人在看他\n" \
+ f"主播来自: {hosts__country}, 目前的等级是: {hostlevel},今天的开播时间是{livetime},收到了{hostcoins}金币的礼物\n" \
+ f"昨天收到了{ysthostcoins}金币的礼物,主播的粉丝数量为: {fllowernum}, 关注了: {fllowingnum},此条信息记录于{recordtime}"
+ print(tips)
+
+ #添加主播等级
+ hosts_info__info_type = "hostlevel"
+ hosts_info__info_value = hostlevel
+ hosts_info_dict.update({hosts_info__info_type: hosts_info__info_value})
+
+ # 获取金币
+ hosts_info__info_type = "hostcoins"
+ hosts_info__info_value = hostcoins
+ hosts_info_dict.update({hosts_info__info_type: hosts_info__info_value})
+
+ # 获取昨日金币
+ hosts_info__info_type = "ysthostcoins"
+ hosts_info__info_value = ysthostcoins
+ hosts_info_dict.update({hosts_info__info_type: hosts_info__info_value})
+
+ # 获取主播的粉丝数量
+ hosts_info__info_type = "fllowernum"
+ hosts_info__info_value = fllowernum
+ hosts_info_dict.update({hosts_info__info_type: hosts_info__info_value})
+
+ # 获取主播关注的其他人的数量
+ hosts_info__info_type = "fllowingnum"
+ hosts_info__info_value = fllowingnum
+ hosts_info_dict.update({hosts_info__info_type: hosts_info__info_value})
+
+ # 获取直播间人数
+ hosts_info__info_type = "onlinefans"
+ hosts_info__info_value = onlinefans
+ hosts_info_dict.update({hosts_info__info_type: hosts_info__info_value})
+
+ try:
+ # 插入数据到hosts表中
+ # host_id, host_name, owner_by, belong_yn, country, hosts_source, value_level, reserve_1, reserve_2, create_dt, update_dt
+ hosts__create_dt = str(livetime)
+ # 更新时间暂定现在
+ hosts__update_dt = str(livetime)[0:10].replace("-", "")
+ # 被管理状态暂时设为no
+ hosts__belong_yn = 'N'
+ # 主播来源暂时设为0
+ hosts__hosts_source = hosts_source
+ # 主播价值暂时设为no
+ hosts__value_level = '0'
+ # 保留字段暂时为0
+ hosts__tenant_id = 'vic'
+ # 保留字段暂时为0
+ hosts__reserve_2 = '0'
+
+ # hosts表的插入
+ values = f"'{hosts__host_id}','{hosts__host_name}','{hosts__owner_by}','{hosts__belong_yn}','{hosts__country}','{hosts__hosts_source}'" \
+ f",'{hosts__value_level}','{hosts__tenant_id}','{hosts__reserve_2}','{hosts__create_dt}','{hosts__update_dt}'"
+
+ # print(values)
+ hostssql = tt.insertorupdate_hosts_sql(values,hosts__country,hosts__update_dt)
+ print(hostssql)
+ cursor.execute(hostssql)
+
+ # hostsinfo的插入,这里需要先验证今天有没有该条主播的信息,没有就插入,有就更新
+ # hosts_id,info_type,info_value,part_month,reserve_1,reserve_2,create_dt,create_by,update_dt,update_by
+ hosts_info__hosts_id = hosts__host_id
+ hosts_info__part_month = str(livetime)[0:10].replace("-", "")
+ hosts_info__create_dt = str(livetime)
+ # 默认由自己创建
+ hosts_info__create_by = "666675"
+
+ for key, value in hosts_info_dict.items():
+ values = f"'{hosts_info__hosts_id}','{key}','{value}','{hosts_info__part_month}','{tt.hosts_info.hosts_info__reserve_1}'," \
+ f"'{tt.hosts_info.hosts_info__reserve_2}','{hosts_info__create_dt}','{hosts_info__create_by}','{tt.hosts_info.hosts_info__update_dt}','{tt.hosts_info.hosts_info__update_by}'"
+ hostsinfosql = tt.insertorupdate_hosts_info_sql(values, key, value, hosts_info__create_dt)
+ #注入语句打印一下
+ #print(hostsinfosql)
+ cursor.execute(hostsinfosql)
+
+ except mysql.connector.Error as err:
+ conn.rollback()
+ print(f"连接失败:{err}")
+
+ return num
+
+#测试轮询爬取
+countnum = 0
+
+while True:
+ # starttime = datetime.datetime.now()
+ countnum += gethostsinfo()
+ # endtime = datetime.datetime.now()
+ # print("耗时",str(endtime-starttime))
+ # print("目前获取了"+str(countnum)+"个数据")
+ if countnum >= 30:
+ # 关闭游标和连接
+ conn.commit()
+ print("已经提交了"+str(countnum)+"条")
+ if countnum >= 100000:
+ cursor.close()
+ conn.close()
+ break
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/country_info.xls b/src/assets/img/demos/2025-04/country_info.xls
new file mode 100644
index 0000000..a6d1145
Binary files /dev/null and b/src/assets/img/demos/2025-04/country_info.xls differ
diff --git a/src/assets/img/demos/2025-04/countrycode.py b/src/assets/img/demos/2025-04/countrycode.py
new file mode 100644
index 0000000..74a86dd
--- /dev/null
+++ b/src/assets/img/demos/2025-04/countrycode.py
@@ -0,0 +1,264 @@
+from enum import Enum
+
+class CountryCode(Enum):
+ AD = "安道尔"
+ AE = "阿拉伯联合酋长国"
+ AF = "阿富汗"
+ AG = "安提瓜和巴布达"
+ AI = "安圭拉"
+ AL = "阿尔巴尼亚"
+ AM = "亚美尼亚"
+ AO = "安哥拉"
+ AQ = "南极洲"
+ AR = "阿根廷"
+ AS = "美属萨摩亚"
+ AT = "奥地利"
+ AU = "澳大利亚"
+ AU1 = "澳大利亚"
+ AW = "阿鲁巴"
+ AX = "奥兰群岛"
+ AZ = "阿塞拜疆"
+ BA = "波斯尼亚和黑塞哥维那"
+ BB = "巴巴多斯"
+ BD = "孟加拉国"
+ BE = "比利时"
+ BF = "布基纳法索"
+ BG = "保加利亚"
+ BH = "巴林"
+ BI = "布隆迪"
+ BJ = "贝宁"
+ BL = "圣巴泰勒米"
+ BM = "百慕大群岛"
+ BN = "文莱达鲁萨兰国"
+ BO = "玻利维亚"
+ BQ = "博奈尔、圣尤斯特歇斯和萨巴"
+ BR = "巴西"
+ BS = "巴哈马"
+ BT = "不丹"
+ BV = "布韦岛"
+ BW = "博茨瓦纳"
+ BY = "白俄罗斯"
+ BZ = "伯利兹"
+ CA = "加拿大"
+ CA1 = "加拿大"
+ CC = "科科斯(基林)群岛"
+ CD = "刚果民主共和国"
+ CF = "中非共和国"
+ CG = "刚果共和国"
+ CH = "瑞士"
+ CI = "科特迪瓦"
+ CK = "库克群岛"
+ CL = "智利"
+ CM = "喀麦隆"
+ CN = "中国"
+ CO = "哥伦比亚"
+ CR = "哥斯达黎加"
+ CU = "古巴"
+ CV = "佛得角"
+ CW = "库拉索"
+ CX = "圣诞岛"
+ CY = "塞浦路斯"
+ CZ = "捷克共和国"
+ DE = "德国"
+ DG = "迪戈加西亚岛"
+ DJ = "吉布提"
+ DK = "丹麦"
+ DM = "多米尼克"
+ DO = "多米尼加共和国"
+ DZ = "阿尔及利亚"
+ EC = "厄瓜多尔"
+ EE = "爱沙尼亚"
+ EG = "埃及"
+ EH = "西撒哈拉"
+ ER = "厄立特里亚"
+ ES = "西班牙"
+ ET = "埃塞俄比亚"
+ FI = "芬兰"
+ FJ = "斐济"
+ FK = "福克兰群岛"
+ FM = "密克罗尼西亚"
+ FO = "法罗群岛"
+ FR = "法国"
+ GA = "加蓬"
+ GB = "英国"
+ GD = "格林纳达"
+ GE = "格鲁吉亚"
+ GF = "法属圭亚那"
+ GG = "根西岛"
+ GH = "加纳"
+ GI = "直布罗陀"
+ GL = "格陵兰"
+ GM = "冈比亚"
+ GN = "几内亚"
+ GP = "瓜德罗普"
+ GQ = "赤道几内亚"
+ GR = "希腊"
+ GS = "南乔治亚和南桑德威奇群岛"
+ GT = "危地马拉"
+ GU = "关岛"
+ GW = "几内亚比绍"
+ GY = "圭亚那"
+ HK = "中国香港特别行政区"
+ HM = "赫德岛和麦克唐纳群岛"
+ HN = "洪都拉斯"
+ HR = "克罗地亚"
+ HT = "海地"
+ HU = "匈牙利"
+ ID = "印度尼西亚"
+ IE = "爱尔兰"
+ IL = "以色列"
+ IM = "马恩岛"
+ IN = "印度"
+ IO = "英属印度洋领地"
+ IQ = "伊拉克"
+ IR = "伊朗"
+ IS = "冰岛"
+ IT = "意大利"
+ JE = "泽西岛"
+ JM = "牙买加"
+ JO = "约旦"
+ JP = "日本"
+ JP1 = "日本"
+ KE = "肯尼亚"
+ KG = "吉尔吉斯斯坦"
+ KH = "柬埔寨"
+ KI = "基里巴斯"
+ KM = "科摩罗"
+ KN = "圣基茨和尼维斯"
+ KP = "朝鲜"
+ KR = "韩国"
+ KR1 = "韩国"
+ KR1_UXWAUDIT = "韩国"
+ KW = "科威特"
+ KY = "开曼群岛"
+ KZ = "哈萨克斯坦"
+ LA = "老挝"
+ LB = "黎巴嫩"
+ LC = "圣卢西亚"
+ LI = "列支敦士登"
+ LK = "斯里兰卡"
+ LR = "利比里亚"
+ LS = "莱索托"
+ LT = "立陶宛"
+ LU = "卢森堡"
+ LV = "拉脱维亚"
+ LY = "利比亚"
+ MA = "摩洛哥"
+ MC = "摩纳哥"
+ MD = "摩尔多瓦"
+ ME = "黑山"
+ MF = "圣马丁"
+ MG = "马达加斯加"
+ MH = "马绍尔群岛"
+ MK = "北马其顿"
+ ML = "马里"
+ MM = "缅甸"
+ MN = "蒙古"
+ MO = "中国澳门特别行政区"
+ MP = "北马里亚纳群岛"
+ MQ = "马提尼克"
+ MR = "毛里塔尼亚"
+ MS = "蒙特塞拉特"
+ MT = "马耳他"
+ MU = "毛里求斯"
+ MV = "马尔代夫"
+ MW = "马拉维"
+ MX = "墨西哥"
+ MY = "马来西亚"
+ MZ = "莫桑比克"
+ NA = "纳米比亚"
+ NC = "新喀里多尼亚"
+ NE = "尼日尔"
+ NF = "诺福克岛"
+ NG = "尼日利亚"
+ NI = "尼加拉瓜"
+ NL = "荷兰"
+ NO = "挪威"
+ NP = "尼泊尔"
+ NR = "瑙鲁"
+ NU = "纽埃"
+ NZ = "新西兰"
+ OM = "阿曼"
+ PA = "巴拿马"
+ PE = "秘鲁"
+ PF = "法属玻利尼西亚"
+ PG = "巴布亚新几内亚"
+ PH = "菲律宾"
+ PK = "巴基斯坦"
+ PL = "波兰"
+ PM = "圣皮埃尔和密克隆群岛"
+ PN = "皮特凯恩群岛"
+ PR = "波多黎各"
+ PS = "巴勒斯坦"
+ PT = "葡萄牙"
+ PW = "帕劳"
+ PY = "巴拉圭"
+ QA = "卡塔尔"
+ RE = "留尼汪"
+ RO = "罗马尼亚"
+ RS = "塞尔维亚"
+ RU = "俄罗斯"
+ RW = "卢旺达"
+ SA = "沙特阿拉伯"
+ SB = "索罗门群岛"
+ SC = "塞舌尔"
+ SD = "苏丹"
+ SE = "瑞典"
+ SG = "新加坡"
+ SI = "斯洛文尼亚"
+ SJ = "斯瓦尔巴和扬马延"
+ SK = "斯洛伐克"
+ SL = "塞拉利昂"
+ SM = "圣马利诺"
+ SN = "塞内加尔"
+ SO = "索马里"
+ SR = "苏里南"
+ SS = "南苏丹"
+ ST = "圣多美和普林西比"
+ SV = "萨尔瓦多"
+ SX = "荷属圣马丁"
+ SY = "叙利亚"
+ SZ = "斯威士兰"
+ TC = "特克斯和凯科斯群岛"
+ TD = "乍得"
+ TF = "法属南部领地"
+ TG = "多哥"
+ TH = "泰国"
+ TJ = "塔吉克斯坦"
+ TK = "托克劳群岛"
+ TL = "东帝汶"
+ TM = "土库曼斯坦"
+ TN = "突尼斯"
+ TO = "汤加"
+ TR = "土耳其"
+ TT = "特立尼达和多巴哥"
+ TV = "图瓦卢"
+ TW = "台湾"
+ TZ = "坦桑尼亚"
+ UA = "乌克兰"
+ UG = "乌干达"
+ UM = "美国本土外小岛屿"
+ US = "美国"
+ UY = "乌拉圭"
+ UZ = "乌兹别克斯坦"
+ VA = "梵蒂冈"
+ VC = "圣文森特"
+ VE = "委内瑞拉"
+ VG = "英属维尔京群岛"
+ VI = "美属维尔京群岛"
+ VN = "越南"
+ VN1 = "越南"
+ VU = "瓦努阿图"
+ WS = "萨摩亚"
+ YE = "也门"
+ YT = "马约特岛"
+ ZA = "南非"
+ ZM = "赞比亚"
+ ZW = "津巴布韦"
+
+# 用法封装
+def get_country_name(code):
+ try:
+ return CountryCode[code].value
+ except KeyError:
+ pass
diff --git a/src/assets/img/demos/2025-04/default-file-name (3).xls b/src/assets/img/demos/2025-04/default-file-name (3).xls
new file mode 100644
index 0000000..7cf92fd
Binary files /dev/null and b/src/assets/img/demos/2025-04/default-file-name (3).xls differ
diff --git a/src/assets/img/demos/2025-04/default-file-name (4).xlsx b/src/assets/img/demos/2025-04/default-file-name (4).xlsx
new file mode 100644
index 0000000..703a096
Binary files /dev/null and b/src/assets/img/demos/2025-04/default-file-name (4).xlsx differ
diff --git a/src/assets/img/demos/2025-04/dist(1).rar b/src/assets/img/demos/2025-04/dist(1).rar
new file mode 100644
index 0000000..4db7d89
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(1).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(2).rar b/src/assets/img/demos/2025-04/dist(2).rar
new file mode 100644
index 0000000..44da3f0
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(2).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(3).rar b/src/assets/img/demos/2025-04/dist(3).rar
new file mode 100644
index 0000000..44da3f0
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(3).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(4).rar b/src/assets/img/demos/2025-04/dist(4).rar
new file mode 100644
index 0000000..e9a9993
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(4).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(5).rar b/src/assets/img/demos/2025-04/dist(5).rar
new file mode 100644
index 0000000..883275e
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(5).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(6).rar b/src/assets/img/demos/2025-04/dist(6).rar
new file mode 100644
index 0000000..91a97e7
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(6).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(7).rar b/src/assets/img/demos/2025-04/dist(7).rar
new file mode 100644
index 0000000..68c86ba
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(7).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(8).rar b/src/assets/img/demos/2025-04/dist(8).rar
new file mode 100644
index 0000000..4c0e21e
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(8).rar differ
diff --git a/src/assets/img/demos/2025-04/dist(9).rar b/src/assets/img/demos/2025-04/dist(9).rar
new file mode 100644
index 0000000..4ca85de
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist(9).rar differ
diff --git a/src/assets/img/demos/2025-04/dist.rar b/src/assets/img/demos/2025-04/dist.rar
new file mode 100644
index 0000000..ab6516a
Binary files /dev/null and b/src/assets/img/demos/2025-04/dist.rar differ
diff --git a/src/assets/img/demos/2025-04/feed.txt b/src/assets/img/demos/2025-04/feed.txt
new file mode 100644
index 0000000..74340c9
--- /dev/null
+++ b/src/assets/img/demos/2025-04/feed.txt
@@ -0,0 +1,18 @@
+def fetch_tiktok_feed(mstoken,region):
+ mstoken = 'mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE='
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=g4gW1gFF-n8yPsVakDGDmrNHod_3BKquWkHI; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742537773%7C662969551ee538eab2dcdc43c3fe4040eb616fadb0643fdf214cd492020211bb; store-country-sign=MEIEDAsnjoHJTjFNneFmHAQgQR99HNzDAO_9D6SuCvfYF54a6DyVUejXuTNuzPiPad4EECxy0Xgv6zgOnvZRwbL1BOI; odin_tt=f6dd93d06620a488d2c682614b0220bd90ce162c6ed4519dd238268f2d093ba6681742fda279cbbc281003b9653189488b0835410c681b9dd606fc3bea583d1e7db3636194de935ad4fb5a4edb93bc7f; FPLC=0cwaDGpn9gDBc5kgScVenLiwA4ke7utdzOwoyYXd01vs%2BTmgjutMCQsNbb4Op9PIx91duASeDnByT92SJCBf7O9%2BcIrWqPtwAdF%2BnTeb9U9Qwtfe%2Fc5qsS4YtdCK3Q%3D%3D; csrfToken=UXnAHlaM-oJpqmZgGifEUaKBQt2qDZdEs5VE; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; msToken={mstoken}; _ga_LWWPCY99PB=GS1.1.1742537780.39.1.1742538627.0.0.1606106523'
+ }
+ try:
+ #req_from的属性需要重新设置为:webapp_taxonomy_drawer_enter_feed
+ url = f'https://webcast.tiktok.com/webcast/feed/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&channel_id=1222001&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&device_type=web_h265&focus_state=true&from_page=live&history_len=40&is_fullscreen=false&is_non_personalized=0&is_page_visible=true&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20®ion=PH&related_live_tag=chatting&req_from=pc_web_recommend_room&root_referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&webcast_language=zh-Hans&msToken={mstoken}&_signature=_02B4Z6wo000019C5TqAAAIDCn.1ptJ30HF.QuUoAAJP85b'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/get_batch(1).py b/src/assets/img/demos/2025-04/get_batch(1).py
new file mode 100644
index 0000000..7dcd804
--- /dev/null
+++ b/src/assets/img/demos/2025-04/get_batch(1).py
@@ -0,0 +1,291 @@
+#
+#
+#
+#
+#
+# import time
+#
+# import requests
+# import json
+#
+#
+# headers = {
+# "accept": "application/json, text/plain, */*",
+# "accept-language": "zh-CN,zh;q=0.9",
+# "content-type": "application/json",
+# "faction-id": "101876",
+# "origin": "https://live-backstage.tiktok.com",
+# "priority": "u=1, i",
+# "referer": "https://live-backstage.tiktok.com/portal/overview",
+# "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+# "sec-ch-ua-mobile": "?0",
+# "sec-ch-ua-platform": "\"Windows\"",
+# "sec-fetch-dest": "empty",
+# "sec-fetch-mode": "cors",
+# "sec-fetch-site": "same-origin",
+# "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
+# "x-appid": "1180",
+# "x-csrf-token": "undefined",
+# "x-language": "zh-Hans",
+# "x-secsdk-csrf-token": "000100000001a2b7d6e383fd83174d70e9e13de88857bec4f39be23c3cc0747401a9c94949971836beb4628ab5a8"
+# }
+# # cookies = {
+# # "s_v_web_id": "verify_m9jnunys_7L3fxVAj_Uvvc_4SFB_A6IR_0D77iQR4Lt7m",
+# # "passport_csrf_token": "590d7ce7c5c8652da08d29007a87ccb6",
+# # "passport_csrf_token_default": "590d7ce7c5c8652da08d29007a87ccb6",
+# # "d_ticket_backstage": "ba92711982ddeac04b9f98f2efd7007c08a5a",
+# # "uid_tt_backstage": "eb7edba319a8b3a84d255aa11422cdeb15c9c8aaf0f400a677b81d15d1134d2a",
+# # "uid_tt_ss_backstage": "eb7edba319a8b3a84d255aa11422cdeb15c9c8aaf0f400a677b81d15d1134d2a",
+# # "sid_tt_backstage": "b9c7e5436006785411420080dc2d37e3",
+# # "sessionid_backstage": "b9c7e5436006785411420080dc2d37e3",
+# # "sessionid_ss_backstage": "b9c7e5436006785411420080dc2d37e3",
+# # "sid_guard_backstage": "b9c7e5436006785411420080dc2d37e3%7C1744791584%7C5183996%7CSun%2C+15-Jun-2025+08%3A19%3A40+GMT",
+# # "sid_ucp_v1_backstage": "1.0.0-KDQ4NjY3YWVmNThjZDJiZGNmZjA5ZjVkYzE3ODE2YTZiMTM0ZWJkMjIKGAiGiJXQ7fTjjWcQoND9vwYYwTU4AUDrBxADGgZtYWxpdmEiIGI5YzdlNTQzNjAwNjc4NTQxMTQyMDA4MGRjMmQzN2Uz",
+# # "ssid_ucp_v1_backstage": "1.0.0-KDQ4NjY3YWVmNThjZDJiZGNmZjA5ZjVkYzE3ODE2YTZiMTM0ZWJkMjIKGAiGiJXQ7fTjjWcQoND9vwYYwTU4AUDrBxADGgZtYWxpdmEiIGI5YzdlNTQzNjAwNjc4NTQxMTQyMDA4MGRjMmQzN2Uz",
+# # "passport_fe_beating_status": "true",
+# # "ttwid": "1%7Crlwqo-RnA7TPzGAhHAlZM0qUuMLYN0hvXtvIQCB_rG8%7C1744791585%7Cad3d66e43c668ccb03ab28a959819057295614e399739f758a66fd87d2948e77",
+# # "csrf_session_id": "64b4328196b861edd2cb4767e1e8e6af",
+# # "cookie-consent": "{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}",
+# # "_ga": "GA1.1.459162136.1744791630",
+# # "_ga_GZB380RXJX": "GS1.1.1744791630.1.0.1744791630.0.0.621335016",
+# # "_ttp": "2vnrMVBnbyC0vMfL9K5BB9Z6u2o.tt.1",
+# # "_tt_enable_cookie": "1",
+# # "ttcsid": "1744791630532.1.1744791630532",
+# # "FPID": "FPID2.2.QwBg850AKLWqe1V7ktKFgMHXETPYV4c69zBuTI2YROc%3D.1744791630",
+# # "FPAU": "1.2.2009001839.1744791630",
+# # "_fbp": "fb.1.1744791630414.1545554243",
+# # "FPLC": "TPrN8cLVPjh9S9%2FHl5f0n3qn%2FoO58puhQxphpT30nwmqNaJF4bf%2Fp%2F8W%2B79lqOocCcZM4joA2atNh6Rgq8XLNk6RuOapiebbBLlPPVYfMT%2BOIU7ue8X0Eo4cAOVZzA%3D%3D",
+# # "ttcsid_CQ6FR3RC77U6L0AM21H0": "1744791630531.1.1744791632260",
+# # "msToken": "rlgeoikWiiMLU7swOLi_DbXpdPBODXkJXUEai-SnWUYnrplV6caHRU3NwHyvUqF0c5XOYhZgt_CTfKJxX8xGy_OC6qf_wYIKDGaS5jjNUc3xdzzC0x9ZAyu0yRz1I5bEjeUg4M96"
+# # }
+#
+# cookies = {
+# # 'passport_fe_beating_status': 'true',
+# # 'ssid_ucp_v1_backstage': '1.0.0-KDcwMjIzNjMzYTU1MDViNzVhZjQwZjc4MDJjNWQ4MzU0MmZkOGFjNzgKGAiGiJXQ7fTjjWcQjNP9vwYYwTU4AUDrBxADGgZtYWxpdmEiIDY4YzI2MGU5NDA0MjM2NzdjZTg3OTk3Y2RhOWM5MTM0',
+# # 'msToken': 'OjoXovaKDp-RmE3AZfQiUsROHEQp6quvuDjNnD_nlWrhSK5mtSoaVHfixIAffIr69G3j9rA3PJuN0wk4qnPeFv5TWyS41f9t22XjgoJUQVJmGV9bYvlf3SbEwl1qQ1UjxwX3x8sP',
+# # 'sessionid_backstage': '68c260e940423677ce87997cda9c9134',
+# 'sid_guard_backstage': 'e9001a915acfa5e8d59ce9a1b0ab80c8%7C1744797728%7C5183997%7CSun%2C+15-Jun-2025+10%3A02%3A05+GMT',
+#
+# # 'ttwid': '1%7CjH6u3QfKY8-doLE8Fi0l-OcHoE9FQN6BVXNoHsgR1rM%7C1744791948%7Ca0db477248e6592c7187aa9ae35d2510d12eeef8a72f6d890ed575b9630eebe3',
+# # 'sid_tt_backstage': '68c260e940423677ce87997cda9c9134',
+# # 'sessionid_ss_backstage': '68c260e940423677ce87997cda9c9134',
+# # 'uid_tt_backstage': '9664c926b9174006e075c864cc536924534b21797ae3e4904a4332c029504951',
+# 's_v_web_id': 'verify_m9jriexs_oiMl5mD8_bQd7_4Syc_96ap_oHAEkLfAdBbr',
+# # 'd_ticket_backstage': 'e3623469149bc2d303235e0611ffae7e260c0',
+# # 'sid_ucp_v1_backstage': '1.0.0-KDcwMjIzNjMzYTU1MDViNzVhZjQwZjc4MDJjNWQ4MzU0MmZkOGFjNzgKGAiGiJXQ7fTjjWcQjNP9vwYYwTU4AUDrBxADGgZtYWxpdmEiIDY4YzI2MGU5NDA0MjM2NzdjZTg3OTk3Y2RhOWM5MTM0',
+# # 'passport_csrf_token_default': '09ab6e51d45589114c948d7a434decc0',
+# # 'uid_tt_ss_backstage': '9664c926b9174006e075c864cc536924534b21797ae3e4904a4332c029504951',
+# # 'passport_csrf_token': '09ab6e51d45589114c948d7a434decc0'
+# }
+#
+# # cookies = {
+# # "s_v_web_id": "verify_m9jriexs_oiMl5mD8_bQd7_4Syc_96ap_oHAEkLfAdBbr",
+# # "passport_csrf_token": "41002584d346ed70266ccfded87a63b5",
+# # "passport_csrf_token_default": "41002584d346ed70266ccfded87a63b5",
+# # "d_ticket_backstage": "719b1840fbea4af44bbe4e9064e3c8609443d",
+# # "uid_tt_backstage": "eb1f56382f3e2963bc8e6425029651357fb295379501e752b51f47ee33fd3b5f",
+# # "uid_tt_ss_backstage": "eb1f56382f3e2963bc8e6425029651357fb295379501e752b51f47ee33fd3b5f",
+# # "sid_tt_backstage": "e9001a915acfa5e8d59ce9a1b0ab80c8",
+# # "sessionid_backstage": "e9001a915acfa5e8d59ce9a1b0ab80c8",
+# # "sessionid_ss_backstage": "e9001a915acfa5e8d59ce9a1b0ab80c8",
+# # "sid_guard_backstage": "e9001a915acfa5e8d59ce9a1b0ab80c8%7C1744797728%7C5183997%7CSun%2C+15-Jun-2025+10%3A02%3A05+GMT",
+# # "sid_ucp_v1_backstage": "1.0.0-KGVhMTMzNTliYjVlZmZjOWEzMGJkYjI2ZmMyMmM1OWM4MmQ0ODYzNDMKGAiSiNaglIHTtmcQoID-vwYYwTU4AUDrBxADGgZtYWxpdmEiIGU5MDAxYTkxNWFjZmE1ZThkNTljZTlhMWIwYWI4MGM4",
+# # "ssid_ucp_v1_backstage": "1.0.0-KGVhMTMzNTliYjVlZmZjOWEzMGJkYjI2ZmMyMmM1OWM4MmQ0ODYzNDMKGAiSiNaglIHTtmcQoID-vwYYwTU4AUDrBxADGgZtYWxpdmEiIGU5MDAxYTkxNWFjZmE1ZThkNTljZTlhMWIwYWI4MGM4",
+# # "passport_fe_beating_status": "true",
+# # "ttwid": "1%7Cfp5Gb1OQNsxg8aJybfHCK9L9yqtYpRyQ1M3viBOr72I%7C1744797729%7Ceae5426c3f8990a2e8ef03dea9cac4b9dbc704ef0d669e0a92e39692f88472c9",
+# # "csrf_session_id": "64b4328196b861edd2cb4767e1e8e6af",
+# # "msToken": "wNDPPUqbXTafGw9Q_XcnT9VuWG9duaLcmlo2gwPHz97WYwv2eFsPlw250M2Uzw7951EtGnzSiBYAdWEwroxQCt6Kw9XxLVRJv4AyNDEnWxIM41N3e3CiZI3GCVkTRhR8-ahOoys=",
+# # "cookie-consent": "{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}",
+# # "_ga": "GA1.1.1962967800.1744797925",
+# # "_ttp": "2vo47ZF1HgA1kvSWkaHPBMaVr3p.tt.1",
+# # "_tt_enable_cookie": "1",
+# # "ttcsid": "1744797925882.1.1744797925882",
+# # "ttcsid_CQ6FR3RC77U6L0AM21H0": "1744797925879.1.1744797926920",
+# # "_ga_GZB380RXJX": "GS1.1.1744797925.1.0.1744797933.0.0.912964856"
+# # }
+#
+# # cookies = {'ssid_ucp_v1_backstage': '1.0.0-KDlkMmVjYmM3OWJmYzhmMTVlZWY2MjVlYTQxNWZjZDk4ZDdjYWE3ZWQKGAiCiKiQ2IHy5WQQ2eb9vwYYwTU4AUDrBxADGgZtYWxpdmEiIGExZTVkMDcyNzE3NDA0ZjI5NTdiZGNjMzNmMDNmMWM2', 'sid_guard_backstage': 'a1e5d072717404f2957bdcc33f03f1c6%7C1744794457%7C5183996%7CSun%2C+15-Jun-2025+09%3A07%3A33+GMT', 'passport_csrf_token_default': 'f3aab5003a123929eb452d6a01c5b376', 'msToken': 'VGMaZjyaDbyoH0GTawM3FlUEos1M10jw75oDzk4rFKR2ZYLrKT7m3xrhTmITDKMilFpkLd_dT_wOrpslLDR4n3JPsjRka4Cl-Tr35UWCTUCpdnGH-6uE-wqSRJ98K_51ciUxOHc=', 'sessionid_backstage': 'a1e5d072717404f2957bdcc33f03f1c6', 'd_ticket_backstage': 'c18b04f68b3731bb7a63183af62500228b404', 'ttwid': '1%7CIRh8FYc5kUsBw7NtTYy2GseVFUcjT1n3JJkdTMPMOCo%7C1744794457%7Cbdc793f3160263f868d510d10b0eca4bb0d75806bb874b5f0879e29357eb3bb4', 'sid_tt_backstage': 'a1e5d072717404f2957bdcc33f03f1c6', 'uid_tt_ss_backstage': '7f5d2cc504c32e89e239121ff970fb71c4e88bc23b4fd7760d238997cde6cd28', 'passport_csrf_token': 'f3aab5003a123929eb452d6a01c5b376', 'sessionid_ss_backstage': 'a1e5d072717404f2957bdcc33f03f1c6', 'passport_fe_beating_status': 'true', 'FPLC': 'NkDJld6G5Xs%2F6Nru7Yjrp1wqHLQC4xsd2EGqeKMlo37f%2FMlcBIKnwdyi7ATF5%2FD8c6AZnaKBSDa22ZlndZh%2FzEdxUhxGZCJH9viBw5YDCWFtuuyRL7LhbeX1wpsOUw%3D%3D', '_ttp': '2vnx58uRsi4nL7G25nmUCASbXjD.tt.1', '_tt_enable_cookie': '1', 'FPID': 'FPID2.2.1YH%2FQoB3qTFFKLI6JqGiKf3qel9Ac2%2FF4Z6ouegPPnw%3D.1744794452', 'ttcsid': '1744794452818.1.1744794452818', 'sid_ucp_v1_backstage': '1.0.0-KDlkMmVjYmM3OWJmYzhmMTVlZWY2MjVlYTQxNWZjZDk4ZDdjYWE3ZWQKGAiCiKiQ2IHy5WQQ2eb9vwYYwTU4AUDrBxADGgZtYWxpdmEiIGExZTVkMDcyNzE3NDA0ZjI5NTdiZGNjMzNmMDNmMWM2', 'FPAU': '1.2.418031211.1744794453', 'ttcsid_CQ6FR3RC77U6L0AM21H0': '1744794452815.1.1744794453039', 'cookie-consent': '{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}', '_ga_GZB380RXJX': 'GS1.1.1744794451.1.0.1744794456.0.0.110277459', 's_v_web_id': 'verify_m9jpjz5d_WPnZ4RSj_9wVY_4i8C_8S92_vIAYfsalgZ8Q', '_fbp': 'fb.1.1744794452782.1040477631', '_ga': 'GA1.1.1676829406.1744794452', 'uid_tt_backstage': '7f5d2cc504c32e89e239121ff970fb71c4e88bc23b4fd7760d238997cde6cd28'}
+# url = "https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/"
+#
+# params = {
+# "msToken": "wNDPPUqbXTafGw9Q_XcnT9VuWG9duaLcmlo2gwPHz97WYwv2eFsPlw250M2Uzw7951EtGnzSiBYAdWEwroxQCt6Kw9XxLVRJv4AyNDEnWxIM41N3e3CiZI3GCVkTRhR8-ahOoys=",
+# "X-Bogus": "DFSzswjLrEWKNMwBtgzgoUkX95zH",
+# "_signature": "_02B4Z6wo0000185DMDgAAIDD-Wf0ZmiybIPOQySAAJR4d4"
+# }
+# data = {
+# "DisplayIDList": [
+# "roseanne3360",
+# "nikastore.id",
+# "bg.bara07",
+# "_24_1234",
+# "_callsign_shade",
+# "_caramelihtwo",
+# "_etthandavidd",
+# "_itsmeemm",
+# "_ludi_milojko_11",
+# "_majesticstyles",
+# "_marinkaaaa_3333",
+# "_mjanaque",
+# "_monami_mode",
+# "_nailsforqueens",
+# "_nan4s",
+# "_nine_live",
+# "_nixleodeon",
+# "_ow_yu_",
+# "_posss",
+# "_saiji07",
+# "_storiesbygia",
+# "_yourazi",
+# "._.kristenn",
+# ".1973560",
+# ".407978",
+# ".couplecards",
+# ]
+# }
+# data = json.dumps(data, separators=(',', ':'))
+# response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+#
+# print(response.text)
+# print(response)
+# Z_count = 0
+# count = 0
+# start = time.time()
+#
+# while True:
+#
+# response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+# Z_count += 1
+# if response.text:
+# print(response.text)
+# end = time.time()
+# print("请求了,", count, "次", "花费了", end - start, "秒")
+# count += 1
+# if count >= 70:
+# print("已经成功查询70次")
+# break
+# else:
+#
+# continue
+#
+# print(f"总共请求了{Z_count}次")
+import time
+
+import requests
+import json
+
+
+headers = {
+ "accept": "application/json, text/plain, */*",
+ "accept-language": "zh-CN,zh;q=0.9",
+ "content-type": "application/json",
+ "faction-id": "101796",
+ "origin": "https://live-backstage.tiktok.com",
+ "priority": "u=1, i",
+ "referer": "https://live-backstage.tiktok.com/portal/overview",
+ "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+ "sec-ch-ua-mobile": "?0",
+ "sec-ch-ua-platform": "\"Windows\"",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
+ "x-appid": "1180",
+ "x-csrf-token": "undefined",
+ "x-language": "zh-Hans",
+ "x-secsdk-csrf-token": "0001000000014c377dafa1df1b5bac3ac8af1cef5aefde81ad5f4def70525f94a0c8d2cf159c1836c44ada2d96f3"
+}
+cookies = {
+ # 关键参数1
+ # "s_v_web_id": "verify_m9jpjz5d_WPnZ4RSj_9wVY_4i8C_8S92_vIAYfsalgZ8Q",
+ "s_v_web_id": "verify_m9jt7e2e_4e7QzejO_Httr_4yqQ_8dPB_gdFy61liMmNh",
+
+ "passport_csrf_token": "41002584d346ed70266ccfded87a63b5",
+ "passport_csrf_token_default": "41002584d346ed70266ccfded87a63b5",
+ "d_ticket_backstage": "719b1840fbea4af44bbe4e9064e3c8609443d",
+ "uid_tt_backstage": "eb1f56382f3e2963bc8e6425029651357fb295379501e752b51f47ee33fd3b5f",
+ "uid_tt_ss_backstage": "eb1f56382f3e2963bc8e6425029651357fb295379501e752b51f47ee33fd3b5f",
+ "sid_tt_backstage": "e9001a915acfa5e8d59ce9a1b0ab80c8",
+ "sessionid_backstage": "e9001a915acfa5e8d59ce9a1b0ab80c8",
+ "sessionid_ss_backstage": "e9001a915acfa5e8d59ce9a1b0ab80c8",
+ # 关键参数2
+ # "sid_guard_backstage": "a1e5d072717404f2957bdcc33f03f1c6%7C1744794457%7C5183996%7CSun%2C+15-Jun-2025+09%3A07%3A33+GMT",
+ "sid_guard_backstage": "3a739e9a176acf6c0f32f354ef84caf4%7C1744800570%7C5184000%7CSun%2C+15-Jun-2025+10%3A49%3A30+GMT",
+ "sid_ucp_v1_backstage": "1.0.0-KGVhMTMzNTliYjVlZmZjOWEzMGJkYjI2ZmMyMmM1OWM4MmQ0ODYzNDMKGAiSiNaglIHTtmcQoID-vwYYwTU4AUDrBxADGgZtYWxpdmEiIGU5MDAxYTkxNWFjZmE1ZThkNTljZTlhMWIwYWI4MGM4",
+ "ssid_ucp_v1_backstage": "1.0.0-KGVhMTMzNTliYjVlZmZjOWEzMGJkYjI2ZmMyMmM1OWM4MmQ0ODYzNDMKGAiSiNaglIHTtmcQoID-vwYYwTU4AUDrBxADGgZtYWxpdmEiIGU5MDAxYTkxNWFjZmE1ZThkNTljZTlhMWIwYWI4MGM4",
+ "passport_fe_beating_status": "true",
+ "ttwid": "1%7Cfp5Gb1OQNsxg8aJybfHCK9L9yqtYpRyQ1M3viBOr72I%7C1744797729%7Ceae5426c3f8990a2e8ef03dea9cac4b9dbc704ef0d669e0a92e39692f88472c9",
+ "csrf_session_id": "64b4328196b861edd2cb4767e1e8e6af",
+ "cookie-consent": "{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}",
+ "_ga": "GA1.1.1962967800.1744797925",
+ "_ttp": "2vo47ZF1HgA1kvSWkaHPBMaVr3p.tt.1",
+ "_tt_enable_cookie": "1",
+ "ttcsid": "1744797925882.1.1744797925882",
+ "ttcsid_CQ6FR3RC77U6L0AM21H0": "1744797925879.1.1744797926920",
+ "_ga_GZB380RXJX": "GS1.1.1744797925.1.0.1744797933.0.0.912964856",
+ "msToken": "2pESiV4xZIic204nHe3L03vVnu_KW9SUEoRdA4GOl4IxuCgTC3NgID1BGj4dyW35gxEW-b3UamTrYn9JDTSfn7YVzxf2QiN1Cpa0tWknO4aeswfH2NZXTzV8j5Ht8uSs-3z82Vk="
+}
+url = "https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/"
+params = {
+ "msToken": "2pESiV4xZIic204nHe3L03vVnu_KW9SUEoRdA4GOl4IxuCgTC3NgID1BGj4dyW35gxEW-b3UamTrYn9JDTSfn7YVzxf2QiN1Cpa0tWknO4aeswfH2NZXTzV8j5Ht8uSs-3z82Vk=",
+ "X-Bogus": "DFSzswjLrh8KNMwBtgzDKzkX95mA",
+ "_signature": "_02B4Z6wo00001jUK6VgAAIDCAi4tBw.gE8Y1Cv3AAOrLe1"
+}
+
+
+
+data = {
+ "DisplayIDList": [
+ "roseanne3360",
+ "nikastore.id",
+ "bg.bara07",
+ "_24_1234",
+ "_callsign_shade",
+ "_caramelihtwo",
+ "_etthandavidd",
+ "_itsmeemm",
+ "_ludi_milojko_11",
+ "_majesticstyles",
+ "_marinkaaaa_3333",
+ "_mjanaque",
+ "_monami_mode",
+ "_nailsforqueens",
+ "_nan4s",
+ "_nine_live",
+ "_nixleodeon",
+ "_ow_yu_",
+ "_posss",
+ "_saiji07",
+ "_storiesbygia",
+ "_yourazi",
+ "._.kristenn",
+ ".1973560",
+ ".407978",
+ ".couplecards",
+ ]
+}
+data = json.dumps(data, separators=(',', ':'))
+response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+
+print(response.text)
+print(response)
+Z_count = 0
+count = 0
+start = time.time()
+
+while True:
+
+ response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+ Z_count += 1
+ if response.text:
+ print(response.text)
+ end = time.time()
+ print("请求了,", count, "次", "花费了", end - start, "秒")
+ count += 1
+ if count >= 70:
+ print("已经成功查询70次")
+ break
+ else:
+
+ continue
+
+print(f"总共请求了{Z_count}次")
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/get_batch.py b/src/assets/img/demos/2025-04/get_batch.py
new file mode 100644
index 0000000..7d032b2
--- /dev/null
+++ b/src/assets/img/demos/2025-04/get_batch.py
@@ -0,0 +1,195 @@
+# import base64
+# import json
+# import time
+# import requests
+# from DrissionPage import ChromiumPage
+# from DrissionPage import ChromiumOptions
+# from PIL import Image, ImageDraw
+# import random
+# from DrissionPage.common import Actions
+#
+#
+# class batch_check_anchor:
+#
+# def __init__(self, username, password):
+# # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+# self.username = username
+# self.password = password
+# start_time = time.time()
+# co = ChromiumOptions()
+# # 设置不加载图片、静音
+# co.mute(True)
+# co.headless(False)
+# co.auto_port(True)
+# self.page = ChromiumPage(co)
+# self.page.set.window.max()
+# # self.page.set.cookies.clear()
+# self.page.get('https://live-backstage.tiktok.com/portal/overview')
+#
+#
+# def get_cookies(self):
+# while True:
+# loginele = self.page.ele("@data-id=login")
+# if loginele:
+# #
+# # self.page.set.window.show()
+# # 点击登录按钮
+# self.page.ele("@data-id=login").click()
+# time.sleep(random.random())
+# # 输入账号
+# self.page.ele("@class=semi-input semi-input-default").input(self.username, clear=True)
+# time.sleep(random.random())
+# # 输入密码
+# self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(self.password,
+# clear=True)
+# # 点击进行登录
+# time.sleep(random.random())
+# login = self.page.ele("@data-id=login-primary-button").click()
+#
+# if loginele:
+# break
+#
+# while True:
+# try:
+# loginele = self.page.ele("@data-id=login", timeout=1)
+# if not loginele:
+# print('后台登录成功')
+# # self.page.set.window.hide()
+# # self.page.set.timeouts(3)
+# cookies = self.page.cookies()
+# cookies_dict = {cookie['name']: cookie['value'] for cookie in cookies}
+# print(cookies_dict)
+# return cookies_dict
+#
+# time.sleep(0.2)
+# except:
+# pass
+#
+#
+# b = batch_check_anchor("wmlcca@tiktok0.xyz","niu995228.")
+# print(b.get_cookies())
+
+
+
+
+import time
+
+import requests
+import json
+
+
+headers = {
+ "accept": "application/json, text/plain, */*",
+ "accept-language": "zh-CN,zh;q=0.9",
+ "content-type": "application/json",
+ "faction-id": "101876",
+ "origin": "https://live-backstage.tiktok.com",
+ "priority": "u=1, i",
+ "referer": "https://live-backstage.tiktok.com/portal/overview",
+ "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+ "sec-ch-ua-mobile": "?0",
+ "sec-ch-ua-platform": "\"Windows\"",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
+ "x-appid": "1180",
+ "x-csrf-token": "undefined",
+ "x-language": "zh-Hans",
+ "x-secsdk-csrf-token": "000100000001a2b7d6e383fd83174d70e9e13de88857bec4f39be23c3cc0747401a9c94949971836beb4628ab5a8"
+}
+# cookies = {
+# "s_v_web_id": "verify_m9jnunys_7L3fxVAj_Uvvc_4SFB_A6IR_0D77iQR4Lt7m",
+# "passport_csrf_token": "590d7ce7c5c8652da08d29007a87ccb6",
+# "passport_csrf_token_default": "590d7ce7c5c8652da08d29007a87ccb6",
+# "d_ticket_backstage": "ba92711982ddeac04b9f98f2efd7007c08a5a",
+# "uid_tt_backstage": "eb7edba319a8b3a84d255aa11422cdeb15c9c8aaf0f400a677b81d15d1134d2a",
+# "uid_tt_ss_backstage": "eb7edba319a8b3a84d255aa11422cdeb15c9c8aaf0f400a677b81d15d1134d2a",
+# "sid_tt_backstage": "b9c7e5436006785411420080dc2d37e3",
+# "sessionid_backstage": "b9c7e5436006785411420080dc2d37e3",
+# "sessionid_ss_backstage": "b9c7e5436006785411420080dc2d37e3",
+# "sid_guard_backstage": "b9c7e5436006785411420080dc2d37e3%7C1744791584%7C5183996%7CSun%2C+15-Jun-2025+08%3A19%3A40+GMT",
+# "sid_ucp_v1_backstage": "1.0.0-KDQ4NjY3YWVmNThjZDJiZGNmZjA5ZjVkYzE3ODE2YTZiMTM0ZWJkMjIKGAiGiJXQ7fTjjWcQoND9vwYYwTU4AUDrBxADGgZtYWxpdmEiIGI5YzdlNTQzNjAwNjc4NTQxMTQyMDA4MGRjMmQzN2Uz",
+# "ssid_ucp_v1_backstage": "1.0.0-KDQ4NjY3YWVmNThjZDJiZGNmZjA5ZjVkYzE3ODE2YTZiMTM0ZWJkMjIKGAiGiJXQ7fTjjWcQoND9vwYYwTU4AUDrBxADGgZtYWxpdmEiIGI5YzdlNTQzNjAwNjc4NTQxMTQyMDA4MGRjMmQzN2Uz",
+# "passport_fe_beating_status": "true",
+# "ttwid": "1%7Crlwqo-RnA7TPzGAhHAlZM0qUuMLYN0hvXtvIQCB_rG8%7C1744791585%7Cad3d66e43c668ccb03ab28a959819057295614e399739f758a66fd87d2948e77",
+# "csrf_session_id": "64b4328196b861edd2cb4767e1e8e6af",
+# "cookie-consent": "{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}",
+# "_ga": "GA1.1.459162136.1744791630",
+# "_ga_GZB380RXJX": "GS1.1.1744791630.1.0.1744791630.0.0.621335016",
+# "_ttp": "2vnrMVBnbyC0vMfL9K5BB9Z6u2o.tt.1",
+# "_tt_enable_cookie": "1",
+# "ttcsid": "1744791630532.1.1744791630532",
+# "FPID": "FPID2.2.QwBg850AKLWqe1V7ktKFgMHXETPYV4c69zBuTI2YROc%3D.1744791630",
+# "FPAU": "1.2.2009001839.1744791630",
+# "_fbp": "fb.1.1744791630414.1545554243",
+# "FPLC": "TPrN8cLVPjh9S9%2FHl5f0n3qn%2FoO58puhQxphpT30nwmqNaJF4bf%2Fp%2F8W%2B79lqOocCcZM4joA2atNh6Rgq8XLNk6RuOapiebbBLlPPVYfMT%2BOIU7ue8X0Eo4cAOVZzA%3D%3D",
+# "ttcsid_CQ6FR3RC77U6L0AM21H0": "1744791630531.1.1744791632260",
+# "msToken": "rlgeoikWiiMLU7swOLi_DbXpdPBODXkJXUEai-SnWUYnrplV6caHRU3NwHyvUqF0c5XOYhZgt_CTfKJxX8xGy_OC6qf_wYIKDGaS5jjNUc3xdzzC0x9ZAyu0yRz1I5bEjeUg4M96"
+# }
+
+cookies = {'passport_fe_beating_status': 'true', 'ssid_ucp_v1_backstage': '1.0.0-KDcwMjIzNjMzYTU1MDViNzVhZjQwZjc4MDJjNWQ4MzU0MmZkOGFjNzgKGAiGiJXQ7fTjjWcQjNP9vwYYwTU4AUDrBxADGgZtYWxpdmEiIDY4YzI2MGU5NDA0MjM2NzdjZTg3OTk3Y2RhOWM5MTM0', 'msToken': 'OjoXovaKDp-RmE3AZfQiUsROHEQp6quvuDjNnD_nlWrhSK5mtSoaVHfixIAffIr69G3j9rA3PJuN0wk4qnPeFv5TWyS41f9t22XjgoJUQVJmGV9bYvlf3SbEwl1qQ1UjxwX3x8sP', 'sessionid_backstage': '68c260e940423677ce87997cda9c9134', 'sid_guard_backstage': '68c260e940423677ce87997cda9c9134%7C1744791948%7C5183997%7CSun%2C+15-Jun-2025+08%3A25%3A45+GMT', 'ttwid': '1%7CjH6u3QfKY8-doLE8Fi0l-OcHoE9FQN6BVXNoHsgR1rM%7C1744791948%7Ca0db477248e6592c7187aa9ae35d2510d12eeef8a72f6d890ed575b9630eebe3', 'sid_tt_backstage': '68c260e940423677ce87997cda9c9134', 'sessionid_ss_backstage': '68c260e940423677ce87997cda9c9134', 'uid_tt_backstage': '9664c926b9174006e075c864cc536924534b21797ae3e4904a4332c029504951', 's_v_web_id': 'verify_m9jo2k5y_KvKEHrUu_TCKv_4mN5_Bs2U_BjJoJtwBKYfQ', 'd_ticket_backstage': 'e3623469149bc2d303235e0611ffae7e260c0', 'sid_ucp_v1_backstage': '1.0.0-KDcwMjIzNjMzYTU1MDViNzVhZjQwZjc4MDJjNWQ4MzU0MmZkOGFjNzgKGAiGiJXQ7fTjjWcQjNP9vwYYwTU4AUDrBxADGgZtYWxpdmEiIDY4YzI2MGU5NDA0MjM2NzdjZTg3OTk3Y2RhOWM5MTM0', 'passport_csrf_token_default': '09ab6e51d45589114c948d7a434decc0', 'uid_tt_ss_backstage': '9664c926b9174006e075c864cc536924534b21797ae3e4904a4332c029504951', 'passport_csrf_token': '09ab6e51d45589114c948d7a434decc0'}
+
+url = "https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/"
+params = {
+ "msToken": "rlgeoikWiiMLU7swOLi_DbXpdPBODXkJXUEai-SnWUYnrplV6caHRU3NwHyvUqF0c5XOYhZgt_CTfKJxX8xGy_OC6qf_wYIKDGaS5jjNUc3xdzzC0x9ZAyu0yRz1I5bEjeUg4M96",
+ "X-Bogus": "DFSzswjLhJXVFFwBtgmuCtkX95zy",
+ "_signature": "_02B4Z6wo00001rpdaoAAAIDCjXmu34pMyca6XX4AAMl0e1"
+}
+data = {
+ "DisplayIDList": [
+ "roseanne3360",
+ "nikastore.id",
+ "bg.bara07",
+ "_24_1234",
+ "_callsign_shade",
+ "_caramelihtwo",
+ "_etthandavidd",
+ "_itsmeemm",
+ "_ludi_milojko_11",
+ "_majesticstyles",
+ "_marinkaaaa_3333",
+ "_mjanaque",
+ "_monami_mode",
+ "_nailsforqueens",
+ "_nan4s",
+ "_nine_live",
+ "_nixleodeon",
+ "_ow_yu_",
+ "_posss",
+ "_saiji07",
+ "_storiesbygia",
+ "_yourazi",
+ "._.kristenn",
+ ".1973560",
+ ".407978",
+ ".couplecards",
+ ]
+}
+data = json.dumps(data, separators=(',', ':'))
+response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+
+print(response.text)
+print(response)
+Z_count = 0
+count = 0
+start = time.time()
+
+while True:
+
+ response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+ time.sleep(2)
+ Z_count += 1
+ if response.text:
+ print(response.text)
+ end = time.time()
+ print("请求了,", count, "次", "花费了", end - start, "秒")
+ count += 1
+ if count >= 70:
+ print("已经成功查询70次")
+ break
+ else:
+
+ continue
+
+print(f"总共请求了{Z_count}次")
diff --git a/src/assets/img/demos/2025-04/get_page_cookie.py b/src/assets/img/demos/2025-04/get_page_cookie.py
new file mode 100644
index 0000000..e52abb4
--- /dev/null
+++ b/src/assets/img/demos/2025-04/get_page_cookie.py
@@ -0,0 +1,219 @@
+
+
+import json
+import random
+import threading
+import time
+import requests
+from DrissionPage import ChromiumOptions
+from DrissionPage import ChromiumPage
+
+import urllib3
+
+urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) # Python3
+
+
+class get_page_cookie:
+
+ def __init__(self, username, password, callBack):
+ self.callBack = callBack
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time = time.time()
+ co = ChromiumOptions()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ self.page.set.window.max()
+ # self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+ while True:
+ loginele = self.page.ele("@data-id=login")
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(0.5)
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username, clear=True)
+ time.sleep(0.5)
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,
+ clear=True)
+ # 点击进行登录
+ time.sleep(0.5)
+ login = self.page.ele("@data-id=login-primary-button").click()
+
+ if loginele:
+ break
+
+ while True:
+ try:
+ loginele = self.page.ele("@data-id=login", timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ # self.page.set.timeouts(3)
+ cookies = self.page.cookies()
+ cookies_dict = {cookie['name']: cookie['value'] for cookie in cookies}
+ self.cookie1 = cookies_dict
+ self.s_v_web_id = cookies_dict["s_v_web_id"]
+ self.sid_guard_backstage = cookies_dict["sid_guard_backstage"]
+ self.msToken = cookies_dict["msToken"]
+ self.sessionid_backstage = cookies_dict["sessionid_backstage"]
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ print("1.开启线程")
+ threading.Thread(target=self.checkCodeStatus).start()
+
+ def checkCodeStatus(self):
+ print("2.线程启动")
+ self.page.listen.start(
+ 'https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+
+ while True:
+ time.sleep(1)
+ res = self.page.listen.wait(1)
+ header = res.request.headers
+
+ print("3.监听")
+ self.url = res.request.url
+ self.cookie = res.request.headers.get("Cookie")
+
+ self.x_secsdk_csrf_token = header["x-secsdk-csrf-token"]
+ self.faction_id = header['faction-id']
+ self.x_csrf_token = header['x-csrf-token']
+
+ # headers = {
+ # "accept": "application/json, text/plain, */*",
+ # "accept-language": "zh-CN,zh;q=0.9",
+ # "content-type": "application/json",
+ # # "faction-id": "101796",
+ # "faction-id": self.faction_id,
+ # "origin": "https://live-backstage.tiktok.com",
+ # "priority": "u=1, i",
+ # "referer": "https://live-backstage.tiktok.com/portal/overview",
+ # "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+ # "sec-ch-ua-mobile": "?0",
+ # "sec-ch-ua-platform": "\"Windows\"",
+ # "sec-fetch-dest": "empty",
+ # "sec-fetch-mode": "cors",
+ # "sec-fetch-site": "same-origin",
+ # "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
+ # "x-appid": "1180",
+ # # "x-csrf-token": "undefined",
+ # "x-csrf-token": self.x_csrf_token,
+ # "x-language": "zh-Hans",
+ # # "x-secsdk-csrf-token": f"0001000000014c377dafa1df1b5bac3ac8af1cef5aefde81ad5f4def70525f94a0c8d2cf159c1836c44ada2d96f3"
+ # "x-secsdk-csrf-token": self.x_secsdk_csrf_token,
+ # # "Cookie": self.cookie1
+ #
+ # }
+
+ # if response.text:
+ # # print('111', response.text)
+ # if "BaseResp" in response.json():
+ # # print('111',response.text)
+ #
+ # else:
+ # pass
+
+ if "BaseResp" not in res.response.body:
+ print("到此登录完成")
+ self.callBack()
+ self.page.set.window.hide()
+ print("隐藏页面")
+ # else:
+ # print("查询遇到验证码")
+ # self.page.set.window.show()
+
+ # 查询主播
+ def get_anchor_with_ids(self, ids):
+ headers = {
+ "accept": "application/json, text/plain, */*",
+ "accept-language": "zh-CN,zh;q=0.9",
+ "content-type": "application/json",
+ # "faction-id": "101796",
+ "faction-id": self.faction_id,
+ "origin": "https://live-backstage.tiktok.com",
+ "priority": "u=1, i",
+ "referer": "https://live-backstage.tiktok.com/portal/overview",
+ "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+ "sec-ch-ua-mobile": "?0",
+ "sec-ch-ua-platform": "\"Windows\"",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
+ "x-appid": "1180",
+ # "x-csrf-token": "undefined",
+ "x-csrf-token": self.x_csrf_token,
+ "x-language": "zh-Hans",
+ # "x-secsdk-csrf-token": f"0001000000014c377dafa1df1b5bac3ac8af1cef5aefde81ad5f4def70525f94a0c8d2cf159c1836c44ada2d96f3"
+ "x-secsdk-csrf-token": self.x_secsdk_csrf_token,
+ "Cookie": self.cookie
+
+ }
+
+ data1 = {
+ "DisplayIDList": ["测试"]
+ }
+
+ data1 = json.dumps(data1, separators=(',', ':'))
+ url1 = "https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/"
+
+ params1 = {
+ "msToken": self.msToken,
+ "X-Bogus": "DFSzswjLrh8KNMwBtgzDKzkX95mA",
+ "_signature": "_02B4Z6wo00001jUK6VgAAIDCAi4tBw.gE8Y1Cv3AAOrLe1"
+ }
+
+ while True:
+ response = requests.post(url1, headers=headers, data=data1, params=params1, cookies=self.cookie1,
+ verify=False)
+
+ print(response.text)
+ if response.text:
+ if "BaseResp" in response.json():
+ self.page.set.window.show()
+ break
+ elif "data" in response.json():
+ break
+
+
+
+
+
+ url = self.url
+ # url = "https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/"
+ # params = {
+ # "msToken": self.msToken,
+ # "X-Bogus": "DFSzswjLrh8KNMwBtgzDKzkX95mA",
+ # "_signature": "_02B4Z6wo00001jUK6VgAAIDCAi4tBw.gE8Y1Cv3AAOrLe1"
+ # }
+
+ data = {
+ "DisplayIDList": ids
+ }
+
+ data = json.dumps(data, separators=(',', ':'))
+
+ while True:
+
+ # response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+ response = requests.post(url, headers=headers, data=data)
+ print("1", url)
+ print("2", headers)
+ print("3", data)
+
+ print(response.text, "rrr")
+
+ if response.text:
+ return response.json()
+ else:
+ time.sleep(1)
diff --git a/src/assets/img/demos/2025-04/logo_super(1).ico b/src/assets/img/demos/2025-04/logo_super(1).ico
new file mode 100644
index 0000000..6660b5d
Binary files /dev/null and b/src/assets/img/demos/2025-04/logo_super(1).ico differ
diff --git a/src/assets/img/demos/2025-04/logo_super(2).ico b/src/assets/img/demos/2025-04/logo_super(2).ico
new file mode 100644
index 0000000..6660b5d
Binary files /dev/null and b/src/assets/img/demos/2025-04/logo_super(2).ico differ
diff --git a/src/assets/img/demos/2025-04/logo_super.ico b/src/assets/img/demos/2025-04/logo_super.ico
new file mode 100644
index 0000000..6660b5d
Binary files /dev/null and b/src/assets/img/demos/2025-04/logo_super.ico differ
diff --git a/src/assets/img/demos/2025-04/python.zip b/src/assets/img/demos/2025-04/python.zip
new file mode 100644
index 0000000..b1530df
Binary files /dev/null and b/src/assets/img/demos/2025-04/python.zip differ
diff --git a/src/assets/img/demos/2025-04/sql.txt b/src/assets/img/demos/2025-04/sql.txt
new file mode 100644
index 0000000..b3b6d0e
--- /dev/null
+++ b/src/assets/img/demos/2025-04/sql.txt
@@ -0,0 +1,44 @@
+
+ SELECT
+ h.host_id,
+ h.host_name,
+ h.country,
+ h.hosts_source,
+ hi.info_type as hi_info_type,
+ hi.info_value as hi_info_value,
+ hi.part_month as hi_part_month
+ FROM (
+ SELECT DISTINCT
+ h_inner.host_id,
+ h_inner.host_name,
+ h_inner.country,
+ h_inner.hosts_source
+ FROM hosts h_inner
+
+ INNER JOIN hosts_info hi_check ON h_inner.host_id = hi_check.hosts_id
+ AND hi_check.info_type = #{params.dataType}
+ AND CAST(hi_check.info_value AS SIGNED) >= #{params.dataStart}
+ AND CAST(hi_check.info_value AS SIGNED) #{params.dataEnd}
+
+
+
+ AND h_inner.country IN
+ (SELECT country_name FROM country_info WHERE country_group_name = #{params.region})
+
+
+ AND h_inner.update_dt = #{params.searchTime}
+
+
+ AND h_inner.owner_by = #{params.userId}
+
+
+ AND h_inner.tenant_id = #{params.tenantId}
+
+
+ LIMIT #{page.size} OFFSET #{page.current}
+ ) h
+ INNER JOIN hosts_info hi ON h.host_id = hi.hosts_id
+
+ AND hi.part_month = #{params.searchTime}
+
+
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/tableaction.py b/src/assets/img/demos/2025-04/tableaction.py
new file mode 100644
index 0000000..36c8531
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tableaction.py
@@ -0,0 +1,241 @@
+class hosts():
+ '''
+ hosts表元素初始化
+ '''
+ # 主播id
+ hosts__host_id = ' ',
+ # 主播名称
+ hosts__host_name = ' ',
+ # 管理主播的经理
+ hosts__owner_by = ' ',
+ # 是否被管理
+ hosts__belong_yn = ' ',
+ # 主播国家
+ hosts__country = ' ',
+ # 主播来源
+ hosts__hosts_source = ' ',
+ # 主播价值评价
+ hosts__value_level = ' ',
+ # 保留字段1
+ hosts__reserve_1 = ' ',
+ # 保留字段2
+ hosts__reserve_2 = ' ',
+ # 创建时间
+ hosts__create_dt = ' ',
+ # 更新时间
+ hosts__update_dt = ' ',
+
+class user:
+ '''
+ user表元素初始化
+ '''
+ # 无业务含义,自增主键
+ user__id = ' ',
+ # 员工id
+ user__user_id = ' ',
+ # 员工姓名
+ user__user_name = ' ',
+ # 员工类型(管理员、经理等)
+ user__user_type = ' ',
+ # 上级id,逗号分隔
+ user__manager_by_id = ' ',
+ # 使用权限(是否可用)
+ user__active_yn = ' ',
+ # 使用等级(总部、代理等)
+ user__user_level = ' ',
+ # 租户号
+ user__tenant_id = ' ',
+ # 保留字段1
+ user__reserve_1 = ' ',
+ # 保留字段2
+ user__reserve_2 = ' ',
+ # 创建时间
+ user__create_dt = ' ',
+ # 更新时间
+ user__update_dt = ' ',
+
+class hosts_info:
+ '''
+ hosts_info表元素初始化
+ '''
+ # 主播id
+ hosts_info__hosts_id = ' ',
+ # 信息类型
+ hosts_info__info_type = ' ',
+ # 信息值
+ hosts_info__info_value = ' ',
+ # 月份数据,做分区
+ hosts_info__part_month = ' ',
+ # 保留字段1
+ hosts_info__reserve_1 = ' ',
+ # 保留字段2
+ hosts_info__reserve_2 = ' ',
+ # 创建时间
+ hosts_info__create_dt = ' ',
+ # 创建人id
+ hosts_info__create_by = ' ',
+ # 更新时间
+ hosts_info__update_dt = ' ',
+ # 更新人id
+ hosts_info__update_by = ' ',
+
+class param_dict:
+ '''
+ param_dict表元素初始化
+ '''
+ # 主键id,无业务含义
+ param_dict__id = ' ',
+ # 参数类型
+ param_dict__param_type = ' ',
+ # 参数说明
+ param_dict__param_meaning = ' ',
+ # 参数代码
+ param_dict__param_code = ' ',
+ # 参数说明
+ param_dict__param_code_meaning = ' ',
+ # 租户号
+ param_dict__tenant_id = ' ',
+ # 保留字段1
+ param_dict__reserve_1 = ' ',
+ # 保留字段2
+ param_dict__reserve_2 = ' ',
+ # 创建时间
+ param_dict__create_dt = ' ',
+ # 创建人
+ param_dict__create_by = ' ',
+
+class menus:
+ '''
+ menus表元素初始化
+ '''
+ # 主键id,无业务含义
+ menus__id = ' ',
+ # 按钮id
+ menus__menu_id = ' ',
+ # 按钮业务类型
+ menus__menu_type = ' ',
+ # 按钮名称
+ menus__menu_name = ' ',
+ # 租户号
+ menus__tenant_id = ' ',
+ # 是否激活
+ menus__active_yn = ' ',
+ # 保留字段1
+ menus__reserve_1 = ' ',
+ # 保留字段2
+ menus__reserve_2 = ' ',
+ # 创建时间
+ menus__create_dt = ' ',
+ # 创建人
+ menus__create_by = ' ',
+ # 更新时间
+ menus__update_dt = ' ',
+ # 更新人
+ menus__update_by = ' ',
+
+class country_info:
+ '''
+ country_info表元素初始化
+ '''
+ # 主键id,无业务含义
+ country_info__id = ' ',
+ # 业务区与地区码
+ country_info__country_group = ' ',
+ # 业务区与地区名称
+ country_info__country_group_name = ' ',
+ # 国家id
+ country_info__country_id = ' ',
+ # 国家名称
+ country_info__country_name = ' ',
+ # 语言
+ country_info__language = ' ',
+ # 语言中文
+ country_info__language_name = ' ',
+ # 保留字段1
+ country_info__reserve_1 = ' ',
+ # 保留字段2
+ country_info__reserve_2 = ' ',
+ # 创建时间
+ country_info__create_dt = ' ',
+ # 创建人id
+ country_info__create_by = ' ',
+ # 更新时间
+ country_info__update_dt = ' ',
+ # 更新人id
+ country_info__update_by = ' ',
+
+class host_of_fans:
+ '''
+ host_of_fans表元素初始化
+ '''
+ # 业务id,无实际含义
+ host_of_fans__id = ' ',
+ # 使用者id
+ host_of_fans__fans_id = ' ',
+ # 从哪个主播房间导入
+ host_of_fans__find_by_host_id = ' ',
+ # 被分配的员工id
+ host_of_fans__owner_by = ' ',
+ # 价值评估
+ host_of_fans__value_level = ' ',
+ # 国家id
+ host_of_fans__country_id = ' ',
+ # 国家名称
+ host_of_fans__country_name = ' ',
+ # 保留字段1
+ host_of_fans__tenant_id = ' ',
+ # 保留字段2
+ host_of_fans__reserve_2 = ' ',
+ # 创建时间
+ host_of_fans__create_dt = ' ',
+ # 创建人
+ host_of_fans__create_by = ' ',
+ # 更新时间
+ host_of_fans__update_dt = ' ',
+ # 更新人
+ host_of_fans__update_by = ' ',
+
+# 当表结构改变时,应当要维护该语句
+def insert_host_of_fans_sql(values):
+ files = "id,fans_id,find_by_host_id,owner_by,value_level,country_id,country_name,tenant_id,reserve_2,create_dt,create_by,update_dt,update_by"
+ sql = f"INSERT INTO host_of_fans ({files}) VALUES ({values})"
+ return sql
+
+# 当表结构改变时,应当要维护该语句,后续可能要增加修改主播管理人的数据
+def insertorupdate_hosts_sql(values,country,updatedate):
+ files = 'host_id,host_name,owner_by,belong_yn,country,hosts_source,value_level,tenant_id,reserve_2,create_dt,update_dt'
+ sql = f"INSERT INTO hosts ({files}) VALUES ({values}) ON DUPLICATE KEY UPDATE " \
+ f"country = VALUES(country),update_dt = VALUES(update_dt)"
+ return sql
+
+# 当表结构改变时,应当要维护该语句
+def insert_country_info_sql(values):
+ files = "id,country_group,country_group_name,country_id,country_name,language,language_name,reserve_1,reserve_2,create_dt,create_by,update_dt,update_by"
+ sql = f"INSERT INTO country_info ({files}) VALUES ({values})"
+ return sql
+
+# 当表结构改变时,应当要维护该语句
+def insert_menus_sql(values):
+ files = "id,menu_id,menu_type,menu_name,tenant_id,active_yn,reserve_1,reserve_2,create_dt,create_by,update_dt,update_by"
+ sql = f"INSERT INTO menus ({files}) VALUES ({values})"
+ return sql
+
+# 当表结构改变时,应当要维护该语句
+def insert_param_dict_sql(values):
+ files = "id,param_type,param_meaning,param_code,param_code_meaning,tenant_id,reserve_1,reserve_2,create_dt,create_by"
+ sql = f"INSERT INTO param_dict ({files}) VALUES ({values})"
+ return sql
+
+# 当表结构改变时,应当要维护该语句,此处应当不传
+def insertorupdate_hosts_info_sql(values, key, value, hosts_info__create_dt):
+ files = "hosts_id,info_type,info_value,part_month,reserve_1,reserve_2,create_dt,create_by,update_dt,update_by"
+ sql = f"INSERT INTO hosts_info ({files}) VALUES ({values}) ON DUPLICATE KEY UPDATE" \
+ f" info_value = VALUES(info_value),update_dt = VALUES(create_dt)"
+ return sql
+
+# 当表结构改变时,应当要维护该语句
+def insert_user_sql(values):
+ files = "id,user_id,user_name,user_type,manager_by_id,active_yn,user_level,tenant_id,reserve_1,reserve_2,create_dt,update_dt"
+ sql = f"INSERT INTO hosts ({files}) VALUES ({values})"
+ return sql
+
diff --git a/src/assets/img/demos/2025-04/test1.py b/src/assets/img/demos/2025-04/test1.py
new file mode 100644
index 0000000..345af0f
--- /dev/null
+++ b/src/assets/img/demos/2025-04/test1.py
@@ -0,0 +1,113 @@
+import time
+from retrying import retry
+import requests
+import json
+
+
+headers = {
+ "accept": "application/json, text/plain, */*",
+ "accept-language": "zh-CN,zh;q=0.9",
+ "content-type": "application/json",
+ "faction-id": "101796",
+ "origin": "https://live-backstage.tiktok.com",
+ "priority": "u=1, i",
+ "referer": "https://live-backstage.tiktok.com/portal/overview",
+ "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+ "sec-ch-ua-mobile": "?0",
+ "sec-ch-ua-platform": "\"Windows\"",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
+ "x-appid": "1180",
+ "x-csrf-token": "undefined",
+ "x-language": "zh-Hans",
+ "x-secsdk-csrf-token": "000100000001d9f384e38c9d14525ea0d8c1bc17350eb313dbe6d845a85f1d7bec29bb57e42a1836b4af1c4da5da"
+}
+cookies = {
+ "_ga": "GA1.1.448833779.1744041395",
+ "FPID": "FPID2.2.%2B6nT0lCYtTkI1gb5P7uZVN0Jbuib3rku57vhOq52%2BCg%3D.1744041395",
+ "FPAU": "1.2.263606944.1744041395",
+ "_fbp": "fb.1.1744041395282.1072138350",
+ "passport_csrf_token": "41d035222604a0bc54df10cae762032e",
+ "passport_csrf_token_default": "41d035222604a0bc54df10cae762032e",
+ "d_ticket": "57e29296947fabd2646e70bd62414a0bf5414",
+ "tt-target-idc": "useast5",
+ "multi_sids": "7490613412293608478%3A685fa78967fddde3ee38ac63c70ddb65",
+ "cmpl_token": "AgQQAPNSF-RO0rfK75Gtu10n_ZWY7pVVv6kMYNgQaw",
+ "passport_auth_status": "1e5d40345023da2bdbf69f84213ccae5%2C6c68eba7966e629abf50375bd4ebafb5",
+ "passport_auth_status_ss": "1e5d40345023da2bdbf69f84213ccae5%2C6c68eba7966e629abf50375bd4ebafb5",
+ "uid_tt": "9351fd551dbbd03e132339307600dbed6fa061a044fb9a374a44b1e8fe54978d",
+ "uid_tt_ss": "9351fd551dbbd03e132339307600dbed6fa061a044fb9a374a44b1e8fe54978d",
+ "sid_tt": "685fa78967fddde3ee38ac63c70ddb65",
+ "sessionid": "685fa78967fddde3ee38ac63c70ddb65",
+ "sessionid_ss": "685fa78967fddde3ee38ac63c70ddb65",
+ "store-idc": "useast5",
+ "tt-target-idc-sign": "dBNONAXsQJLsZ5zjxrtvUusbU0ZakoP9eQxw6at2yu3-LcIH-w1WAXjN6xClVStBbblFhbm8YgW924k12esL6ohjHRWO0TYX7TxPr5SNnN8GlbNIX-v8KSisYDYWEROcGsj5CfLLvcL_eI6mUb_0LzjHCV6CWTAjEfgRLVJN10EBzL351Ay1jOPz9NGgCE4RJ5vqQMdpXnOx_N3-YJffB6Lfog4sehtsfZKBR-CFhkOe7oItplb-wRbsqlWuS_GvYmr5VkA_G9AjvRo4ZmvwCKyvEmuvyhNpbxiINwFLvdNOVA-RdKqP3qZ8g21irg1bzNQTaryWkgnqcJpQ0FCR_rxANDXAzApWvG_fwT-Q86nSWvY-WjHkfIuW6CQ4OmKmjyT17qoJluiroyeF2WlIDefy2Rpl1q0OvbfiwUUAWaqG1mvZmACGKLFeGoRG4I6gvNWm2Uj0YBprjIhW73bS8ASLE2TgGSI0tJEurOiEy0arNB3GqZ0GtkHqXLs5nezy",
+ "sid_guard": "685fa78967fddde3ee38ac63c70ddb65%7C1744045410%7C15551995%7CSat%2C+04-Oct-2025+17%3A03%3A25+GMT",
+ "sid_ucp_v1": "1.0.0-KGYzNThmNWZjMWQ2NTE0MmQ3NDM3MDRkZjU0M2U0ODhjOTIwZjlkZTUKGgieiKas4qaA-mcQ4orQvwYYsws4AkDxB0gEEAQaB3VzZWFzdDUiIDY4NWZhNzg5NjdmZGRkZTNlZTM4YWM2M2M3MGRkYjY1",
+ "ssid_ucp_v1": "1.0.0-KGYzNThmNWZjMWQ2NTE0MmQ3NDM3MDRkZjU0M2U0ODhjOTIwZjlkZTUKGgieiKas4qaA-mcQ4orQvwYYsws4AkDxB0gEEAQaB3VzZWFzdDUiIDY4NWZhNzg5NjdmZGRkZTNlZTM4YWM2M2M3MGRkYjY1",
+ "_ttp": "2vXFsq88lQe9hoRox4re4hQUiaF.tt.1",
+ "_tt_enable_cookie": "1",
+ "cookie-consent": "{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}",
+ "_ga_LWWPCY99PB": "GS1.1.1744382521.14.1.1744383188.0.0.713318025",
+ "store-country-code": "-",
+ "tt_chain_token": "TTyemrk6OaFJkzbhsum8Ng==",
+ "store-country-sign": "MEIEDLhPca5lDuItTVyQ9QQgSM-4yIu76XEpZptVfSw0EeBMp8u183cgnSCjPBhKFucEEMQqyEIjr4BqM3RA_GSRCtE",
+ "d_ticket_backstage": "97c4d5ed61d94747241582cbed849d68d8cde",
+ "sid_guard_backstage": "3473deca32c2724a8cbb72f4e91d3bb3%7C1744781232%7C5184000%7CSun%2C+15-Jun-2025+05%3A27%3A12+GMT",
+ "uid_tt_backstage": "e9caa200e9330d5aa359a4aea41168a3b2d1a56f13122a4dc5c56e50f5bedda8",
+ "uid_tt_ss_backstage": "e9caa200e9330d5aa359a4aea41168a3b2d1a56f13122a4dc5c56e50f5bedda8",
+ "sid_tt_backstage": "3473deca32c2724a8cbb72f4e91d3bb3",
+ "sessionid_backstage": "3473deca32c2724a8cbb72f4e91d3bb3",
+ "sessionid_ss_backstage": "3473deca32c2724a8cbb72f4e91d3bb3",
+ "sid_ucp_v1_backstage": "1.0.0-KDE0NDZlZTNlMTVhOTBlYzI3NzUyNGE4MzEwMGU1NGMwYTgyNzI0OTEKGAiSiNaglIHTtmcQsP_8vwYYwTU4AUDrBxADGgZtYWxpdmEiIDM0NzNkZWNhMzJjMjcyNGE4Y2JiNzJmNGU5MWQzYmIz",
+ "ssid_ucp_v1_backstage": "1.0.0-KDE0NDZlZTNlMTVhOTBlYzI3NzUyNGE4MzEwMGU1NGMwYTgyNzI0OTEKGAiSiNaglIHTtmcQsP_8vwYYwTU4AUDrBxADGgZtYWxpdmEiIDM0NzNkZWNhMzJjMjcyNGE4Y2JiNzJmNGU5MWQzYmIz",
+ "passport_fe_beating_status": "true",
+ "ttwid": "1%7CteADi5iWWeHjMjjXdIcKOaO44CWbJyrZlT_qXW8P7wc%7C1744781635%7Cf7184bf20feaf5d739a4fde669542d44b76dbd38d4b3460645c67aad7472b116",
+ "s_v_web_id": "verify_m9jhxrlf_RfkgZvzX_khII_4Awa_9Pgo_1nVgYhdqXNie",
+ "csrf_session_id": "8874de872b2755055a1c48760f97ec2e",
+ "_ga_GZB380RXJX": "GS1.1.1744780461.8.1.1744781640.0.0.862808384",
+ "ttcsid": "1744780465820.7.1744781641284",
+ "ttcsid_CQ6FR3RC77U6L0AM21H0": "1744780465816.7.1744781641893",
+ "msToken": "KJc-hIy2Hz-WZQG2KwdNhCxzhocSgR-fp8Y9-Mu2PU0pZNljWXpmQ_6WFHyP0lg5a63iqXWqIPvRBCrKh5jDgyo5sBxFL1WJdJ4_iA6lh_qR6dDRsMOH6xbo3h9u2HSzN10KffNtOw=="
+}
+url = "https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/"
+msToken = "mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE="
+
+params = {
+ "msToken": msToken,
+ "X-Bogus": "DFSzswjLRoaBKlwBtgmhdzkX95m/",
+ "_signature": "_02B4Z6wo00001TB-YIwAAIDAfzpHmnTd6QEwfmQAACwC03"
+}
+data = {
+ "DisplayIDList": [
+ "刚方法j刚",
+ "等mm安安mm待"
+ ]
+}
+data = json.dumps(data, separators=(',', ':'))
+# while True:
+
+
+# response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+# print(response.text)
+# while True:
+response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+
+data = response.text
+
+
+print(type(response.text),"3333")
+print(response.text)
+
+
+dict_data = json.loads(data)
+
+
+print(dict_data['data'],"222")
+print(response.text, "111")
+print(response)
+
+
+
diff --git a/src/assets/img/demos/2025-04/tiktokAPI 1.py b/src/assets/img/demos/2025-04/tiktokAPI 1.py
new file mode 100644
index 0000000..1623106
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokAPI 1.py
@@ -0,0 +1,215 @@
+import base64
+
+import requests
+
+from DrissionPage import ChromiumPage
+from DrissionPage import Chromium, ChromiumOptions
+import time
+import random
+from DrissionPage.common import Actions
+from selenium.webdriver import ActionChains
+from selenium.webdriver.common.devtools.v132.log import clear
+
+
+class batch_check_anchor:
+ def __init__(self,username,password):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ #self.page.set.cookies(cookies)
+ #self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+ loginele=self.page.ele('登录')
+
+
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("登录").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@class=semi-button semi-button-primary semi-button-size-large semi-button-block").click()
+
+
+ while True:
+ try:
+ loginele=self.page.ele('登录',timeout=1)
+ if not loginele:
+ print('登录成功')
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=5)
+ if ele:
+ ele.click()
+
+ while true:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ time.sleep(1)
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+ # self.page.set.window.hide()
+ end_time=time.time()
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ inputele.click()
+ inputele.input(text,clear=True)
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ while True:
+ checkele=self.page.ele('确认',timeout=3)
+ if checkele:
+ print("处理验证码")
+ # 发现验证码截图保存到本地
+
+ # 定位元素
+ element = self.page.ele("@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+ # 截取该元素并保存
+ element.get_screenshot("tiktok_identifying_code.png")
+
+ time.sleep(random.random())
+ with open('tiktok_identifying_code.png', 'rb') as f:
+ b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+
+ # 处理验证码
+ result = self.deal_identifying_code(b)
+ print(result,type(result))
+ # 获取x,y的坐标
+ for i in result.split('|'):
+ x = int(i.split(',')[0])
+ y = int(i.split(',')[1])
+ ac = Actions(self.page)
+
+ ac.move_to(ele_or_loc=element,offset_x=0,offset_y=0).move(x,y).click()
+
+ self.page.ele("@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+ while True:
+ checkele=self.page.ele('确认',timeout=3)
+ if not checkele:
+ # self.page.set.window.hide()
+ break
+ time.sleep(0.2)
+ continue
+ break
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ time.sleep(0.2)
+ print('重复点击')
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ time.sleep(0.2)
+ print('重复点击')
+ break
+ except Exception as e:
+ print('报错的原因',e)
+ self.page.refresh()
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=5)
+ if ele:
+ ele.click()
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ time.sleep(1)
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
+
+if __name__=='__main__':
+ username = "ph@tiktok0.xyz"
+ password = "zxcvbnm123.."
+
+ b=batch_check_anchor(username,password)#'ph@tiktok0.xyz','zxcvbnm123..'
+ while True:
+ body=b.get_anchor('123456\ngeim123\nn223')
+ print(body)
+ # x=input('输入任意键继续')
+ # if x=='1':
+ # continue
+ # if x=='2':
+ # b.page.set.window.show()
+ # if x=='3':
+ # b.page.set.window.hide()
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/tiktokAPI(1).py b/src/assets/img/demos/2025-04/tiktokAPI(1).py
new file mode 100644
index 0000000..b5976f0
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokAPI(1).py
@@ -0,0 +1,265 @@
+import base64
+import time
+
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+from PIL import Image,ImageDraw
+
+import random
+from DrissionPage.common import Actions
+
+
+
+class batch_check_anchor:
+
+ def __init__(self,username,password, callback):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # co.incognito()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ self.page.set.window.max()
+ #self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+
+
+
+ loginele=self.page.ele("@data-id=login")
+
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@data-id=login-primary-button").click()
+
+ p = self.page.ele('@user-config-ele-id=tiktok-cookie-banner-config').shadow_root
+ b = p.eles('tag:button')
+ if b:
+ b[-1].click()
+
+ while True:
+ try:
+ loginele=self.page.ele("@data-id=login",timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ if callback:
+ callback()
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+
+ print("3s 点击 关闭页面")
+
+ if ele:
+ ele.click()
+
+ page = self.page.ele("@data-id=guide-ok")
+ if page:
+ page.click()
+
+ invite_btn = self.page.ele("@class=semi-button semi-button-primary semi-button-with-icon",timeout=1)
+
+ if not invite_btn:
+ btn = self.page.ele("@data-id=know")
+ if btn:
+ btn.click()
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+ while true:
+ time.sleep(0.2)
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ self.get_anchor("测试")
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+ # 法国 德国
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ inputele.click()
+ inputele.input(text,clear=True)
+ print("点击了测试")
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+
+
+ print("监听url")
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ print("点击下一步")
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+
+ max_retries = 3 # 定义最大重试次数
+ failure_count = 0 # 初始化失败计数器
+
+ while True:
+ checkele=self.page.ele('@class=TUXButton-content')
+
+ if failure_count >= max_retries:
+ print("验证失败超过3次,终止流程")
+ break #
+
+ if checkele:
+
+ # self.page.set.window.show()
+ print(f"第{failure_count + 1}次尝试处理验证码")
+ # 发现验证码截图保存到本地
+ failure_count += 1
+ # 定位元素
+ element = self.page.ele(
+ "@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+ # 截取该元素并保存
+ element.get_screenshot("tiktok_identifying_code.png")
+
+ # time.sleep(random.random())
+ with open('tiktok_identifying_code.png', 'rb') as f:
+ b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+
+ # 处理验证码
+ result = self.deal_identifying_code(b)
+ print(result, type(result))
+
+ # 获取x,y的坐标
+ a = 1
+ for i in result.split('|'):
+ a += 1
+ x = int(int(i.split(',')[0]) * (348 / 552))
+ y = int(int(i.split(',')[1]) * (217 / 344))
+ ac = Actions(self.page)
+
+ ac.move_to(ele_or_loc=element, offset_x=0, offset_y=0).move(x, y).click()
+ # print(x,y)
+ # img = Image.open("tiktok_identifying_code.png")
+ # draw = ImageDraw.Draw(img)
+ # draw.ellipse([(x - 5, y - 5), (x + 5, y + 5)], fill='red') # 用红圈标记点击位置
+ # img.save(f"marked_identifying_code{a}.png")
+ self.page.ele(
+ "@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+ back_btn = self.page.ele("@data-id=invite-host-back")
+ if back_btn:
+ back_btn.click()
+ continue
+ # else:
+
+ # break
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ # time.sleep(0.2)
+ print('重复点击1')
+ # self.page.set.window.show()
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ # time.sleep(0.2)
+ print('重复点击2')
+ # self.page.set.window.show()
+ break
+ except Exception as e:
+ print('报错的原因',e)
+
+ self.page.refresh()
+
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+ else:
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+
+
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
+
+
diff --git a/src/assets/img/demos/2025-04/tiktokAPI(2).py b/src/assets/img/demos/2025-04/tiktokAPI(2).py
new file mode 100644
index 0000000..3236ae1
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokAPI(2).py
@@ -0,0 +1,273 @@
+import base64
+import time
+
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+from PIL import Image,ImageDraw
+
+import random
+from DrissionPage.common import Actions
+
+
+
+class batch_check_anchor:
+
+ def __init__(self,username,password, callback):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # co.incognito()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ self.page.set.window.max()
+ #self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+
+
+
+ loginele=self.page.ele("@data-id=login")
+
+ cookie = self.page.ele("全部允许")
+ if cookie:
+
+ p = self.page.ele('@user-config-ele-id=tiktok-cookie-banner-config').shadow_root
+ b = p.eles('tag:button')
+ if b:
+ b[-1].click()
+
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@data-id=login-primary-button").click()
+
+
+
+
+ while True:
+ try:
+ loginele=self.page.ele("@data-id=login",timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ if callback:
+ callback()
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+
+ print("3s 点击 关闭页面")
+
+ if ele:
+ ele.click()
+
+ page = self.page.ele("@data-id=guide-ok")
+ if page:
+ page.click()
+
+ invite_btn = self.page.ele("@class=semi-button semi-button-primary semi-button-with-icon",timeout=1)
+
+ if not invite_btn:
+ btn = self.page.ele("@data-id=know")
+ if btn:
+ btn.click()
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+ while true:
+ time.sleep(0.2)
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ self.get_anchor("测试")
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+ # 法国 德国
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ inputele.click()
+ inputele.input(text,clear=True)
+ print("点击了测试")
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+
+
+ print("监听url")
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ time.sleep(0.5)
+ print("点击下一步")
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+
+ max_retries = 3 # 定义最大重试次数
+ failure_count = 0 # 初始化失败计数器
+
+ while True:
+ checkele=self.page.ele('@class=TUXButton-content')
+
+ if failure_count >= max_retries:
+ print("验证失败超过3次,终止流程")
+ break #
+
+ if checkele:
+
+ # self.page.set.window.show()
+ print(f"第{failure_count + 1}次尝试处理验证码")
+ # 发现验证码截图保存到本地
+ failure_count += 1
+ # 定位元素
+ element = self.page.ele(
+ "@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+ # 截取该元素并保存
+ element.get_screenshot("tiktok_identifying_code.png")
+
+ # time.sleep(random.random())
+ with open('tiktok_identifying_code.png', 'rb') as f:
+ b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+
+ # 处理验证码
+ result = self.deal_identifying_code(b)
+ print(result, type(result))
+
+ # 获取x,y的坐标
+ a = 1
+ for i in result.split('|'):
+ a += 1
+ x = int(int(i.split(',')[0]) * (348 / 552))
+ y = int(int(i.split(',')[1]) * (217 / 344))
+ ac = Actions(self.page)
+
+ ac.move_to(ele_or_loc=element, offset_x=0, offset_y=0).move(x, y).click()
+ # print(x,y)
+ # img = Image.open("tiktok_identifying_code.png")
+ # draw = ImageDraw.Draw(img)
+ # draw.ellipse([(x - 5, y - 5), (x + 5, y + 5)], fill='red') # 用红圈标记点击位置
+ # img.save(f"marked_identifying_code{a}.png")
+ self.page.ele(
+ "@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+ back_btn = self.page.ele("@data-id=invite-host-back")
+ if back_btn:
+ back_btn.click()
+ continue
+ # else:
+
+ # break
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ # time.sleep(0.2)
+ print('重复点击1')
+ # self.page.set.window.show()
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ # time.sleep(0.2)
+ print('重复点击2')
+ # self.page.set.window.show()
+ break
+ except Exception as e:
+ print('报错的原因',e)
+
+ self.page.refresh()
+
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+ else:
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+
+
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
+
+
diff --git a/src/assets/img/demos/2025-04/tiktokAPI(3).py b/src/assets/img/demos/2025-04/tiktokAPI(3).py
new file mode 100644
index 0000000..f00ccf7
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokAPI(3).py
@@ -0,0 +1,271 @@
+import base64
+import time
+
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+from PIL import Image,ImageDraw
+
+import random
+from DrissionPage.common import Actions
+
+
+
+class batch_check_anchor:
+
+ def __init__(self,username,password, callback):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # co.incognito()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ self.page.set.window.max()
+ #self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+
+
+
+ loginele=self.page.ele("@data-id=login")
+
+ cookie = self.page.ele("全部允许")
+ if cookie:
+
+ p = self.page.ele('@user-config-ele-id=tiktok-cookie-banner-config').shadow_root
+ b = p.eles('tag:button')
+ if b:
+ b[-1].click()
+
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@data-id=login-primary-button").click()
+
+
+
+
+ while True:
+ try:
+ loginele=self.page.ele("@data-id=login",timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ if callback:
+ callback()
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+
+ print("3s 点击 关闭页面")
+
+ if ele:
+ ele.click()
+
+ page = self.page.ele("@data-id=guide-ok")
+ if page:
+ page.click()
+
+ invite_btn = self.page.ele("@class=semi-button semi-button-primary semi-button-with-icon",timeout=1)
+
+ if not invite_btn:
+ btn = self.page.ele("@data-id=know")
+ if btn:
+ btn.click()
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+ while true:
+ time.sleep(0.2)
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ self.get_anchor("测试")
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+ # 法国 德国
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ inputele.click()
+ inputele.input(text,clear=True)
+ print("点击了测试")
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+
+
+ print("监听url")
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ time.sleep(0.5)
+ print("点击下一步")
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+
+ max_retries = 3 # 定义最大重试次数
+ failure_count = 0 # 初始化失败计数器
+
+ while True:
+ checkele=self.page.ele('@class=TUXButton-content')
+
+ if failure_count >= max_retries:
+ print("验证失败超过3次,终止流程")
+ break #
+
+ if checkele:
+ # self.page.set.window.show()
+ print(f"第{failure_count + 1}次尝试处理验证码")
+ # 发现验证码截图保存到本地
+ failure_count += 1
+ # 定位元素
+ element = self.page.ele(
+ "@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+ # 截取该元素并保存
+ element.get_screenshot("tiktok_identifying_code.png")
+ # time.sleep(random.random())
+ with open('tiktok_identifying_code.png', 'rb') as f:
+ b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+
+ # 处理验证码
+ result = self.deal_identifying_code(b)
+ print(result, type(result))
+
+ # 获取x,y的坐标
+ a = 1
+ for i in result.split('|'):
+ a += 1
+ x = int(int(i.split(',')[0]) * (348 / 552))
+ y = int(int(i.split(',')[1]) * (216.87 / 324))
+ ac = Actions(self.page)
+
+ ac.move_to(ele_or_loc=element, offset_x=0, offset_y=0).move(x, y).click()
+ # print(x,y)
+ # img = Image.open("tiktok_identifying_code.png")
+ # draw = ImageDraw.Draw(img)
+ # draw.ellipse([(x - 5, y - 5), (x + 5, y + 5)], fill='red') # 用红圈标记点击位置
+ # img.save(f"marked_identifying_code{a}.png")
+ self.page.ele(
+ "@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+ back_btn = self.page.ele("@data-id=invite-host-back")
+ if back_btn:
+ back_btn.click()
+ continue
+ # else:
+
+ # break
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ # time.sleep(0.2)
+ print('重复点击1')
+ # self.page.set.window.show()
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ # time.sleep(0.2)
+ print('重复点击2')
+ # self.page.set.window.show()
+ break
+ except Exception as e:
+ print('报错的原因',e)
+
+ self.page.refresh()
+
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+ else:
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+
+
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
+
+
diff --git a/src/assets/img/demos/2025-04/tiktokAPI(4).py b/src/assets/img/demos/2025-04/tiktokAPI(4).py
new file mode 100644
index 0000000..6627912
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokAPI(4).py
@@ -0,0 +1,261 @@
+import base64
+import time
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+from PIL import Image,ImageDraw
+import random
+from DrissionPage.common import Actions
+
+class batch_check_anchor:
+
+ def __init__(self,username,password, callback):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # co.incognito()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ self.page.set.window.max()
+ #self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+ loginele=self.page.ele("@data-id=login")
+
+ cookie = self.page.ele("全部允许")
+ if cookie:
+
+ p = self.page.ele('@user-config-ele-id=tiktok-cookie-banner-config').shadow_root
+ b = p.eles('tag:button')
+ if b:
+ b[-1].click()
+
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@data-id=login-primary-button").click()
+
+ while True:
+ try:
+ loginele=self.page.ele("@data-id=login",timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ if callback:
+ callback()
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+
+ print("3s 点击 关闭页面")
+
+ if ele:
+ ele.click()
+
+ page = self.page.ele("@data-id=guide-ok")
+ if page:
+ page.click()
+
+ invite_btn = self.page.ele("@class=semi-button semi-button-primary semi-button-with-icon",timeout=1)
+
+ if not invite_btn:
+ btn = self.page.ele("@data-id=know")
+ if btn:
+ btn.click()
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+ while true:
+ time.sleep(0.2)
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ self.get_anchor("测试")
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+ # 法国 德国
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ inputele.click()
+ inputele.input(text,clear=True)
+ print("点击了测试")
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+
+
+ print("监听url")
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ time.sleep(0.5)
+ print("点击下一步")
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+
+ max_retries = 3 # 定义最大重试次数
+ failure_count = 0 # 初始化失败计数器
+
+ # while True:
+ # checkele=self.page.ele('@class=TUXButton-content')
+ #
+ # if failure_count >= max_retries:
+ # print("验证失败超过3次,终止流程")
+ # break #
+ #
+ # if checkele:
+ # # self.page.set.window.show()
+ # print(f"第{failure_count + 1}次尝试处理验证码")
+ # # 发现验证码截图保存到本地
+ # failure_count += 1
+ # # 定位元素
+ # element = self.page.ele(
+ # "@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+ # # 截取该元素并保存
+ # element.get_screenshot("tiktok_identifying_code.png")
+ # # time.sleep(random.random())
+ # with open('tiktok_identifying_code.png', 'rb') as f:
+ # b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+ #
+ # # 处理验证码
+ # result = self.deal_identifying_code(b)
+ # print(result, type(result))
+ #
+ # # 获取x,y的坐标
+ # a = 1
+ # for i in result.split('|'):
+ # a += 1
+ # x = int(int(i.split(',')[0]) * (348 / 552))
+ # y = int(int(i.split(',')[1]) * (216.87 / 324))
+ # ac = Actions(self.page)
+ #
+ # ac.move_to(ele_or_loc=element, offset_x=0, offset_y=0).move(x, y).click()
+ # # print(x,y)
+ # # img = Image.open("tiktok_identifying_code.png")
+ # # draw = ImageDraw.Draw(img)
+ # # draw.ellipse([(x - 5, y - 5), (x + 5, y + 5)], fill='red') # 用红圈标记点击位置
+ # # img.save(f"marked_identifying_code{a}.png")
+ # self.page.ele(
+ # "@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+ # back_btn = self.page.ele("@data-id=invite-host-back")
+ # if back_btn:
+ # back_btn.click()
+ # continue
+ # else:
+
+ # break
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ # time.sleep(0.2)
+ print('重复点击1')
+ # self.page.set.window.show()
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ # time.sleep(0.2)
+ print('重复点击2')
+ # self.page.set.window.show()
+ break
+ except Exception as e:
+ print('报错的原因',e)
+
+ self.page.refresh()
+
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+ else:
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+
+
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
+
+
diff --git a/src/assets/img/demos/2025-04/tiktokAPI(5).py b/src/assets/img/demos/2025-04/tiktokAPI(5).py
new file mode 100644
index 0000000..648dff6
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokAPI(5).py
@@ -0,0 +1,355 @@
+
+import base64
+import time
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+from PIL import Image,ImageDraw
+import random
+from DrissionPage.common import Actions
+
+class batch_check_anchor:
+
+ def __init__(self,username,password, callback):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # co.incognito()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ self.page.set.window.max()
+ #self.page.set.cookies.clear()
+ self.page.set.timeouts(1)
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+ time.sleep(1)
+
+ loginele=self.page.ele("@data-id=login")
+
+ print("1 检测登录按钮",loginele)
+ start_time1 = time.time()
+
+
+
+ end_time1 = time.time()
+ print('1.初始化完成 耗时:', end_time1 - start_time1)
+
+ if loginele:
+
+
+ # self.page.set.window.show()
+ # 点击登录按钮
+ # self.page.ele("@data-id=login").click()
+ loginele.click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@data-id=login-primary-button").click()
+
+
+
+ while True:
+ try:
+
+
+
+
+ loginele=self.page.ele("@data-id=login",timeout=1)
+ if not loginele:
+ print('3 后台登录成功')
+ # self.page.set.window.hide()
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=3)
+
+ print("3s 点击 关闭页面")
+
+ if ele:
+ print("5 点击旧页面的窗口")
+ ele.click()
+
+ page = self.page.ele("@data-id=guide-ok")
+ if page:
+ print("6 点击新页面的窗口")
+ page.click()
+
+ invite_btn = self.page.wait.ele_displayed("@class=semi-button semi-button-primary semi-button-with-icon",timeout=3)
+ print("invite",invite_btn)
+ if not invite_btn:
+ print("7 没有邀请主播按钮")
+ a = time.time()
+ btn = self.page.ele("@data-id=know")
+ b = time.time()
+
+ print(f"第七步: 7{b-a}")
+ if btn:
+ print("8 点击新页面的右上角窗口")
+ btn.click()
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ print("9 点击切换到旧页面")
+ check_btn.click()
+ while true:
+ time.sleep(0.2)
+ ele=self.page.ele('@data-id=add-host-btn',timeout=3)
+ print("10 检测邀请主播的按钮ele",ele)
+ try:
+ if ele:
+ print("11 点击邀请主播")
+ time.sleep(0.5)
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print("12 调用另一个方法")
+ self.get_anchor("测试")
+ if callback:
+ callback()
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+ # 法国 德国
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+
+ if inputele:
+ print("13 点击窗口进行输入测试")
+ inputele.click()
+ inputele.input(text,clear=True)
+ print("14 点击了测试")
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+
+ print("监听url")
+
+ cookie = self.page.ele("全部允许", timeout=3)
+ print("2 检测全部允许按钮")
+ if cookie:
+
+ p = self.page.ele('@user-config-ele-id=tiktok-cookie-banner-config').shadow_root
+ b = p.eles('tag:button')
+ if b:
+ b[-1].click()
+ print("2.1 点击全部允许按钮")
+
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ time.sleep(1)
+ print("15 点击下一步")
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+
+ max_retries = 1 # 定义最大重试次数
+ failure_count1 = 0 # 初始化失败计数器
+ failure_count2 = 0 # 初始化失败计数器
+
+
+ while True:
+ while True:
+ checkele = self.page.ele('@class=TUXButton-label',timeout=3)
+
+ if failure_count1 >= max_retries:
+ print(f"验证失败超过{failure_count1}次,终止流程")
+ break #
+
+ if checkele:
+ # self.page.set.window.show()
+ print(f"16 第一种方案{failure_count1 + 1}次尝试处理验证码")
+ # 发现验证码截图保存到本地
+ failure_count1 += 1
+ # 定位元素
+ element = self.page.ele(
+ "@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto",timeout=3)
+ # 截取该元素并保存
+ element.get_screenshot("tiktok_identifying_code.png")
+ # time.sleep(random.random())
+ with open('tiktok_identifying_code.png', 'rb') as f:
+ b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+
+ # 处理验证码
+ result = self.deal_identifying_code(b)
+ print(result, type(result))
+
+ # 获取x,y的坐标
+ for i in result.split('|'):
+ # x = int(int(i.split(',')[0]) * (363 / 552))
+ # y = int(int(i.split(',')[1]) * (236 / 344))
+
+ x = int(int(i.split(',')[0]) )
+ y = int(int(i.split(',')[1]) )
+ print(x,y)
+ ac = Actions(self.page)
+
+ ac.move_to(ele_or_loc=element, offset_x=0, offset_y=0).move(x, y).click()
+
+
+
+ yzm = self.page.ele(
+ "@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full",timeout=3)
+
+ if yzm:
+ yzm.click()
+ else:
+ break
+
+ while True:
+ checkele=self.page.ele('@class=TUXButton-label',timeout=3)
+ print(checkele,"12231313")
+ if failure_count2 >= max_retries:
+ print(f"验证失败超过{failure_count2}次,终止流程")
+ break #
+ if checkele:
+ # self.page.set.window.show()
+ print(f"17 第二种方案{failure_count2 + 1}次尝试处理验证码")
+ # 发现验证码截图保存到本地
+ failure_count2 += 1
+ # 定位元素
+ element = self.page.ele(
+ "@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto",timeout=3)
+ # 截取该元素并保存
+ element.get_screenshot("tiktok_identifying_code.png")
+ # time.sleep(random.random())
+ with open('tiktok_identifying_code.png', 'rb') as f:
+ b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+
+ # 处理验证码
+ result = self.deal_identifying_code(b)
+ print(result, type(result))
+
+ # 获取x,y的坐标
+ for i in result.split('|'):
+ x = int(int(i.split(',')[0]) * (363 / 552))
+ y = int(int(i.split(',')[1]) * (236 / 344))
+ # x = int(int(i.split(',')[0]) )
+ # y = int(int(i.split(',')[1]) )
+ ac = Actions(self.page)
+
+ ac.move_to(ele_or_loc=element, offset_x=0, offset_y=0).move(x, y).click()
+
+ yzm = self.page.ele(
+ "@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full",timeout=3)
+
+ if yzm:
+ yzm.click()
+ else:
+ break
+
+ checkele = self.page.ele(
+ "@class=TUXButton-content",timeout=3)
+ if checkele:
+ print("18 验证码还在 继续验证")
+ failure_count1 = 0 # 初始化失败计数器
+ failure_count2 = 0
+ continue
+ else:
+ print("19 验证码识别完毕 跳出")
+ break
+
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ # time.sleep(0.2)
+ print('重复点击1')
+ # self.page.set.window.show()
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ # time.sleep(0.2)
+ print('重复点击2')
+ # self.page.set.window.show()
+ break
+ except Exception as e:
+ print('报错的原因',e)
+
+ self.page.refresh()
+
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+ else:
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+
+
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn',timeout=3)
+ try:
+ if ele:
+ ele.click()
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
+
+
+
diff --git a/src/assets/img/demos/2025-04/tiktokAPI.py b/src/assets/img/demos/2025-04/tiktokAPI.py
new file mode 100644
index 0000000..2794411
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokAPI.py
@@ -0,0 +1,228 @@
+import base64
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+import time
+import random
+from DrissionPage.common import Actions
+
+class batch_check_anchor:
+
+ def __init__(self,username,password, callback):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # co.incognito()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ # 全局隐藏窗口
+ # self.page.set.window.hide()
+ #self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+ loginele=self.page.ele("@data-id=login")
+
+
+
+ # btn = self.page.ele("全部允许")
+ # if btn:
+ # print("123456")
+ #
+ # btn.click()
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@class=semi-button semi-button-primary semi-button-size-large semi-button-block").click()
+
+ while True:
+ try:
+ loginele=self.page.ele("@data-id=login",timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ if callback:
+ callback()
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+
+ print("3s 点击 关闭页面")
+
+ if ele:
+ ele.click()
+ invite_btn = self.page.ele("@class=semi-button semi-button-primary semi-button-with-icon",timeout=1)
+
+ if not invite_btn:
+ btn = self.page.ele("@data-id=know")
+ if btn:
+ btn.click()
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+ while true:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ time.sleep(1)
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ self.get_anchor("测试")
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ inputele.click()
+ inputele.input(text,clear=True)
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ while True:
+ checkele=self.page.ele('确认')
+ if checkele:
+
+ print("请手动点击验证码")
+ # # self.page.set.window.show()
+ # print("处理验证码")
+ # # 发现验证码截图保存到本地
+ #
+ # # 定位元素
+ # element = self.page.ele("@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+ # # 截取该元素并保存
+ # element.get_screenshot("tiktok_identifying_code.png")
+ #
+ # time.sleep(random.random())
+ # with open('tiktok_identifying_code.png', 'rb') as f:
+ # b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+ #
+ # # 处理验证码
+ # result = self.deal_identifying_code(b)
+ # print(result,type(result))
+ # # 获取x,y的坐标
+ # for i in result.split('|'):
+ # x = int(i.split(',')[0])
+ # y = int(i.split(',')[1])
+ # ac = Actions(self.page)
+ #
+ # ac.move_to(ele_or_loc=element,offset_x=0,offset_y=0).move(x,y).click()
+ #
+ # self.page.ele("@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+ # back_btn = self.page.ele("@data-id=invite-host-back")
+ # if back_btn:
+ # back_btn.click()
+ # time.sleep(10)
+ # # self.page.set.window.hide()
+ # while True:
+ # checkele=self.page.ele('确认')
+ # if not checkele:
+ # # self.page.set.window.hide()
+ # break
+ # time.sleep(0.2)
+ # continue
+ break
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ time.sleep(0.2)
+ print('重复点击')
+ # self.page.set.window.show()
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ time.sleep(0.2)
+ print('重复点击')
+ # self.page.set.window.show()
+ break
+ except Exception as e:
+ print('报错的原因',e)
+ self.page.refresh()
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ time.sleep(1)
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
diff --git a/src/assets/img/demos/2025-04/tiktokApiCopy.py b/src/assets/img/demos/2025-04/tiktokApiCopy.py
new file mode 100644
index 0000000..19f1d4e
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktokApiCopy.py
@@ -0,0 +1,431 @@
+# import base64
+# import requests
+# from DrissionPage import ChromiumPage
+# from DrissionPage import ChromiumOptions
+# import time
+# import random
+# from DrissionPage.common import Actions
+#
+#
+# class batch_check_anchor_copy:
+#
+# def __init__(self,username,password, callback):
+# from infos.autohostinfo import checkAnchorObjs
+# # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+# start_time=time.time()
+# false=False
+# true=True
+# co = ChromiumOptions()
+# # 设置不加载图片、静音
+# co.mute(True)
+# co.headless(False)
+# co.auto_port(True)
+# self.page = ChromiumPage(co)
+#
+# #self.page.set.cookies.clear()
+# self.page.get('https://live-backstage.tiktok.com/portal/overview')
+# loginele=self.page.ele('登录')
+#
+# if loginele:
+# #
+# # self.page.set.window.show()
+# # 点击登录按钮
+# self.page.ele("登录").click()
+# time.sleep(random.random())
+# # 输入账号
+# self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+# time.sleep(random.random())
+# # 输入密码
+# self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+# # 点击进行登录
+# time.sleep(random.random())
+# self.page.ele("@class=semi-button semi-button-primary semi-button-size-large semi-button-block").click()
+#
+# while True:
+# try:
+# loginele=self.page.ele('登录',timeout=1)
+# if not loginele:
+# print('后台登录成功')
+# # self.page.set.window.hide()
+# if callback:
+# callback()
+# break
+# time.sleep(0.2)
+# except:
+# pass
+# ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=5)
+# if ele:
+# ele.click()
+#
+# while true:
+# ele=self.page.ele('@data-id=add-host-btn')
+# try:
+# if ele:
+# ele.click()
+# time.sleep(1)
+# inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+# if inputele:
+# break
+# except:
+# ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+# if ele:
+# ele.click()
+# # self.page.set.window.hide()
+# end_time=time.time()
+# print('初始化完成 耗时:',end_time-start_time)
+#
+# def get_ip(self):
+# # 提取代理API接口,获取1个代理IP
+# api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+#
+# # 获取API接口返回的代理IP
+# proxy_ip = requests.get(api_url).text
+#
+# # 用户名密码认证(私密代理/独享代理)
+# username = "d2400186192"
+# password = "5yv1r337"
+# proxies = {
+# "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+# "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+# }
+# return proxies
+#
+#
+# # 处理tiktok的验证码
+# def deal_identifying_code(self,b):
+# url = "http://api.jfbym.com/api/YmServer/customApi"
+# data = {
+# ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+# "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+# "type": "30101",
+# "image": b,
+# }
+# _headers = {
+# "Content-Type": "application/json"
+# }
+# response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+# print(response)
+# return response['data']['data']
+#
+# # text:传入邀约
+# def get_anchor(self,text):
+# start_time=time.time()
+# while True:
+# try:
+# inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+# if inputele:
+# inputele.click()
+# inputele.input(text,clear=True)
+# self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+# while True:
+# nextele=self.page.eles('@data-id=invite-host-next')[0]
+# nextele.click()
+# backele=self.page.ele('@data-id=invite-host-back')
+# if backele:
+# break
+# while True:
+# checkele=self.page.ele('确认',timeout=3)
+# if checkele:
+# print("请手动点击验证码")
+# # print("处理验证码")
+# # # 发现验证码截图保存到本地
+# #
+# # # 定位元素
+# # element = self.page.ele("@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+# # # 截取该元素并保存
+# # element.get_screenshot("tiktok_identifying_code.png")
+# #
+# # time.sleep(random.random())
+# # with open('tiktok_identifying_code.png', 'rb') as f:
+# # b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+# #
+# # # 处理验证码
+# # result = self.deal_identifying_code(b)
+# # print(result,type(result))
+# # # 获取x,y的坐标
+# # for i in result.split('|'):
+# # x = int(i.split(',')[0])
+# # y = int(i.split(',')[1])
+# # ac = Actions(self.page)
+# #
+# # ac.move_to(ele_or_loc=element,offset_x=0,offset_y=0).move(x,y).click()
+# #
+# # self.page.ele("@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+# # while True:
+# # checkele=self.page.ele('确认',timeout=3)
+# # if not checkele:
+# # # self.page.set.window.hide()
+# # break
+# # time.sleep(0.2)
+# # continue
+# break
+# backele=self.page.ele('@data-id=invite-host-back')
+# if backele:
+# break
+# time.sleep(0.2)
+# print('重复点击')
+# self.page.set.window.show()
+# res=self.page.listen.wait(1)
+# self.page.listen.stop()
+# while True:
+# backele=self.page.ele('@data-id=invite-host-back')
+# backele.click()
+# nextele=self.page.eles('@data-id=invite-host-next')[0]
+# if nextele:
+# break
+# time.sleep(0.2)
+# print('重复点击')
+# self.page.set.window.show()
+# break
+# except Exception as e:
+# print('报错的原因',e)
+# self.page.refresh()
+# ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=5)
+# if ele:
+# ele.click()
+# while True:
+# ele=self.page.ele('@data-id=add-host-btn')
+# try:
+# if ele:
+# ele.click()
+# time.sleep(1)
+# inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+# if inputele:
+# break
+# except:
+# ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+# if ele:
+# ele.click()
+# end_time=time.time()
+# print('耗时:',end_time-start_time)
+# return res.response.body
+
+
+
+import base64
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+import time
+import random
+from DrissionPage.common import Actions
+
+class batch_check_anchor_copy:
+
+ def __init__(self,username,password, callback):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time=time.time()
+ false=False
+ true=True
+ co = ChromiumOptions()
+ # co.incognito()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ # 全局隐藏窗口
+ # self.page.set.window.hide()
+ #self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+ loginele=self.page.ele("@data-id=login")
+
+ print("cookie允许")
+
+ # btn = self.page.ele("全部允许")
+ # if btn:
+ # print("123456")
+ # btn.click()
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username,clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ self.page.ele("@class=semi-button semi-button-primary semi-button-size-large semi-button-block").click()
+
+ while True:
+ try:
+ loginele=self.page.ele("@data-id=login",timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ if callback:
+ callback()
+ break
+ time.sleep(0.2)
+ except:
+ pass
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+
+ print("3s 点击 关闭页面")
+
+ if ele:
+ ele.click()
+ invite_btn = self.page.ele("@class=semi-button semi-button-primary semi-button-with-icon",timeout=1)
+
+ if not invite_btn:
+ btn = self.page.ele("@data-id=know")
+ if btn:
+ btn.click()
+ check_btn = self.page.ele("@data-id=workplace-switch-button")
+ if check_btn:
+ check_btn.click()
+ while true:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ time.sleep(1)
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ self.get_anchor("测试")
+ print('初始化完成 耗时:',end_time-start_time)
+
+ def get_ip(self):
+ # 提取代理API接口,获取1个代理IP
+ api_url = "https://dps.kdlapi.com/api/getdps/?secret_id=ohs2d9r6kqdtt2tau900&signature=gktsvou9sd0nq7o09q3ridg70aal97b1&num=1&pt=1&sep=1"
+
+ # 获取API接口返回的代理IP
+ proxy_ip = requests.get(api_url).text
+
+ # 用户名密码认证(私密代理/独享代理)
+ username = "d2400186192"
+ password = "5yv1r337"
+ proxies = {
+ "http": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip},
+ "https": "http://%(user)s:%(pwd)s@%(proxy)s/" % {"user": username, "pwd": password, "proxy": proxy_ip}
+ }
+ return proxies
+
+
+ # 处理tiktok的验证码
+ def deal_identifying_code(self,b):
+ url = "http://api.jfbym.com/api/YmServer/customApi"
+ data = {
+ ## 关于参数,一般来说有3个;不同类型id可能有不同的参数个数和参数名,找客服获取
+ "token": "w7hWcZPPOgQG2WTg4os5vD2WnYZ38g9bLWnmBxGUHY4",
+ "type": "30101",
+ "image": b,
+ }
+ _headers = {
+ "Content-Type": "application/json"
+ }
+ response = requests.request("POST", url, headers=_headers, json=data, proxies=self.get_ip()).json()
+ print(response)
+ return response['data']['data']
+
+ # text:传入邀约
+ def get_anchor(self,text):
+ start_time=time.time()
+ while True:
+ try:
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ inputele.click()
+ inputele.input(text,clear=True)
+ self.page.listen.start('https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/')
+ while True:
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ nextele.click()
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ while True:
+ checkele=self.page.ele('确认')
+ if checkele:
+
+ print("请手动点击验证码")
+ # # self.page.set.window.show()
+ # print("处理验证码")
+ # # 发现验证码截图保存到本地
+ #
+ # # 定位元素
+ # element = self.page.ele("@class=cap-rounded-lg cap-cursor-pointer cap-w-full cap-h-auto")
+ # # 截取该元素并保存
+ # element.get_screenshot("tiktok_identifying_code.png")
+ #
+ # time.sleep(random.random())
+ # with open('tiktok_identifying_code.png', 'rb') as f:
+ # b = base64.b64encode(f.read()).decode() ## 图片二进制流base64字符串
+ #
+ # # 处理验证码
+ # result = self.deal_identifying_code(b)
+ # print(result,type(result))
+ # # 获取x,y的坐标
+ # for i in result.split('|'):
+ # x = int(i.split(',')[0])
+ # y = int(i.split(',')[1])
+ # ac = Actions(self.page)
+ #
+ # ac.move_to(ele_or_loc=element,offset_x=0,offset_y=0).move(x,y).click()
+ #
+ # self.page.ele("@class=TUXButton TUXButton--default TUXButton--medium TUXButton--primary cap-my-8 cap-w-full").click()
+ # back_btn = self.page.ele("@data-id=invite-host-back")
+ # if back_btn:
+ # back_btn.click()
+ # time.sleep(10)
+ # # self.page.set.window.hide()
+ # while True:
+ # checkele=self.page.ele('确认')
+ # if not checkele:
+ # # self.page.set.window.hide()
+ # break
+ # time.sleep(0.2)
+ # continue
+ break
+ backele=self.page.ele('@data-id=invite-host-back')
+ if backele:
+ break
+ time.sleep(0.2)
+ print('重复点击')
+ # self.page.set.window.show()
+ res=self.page.listen.wait(1)
+ self.page.listen.stop()
+ while True:
+ backele=self.page.ele('@data-id=invite-host-back')
+ backele.click()
+ nextele=self.page.eles('@data-id=invite-host-next')[0]
+ if nextele:
+ break
+ time.sleep(0.2)
+ print('重复点击')
+ # self.page.set.window.show()
+ break
+ except Exception as e:
+ print('报错的原因',e)
+ self.page.refresh()
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only')
+ if ele:
+ ele.click()
+ while True:
+ ele=self.page.ele('@data-id=add-host-btn')
+ try:
+ if ele:
+ ele.click()
+ time.sleep(1)
+ inputele=self.page.eles('@class=semi-input-textarea semi-input-textarea-autosize')[1]
+ if inputele:
+ break
+ except:
+ ele=self.page.ele('@class=semi-button semi-button-tertiary semi-button-size-small semi-button-borderless semi-modal-close semi-button-with-icon semi-button-with-icon-only',timeout=1)
+ if ele:
+ ele.click()
+
+ end_time=time.time()
+ print('耗时:',end_time-start_time)
+ return res.response.body
diff --git a/src/assets/img/demos/2025-04/tiktok_cookies(1).py b/src/assets/img/demos/2025-04/tiktok_cookies(1).py
new file mode 100644
index 0000000..a6bb144
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktok_cookies(1).py
@@ -0,0 +1,51 @@
+import re
+import time
+
+from DrissionPage import ChromiumPage
+from DrissionPage._configs.chromium_options import ChromiumOptions
+
+
+def monitor_url_and_cookies():
+ co = ChromiumOptions()
+ co.incognito() # 使用无痕模式避免缓存
+ page = ChromiumPage(co)
+ page.get('https://www.tiktok.com/login')
+
+ # 获取初始URL和Cookies
+ current_url = page.url
+ print(f"初始URL: {current_url}")
+
+ # login_url = "https://www.tiktok.com/login"
+ # barcode_url = "https://www.tiktok.com/login/qrcode"
+ # phone_url = "https://www.tiktok.com/login/phone-or-email"
+ # email_url = "https://www.tiktok.com/login/phone-or-email/email"
+
+
+ chrome_url = "chrome://newtab/"
+
+ try:
+ while True:
+ # if page.url != current_url and page.url != barcode_url and page.url != phone_url and page.url != login_url and page.url != chrome_url and page.url != email_url:
+ if not re.match(r'https://www\.tiktok\.com/login(/.*)?', page.url) and page.url != chrome_url and page.url != current_url:
+ new_url = page.url
+ print(f"检测到URL变化: {new_url}")
+ if page.cookies():
+ cookies = page.cookies()
+ print(cookies)
+ for cookie in cookies:
+ if (cookie["name"] == 'msToken'):
+ token = cookie["value"]
+ print(token)
+ break
+ time.sleep(1)
+ except Exception as e:
+ print("用户中断监控",e)
+ finally:
+ page.quit()
+
+
+if __name__ == '__main__':
+ monitor_url_and_cookies()
+
+
+# 最新Cookies: [{'name': 'store-country-sign', 'value': 'MEIEDBhQzC1i4DLdX86soAQgoJaw235vGvRyvEQnIgbBNGUO-cN47EiVHvk-M0ZEbM4EEIx_vV3D83yUzh8j8-g43A8', 'domain': '.tiktok.com'}, {'name': 'last_login_method', 'value': 'sms_verification', 'domain': 'www.tiktok.com'}, {'name': 'tt-target-idc-sign', 'value': 'hKLPLDWAK6XKzlPQNvI-AheN2Sf2BdhwyW_dv9uLHV65wCYz6fFnztQMv8vQplapuWiIjgsUPbxI4ZyMJOXS3-rAO0bPJp0omk6chCOuGiERVZ1qKcrcNlN-2NqDXufNOxOL6Rt9GrztXKXigK6RDr2ErkRJGRQ45LA7BO3s-y_HDCCtQ5j6roM1GbAs0U3TxjyOGo7zs_Mr8yCxIYdjn9DHO8MtqubCLEdePCaKodR5_G3VE5VW5Ee8dPQEITg2FSzltHwBE4Z13IaHDY0Ckcd-agQEnWoiZo4WklsDJ7lOVAxSSfVAOYiUyJFeN96ngpuWqlKIKd5jHkmfO2Xmfq1k7TqVVuCcpNvjucyVdk2c-MlbG5gc897_mzIa3kYk3JxRPE9lEzukokuIyqI1iHTHVx_GzZLzGZenZikTVNZVeapIFmmrhJo_fc2RqA1-pjqQfcZjAIpXTEDoATXJm7gnjaaXBFCxkg5w4GI9RXdxxT7Z0uSywE2fKeI7o1V6', 'domain': '.tiktok.com'}, {'name': 'cmpl_token', 'value': 'AgQQAPNSF-RO0rfK75Gtu10n_ZS52rpfv4SLYNgVrg', 'domain': '.tiktok.com'}, {'name': 'store-idc', 'value': 'useast5', 'domain': '.tiktok.com'}, {'name': 'sid_tt', 'value': 'ca9b365605b07f17c848304f1b21f1b1', 'domain': '.tiktok.com'}, {'name': 'sessionid_ss', 'value': 'ca9b365605b07f17c848304f1b21f1b1', 'domain': '.tiktok.com'}, {'name': 'store-country-code', 'value': 'us', 'domain': '.tiktok.com'}, {'name': 'sid_guard', 'value': 'ca9b365605b07f17c848304f1b21f1b1%7C1744118054%7C15552000%7CSun%2C+05-Oct-2025+13%3A14%3A14+GMT', 'domain': '.tiktok.com'}, {'name': 'ssid_ucp_v1', 'value': '1.0.0-KDZiZmQ0MzUwYTVkZDBkMDNjZDVmYjEzNmMxY2YzNTg4ZmFkZGFmODkKGgieiKas4qaA-mcQpsLUvwYYsws4AkDxB0gEEAQaB3VzZWFzdDgiIGNhOWIzNjU2MDViMDdmMTdjODQ4MzA0ZjFiMjFmMWIx', 'domain': '.tiktok.com'}, {'name': 'uid_tt_ss', 'value': 'e1ac4f4771b59119252e3c6e2d228723aa252bca67d109800fe590c08d189a2b', 'domain': '.tiktok.com'}, {'name': 'msToken', 'value': 'M3kAGVk-2YuPwYBH_sa52mklJY7oefj-_ur-Zy2dJ4AEw_zrUCrJ9H0B5UWyuQjSy9y8PEQCa__pIQZiFdqsLB8gpAWdyBZBq-QT9P50zDGz-Nl64qQ1iR58d_REWkFcx8E2R1j3NXOzjA==', 'domain': 'www.tiktok.com'}, {'name': 'passport_auth_status_ss', 'value': 'de453ede07a5dc52b2d72f2d6ce7e1b1%2C', 'domain': '.tiktok.com'}, {'name': 'passport_auth_status', 'value': 'de453ede07a5dc52b2d72f2d6ce7e1b1%2C', 'domain': '.tiktok.com'}, {'name': 'ttwid', 'value': '1%7CEOVVkXdnrWEn93yKcVp_-RqArMpUob7WPkxXYzQ0v-Q%7C1744118054%7Cadd08c3f8609426f2d210e77646080af1f66b31f855e4f71f59af53be2b76de9', 'domain': '.tiktok.com'}, {'name': 's_v_web_id', 'value': 'verify_m98iu0if_zRj795Z5_lMqS_4RX4_BugR_hlAqYfCv7sUA', 'domain': '.tiktok.com'}, {'name': 'sid_ucp_v1', 'value': '1.0.0-KDZiZmQ0MzUwYTVkZDBkMDNjZDVmYjEzNmMxY2YzNTg4ZmFkZGFmODkKGgieiKas4qaA-mcQpsLUvwYYsws4AkDxB0gEEAQaB3VzZWFzdDgiIGNhOWIzNjU2MDViMDdmMTdjODQ4MzA0ZjFiMjFmMWIx', 'domain': '.tiktok.com'}, {'name': 'd_ticket', 'value': '619388ab7c3c2c8a3e704738f1d0a23c07177', 'domain': '.tiktok.com'}, {'name': 'store-country-code-src', 'value': 'uid', 'domain': '.tiktok.com'}, {'name': 'tt_csrf_token', 'value': 'nS8qfODs-xjVemoiTDYYm8wijlhN0XkMPGRY', 'domain': '.tiktok.com'}, {'name': 'fblo_1862952583919182', 'value': 'y', 'domain': 'www.tiktok.com'}, {'name': 'msToken', 'value': 'LhE9T6hkMhHjKedKt2PuxuA435tCx7BUjKtPMrJIuHEY32WS40xcqKt-XaVF1-tNwZ0-JG_wINnqRgOK23dwFWxzq9VX26nYZcxqpQKIiQENSdRILk-mj0Oj51q8ZhRPBhgi6p4rY605XQ==', 'domain': '.tiktok.com'}, {'name': 'passport_csrf_token_default', 'value': 'cb83facc338b76cf19efb1939ff364b2', 'domain': '.tiktok.com'}, {'name': 'multi_sids', 'value': '7490613412293608478%3Aca9b365605b07f17c848304f1b21f1b1', 'domain': '.tiktok.com'}, {'name': 'tiktok_webapp_theme_source', 'value': 'light', 'domain': '.www.tiktok.com'}, {'name': 'tt_chain_token', 'value': '5Dl6k0jmQfjg8xPw+YsRSw==', 'domain': '.tiktok.com'}, {'name': 'tt-target-idc', 'value': 'useast5', 'domain': '.tiktok.com'}, {'name': 'passport_csrf_token', 'value': 'cb83facc338b76cf19efb1939ff364b2', 'domain': '.tiktok.com'}, {'name': 'sessionid', 'value': 'ca9b365605b07f17c848304f1b21f1b1', 'domain': '.tiktok.com'}, {'name': 'uid_tt', 'value': 'e1ac4f4771b59119252e3c6e2d228723aa252bca67d109800fe590c08d189a2b', 'domain': '.tiktok.com'}, {'name': 'tiktok_webapp_theme', 'value': 'light', 'domain': '.www.tiktok.com'}]
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/tiktok_cookies(2).py b/src/assets/img/demos/2025-04/tiktok_cookies(2).py
new file mode 100644
index 0000000..444f64f
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktok_cookies(2).py
@@ -0,0 +1,74 @@
+import re
+import time
+
+from DrissionPage import ChromiumPage
+from DrissionPage._configs.chromium_options import ChromiumOptions
+from playwright.sync_api import sync_playwright
+
+
+def monitor_url_and_cookies():
+ from utils.JsInteraction import fetch_data_config
+
+ co = ChromiumOptions()
+ co.incognito()
+ page = ChromiumPage(co)
+ page.get('https://www.tiktok.com/login')
+
+ # 获取初始URL和Cookies
+ current_url = page.url
+ print(f"初始URL: {current_url}")
+
+ tiktok_url = "https://www.tiktok.com/foryou?lang=zh-Hans"
+ chrome_url = "chrome://newtab/"
+
+ try:
+ while True:
+ if (page.url == tiktok_url) or not re.match(r'https://www\.tiktok\.com/login(/.*)?',
+ page.url) and page.url != chrome_url and page.url != current_url:
+ new_url = page.url
+ print(f"检测到URL变化: {new_url}")
+ if page.cookies():
+ fetch_data_config.headers = page._headers
+ print("headers = " , page._headers)
+
+ cookies = page.cookies()
+ fetch_data_config.cookie = cookies
+ for cookie in cookies:
+ if (cookie["name"] == 'msToken'):
+ token = cookie["value"]
+ fetch_data_config.msToken = token
+ else:
+ print("用户未登录")
+
+ break
+ time.sleep(1)
+ except Exception as e:
+ print("用户中断监控",e)
+ finally:
+ print("执行完毕,关闭窗口")
+ page.quit()
+
+ def get_api_headers(url):
+ with sync_playwright() as p:
+ browser = p.chromium.launch(headless=False)
+ page = browser.new_page()
+
+ # 存储目标请求的 headers
+ target_headers = {}
+
+ # 监听所有网络请求
+ def on_request(request):
+ if url in request.url: # 匹配目标接口
+ target_headers.update(request.headers)
+ print("Headers:", request.headers)
+
+ page.on("request", on_request)
+
+ # 访问页面(示例:打开一个会触发目标接口的网页)
+ page.goto("https://example.com") # 替换为实际页面
+ page.wait_for_timeout(5000) # 等待请求完成
+
+ browser.close()
+ return target_headers
+if __name__ == '__main__':
+ monitor_url_and_cookies()
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/tiktok_cookies(3).py b/src/assets/img/demos/2025-04/tiktok_cookies(3).py
new file mode 100644
index 0000000..6d3f821
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktok_cookies(3).py
@@ -0,0 +1,58 @@
+import re
+import time
+
+from DrissionPage import ChromiumPage
+from DrissionPage._configs.chromium_options import ChromiumOptions
+
+
+def monitor_url_and_cookies():
+ from utils.JsInteraction import fetch_data_config
+ co = ChromiumOptions()
+
+ page = ChromiumPage(co)
+ page.get('https://www.tiktok.com/login')
+
+ # 获取初始URL和Cookies
+ current_url = page.url
+ print(f"初始URL: {current_url}")
+ tiktok_url = "https://www.tiktok.com/foryou?lang=zh-Hans"
+ chrome_url = "chrome://newtab/"
+
+ try:
+ while True:
+ if (page.url == tiktok_url) or not re.match(r'https://www\.tiktok\.com/login(/.*)?',
+ page.url) and page.url != chrome_url and page.url != current_url:
+ new_url = page.url
+ print(f"检测到URL变化: {new_url}")
+ if page.cookies():
+ cookies = page.cookies()
+ fetch_data_config.cookies_dict = {cookie['name']: cookie['value'] for cookie in cookies}
+
+ print(fetch_data_config.cookies_dict)
+ if 'sid_guard' in fetch_data_config.cookies_dict:
+ for cookie in cookies:
+ if (cookie["name"] == 'msToken'):
+ token = cookie["value"]
+ fetch_data_config.msToken = token
+ print("用户登录", token)
+ break
+ else:
+ print("用户未登录1")
+ break
+ else:
+ print("用户未登录2")
+ break
+ time.sleep(1)
+ except Exception as e:
+ print("用户中断监控", e)
+ finally:
+ print("执行完毕,关闭窗口")
+ page.quit()
+
+
+if __name__ == '__main__':
+ monitor_url_and_cookies()
+
+# [{'name': 'ttwid', 'value': '1%7CvanRPv1of0nPRzF_0x3HnC1_Sf5EKmOQiyjn0OA7oC0%7C1744273288%7C3e7012f595ba249565d109df5681b0cf2c6a7b383820fe4ebfca075619739c29', 'domain': '.tiktok.com'}, {'name': 'tiktok_webapp_theme', 'value': 'dark', 'domain': '.www.tiktok.com'}, {'name': 'tt_chain_token', 'value': 'vJUyXPhw6ixK3juREYULHw==', 'domain': '.tiktok.com'}, {'name': 'tt_csrf_token', 'value': '95kdv40l-RZZWrFe4y9nylyTOkXCCSO3OFrQ', 'domain': '.tiktok.com'}, {'name': 'msToken', 'value': '0vDx94cr2tXAIAZhfIbsoha9gRJc5Sd3-VDfwIz6T9xJQhdPGIfRJd62goLYggZxOnLaIR1ZvD0BE1iNohLfgMt_hfW1pes1ZFzZvs1y09_Gu1TPOFV4aUt_j9WDq56Zb0luA7E=', 'domain': 'www.tiktok.com'}, {'name': 'msToken', 'value': '8QbVY-Phwl0FJfhu9VHxgUhOf-62P4tO5tFoIKA5snktzCpXuKjZkfiSm2nZysTUvQSQrEQ9w8xdli6WiZryf6dWuzxtryzjEI6OP6Z3bKPEQMf3fVE6KXy3vXHZSfhjGBPOjQ==', 'domain': '.tiktok.com'}, {'name': 'passport_csrf_token_default', 'value': 'ebe9d256aa75184036dcd21df1880793', 'domain': '.tiktok.com'}, {'name': 'tiktok_webapp_theme_source', 'value': 'auto', 'domain': '.www.tiktok.com'}, {'name': 'passport_csrf_token', 'value': 'ebe9d256aa75184036dcd21df1880793', 'domain': '.tiktok.com'}]
+# [{'name': 'msToken', 'value': '9llqbTFWPouwDYuty_c-NFpZy7GMUV7wB16gV_HKz-bSy9Qe8Zc7Ls59iJRzhWNFfSzxRmzaCwI0VFp0gyiwepMfJRdB3Hejc9if3c6Sue7_8c_GzKajGoZRD4CQgdcC9Iudzg==', 'domain': 'www.tiktok.com'}, {'name': 'ttwid', 'value': '1%7CvanRPv1of0nPRzF_0x3HnC1_Sf5EKmOQiyjn0OA7oC0%7C1744273213%7C10889e658bad344c996adc8efd0949003b385b162112cd9ab4b7c3ed35fc3e83', 'domain': '.tiktok.com'}, {'name': 'tiktok_webapp_theme', 'value': 'light', 'domain': '.www.tiktok.com'}, {'name': 'tiktok_webapp_theme_source', 'value': 'light', 'domain': '.www.tiktok.com'}, {'name': 'tt_csrf_token', 'value': '95kdv40l-RZZWrFe4y9nylyTOkXCCSO3OFrQ', 'domain': '.tiktok.com'}]
+# [{'name': 'tiktok_webapp_theme', 'value': 'dark', 'domain': '.www.tiktok.com'}, {'name': 'tiktok_webapp_theme_source', 'value': 'auto', 'domain': '.www.tiktok.com'}, {'name': 'ttwid', 'value': '1%7Csa7eEWP87ZS1gtue3VXl1zpVbC6RKeQq7n7rdiggW68%7C1744273026%7C737005dbcc404500e56f2e11afc43a5bd871371b2496052a8c961e6eab1bc71a', 'domain': '.tiktok.com'}, {'name': 'perf_feed_cache', 'value': '{%22expireTimestamp%22:1744441200000%2C%22itemIds%22:[%227477343231156555026%22%2C%227490761799852313862%22%2C%227489980636183153950%22]}', 'domain': '.www.tiktok.com'}, {'name': 'store-country-sign', 'value': 'MEIEDMcgZeJ036VJaKTHaAQgmxq9OvL0fmSNPBnvx9EESTgbhGIWUL4v1hOBnwlgJ1oEEF5opCR7Hyo0UHPqqZMIaRo', 'domain': '.tiktok.com'}, {'name': 'ssid_ucp_v1', 'value': '1.0.0-KDRjYzczYTQ1OTBkNzQ0NzFhY2Q5NDZhYTkyZWNmYjhkYmIxNDM5MTUKGgieiKas4qaA-mcQ-tLdvwYYsws4AkDxB0gEEAQaB3VzZWFzdDUiIGJiOTdkYTZlMDk2NzM4Y2FhYWZjMGQyZjBkOGQ3ZGU5', 'domain': '.tiktok.com'}, {'name': 'msToken', 'value': 'h0khQ6gYzX9DDutItyXfPZURLimHXfXimNp3Qmx1GLVRMpZYcjz-NVD6Ex-GQBPdPqg3wjyWLvVrkafiBnHtPF76XKgMVygF-gnzeAXVh4VRy3vm6J4A6iLZPGP7lmo5Pwk7eMAGJloH6h2VNc7O8As=', 'domain': 'www.tiktok.com'}, {'name': 'passport_auth_status_ss', 'value': 'e3b267a948817fba9cfcf571d786ebf8%2C', 'domain': '.tiktok.com'}, {'name': 'odin_tt', 'value': 'e2bb38160f4c443324a91a838cc85ef9eed8e85604c3ab86f4d380530b3665fbcf65d7031ecc24272a441bf2dc26cce8c9e70681b6cebb2a5ab0c07497fa953f43e295a8aa4521fd98b6b8777aa52aff', 'domain': '.tiktok.com'}, {'name': 'passport_csrf_token', 'value': '43b8095e41fe8d2420e22b766a26a898', 'domain': '.tiktok.com'}, {'name': 'tt-target-idc', 'value': 'useast5', 'domain': '.tiktok.com'}, {'name': 'tt_chain_token', 'value': 'gfzRgmma2qZcAB9zjh0xQw==', 'domain': '.tiktok.com'}, {'name': 'tt-target-idc-sign', 'value': 'UvMyO-B3BL9ZhIS2t_c413SApBUzvWDtdPiJrlWMrx31vq5kBQAPN4NkLIDsa9CtokMKrq0vjjsMPVVCX3nTrZdVhjH6Lt7MgbB5FAWQNn3hb9oRofmH1Vdi07roVjjwU-JM3yN2GD5L_aHZI8_6jzzTVNefJOM8N2hloBBBmcpuVsbm-LJQTCVXRgl6ycqDahoJXLvU9tw179W58pe92zkqBkp9IkqueZLhK31JIFSMNmRBjs4SoQQLkIHsto-bCr5tR4_8XxGZGMoRSHpHvvlvfxNI1iDqIODLRxkKTzut_v7Gydv2fsqo96ONdxssrFk9So-Mi8s6K-GaAuezfCnfaHsMCDYuPIxVoVaNzTm3yw-GJnxzd_rF-38lPx_-POsko1NHHlaZUJczluwlPpyhg4WQpomB7GF13K9J2o9u9wi4gRVZY92XkHEltytIW0mtSFzUbPM8WKehlVZ6OYGHJjSqq7fLPo1SKR1F0pbH99W-4srHizMMM8N6PuAn', 'domain': '.tiktok.com'}, {'name': 'cmpl_token', 'value': 'AgQQAPNSF-RO0rfK75Gtu10n_ZbKhWlWv6jZYNgOTw', 'domain': '.tiktok.com'}, {'name': 'store-idc', 'value': 'useast5', 'domain': '.tiktok.com'}, {'name': 'sid_guard', 'value': 'bb97da6e096738caaafc0d2f0d8d7de9%7C1744267642%7C15546491%7CTue%2C+07-Oct-2025+05%3A15%3A33+GMT', 'domain': '.tiktok.com'}, {'name': 'store-country-code', 'value': 'us', 'domain': '.tiktok.com'}, {'name': 'sessionid_ss', 'value': 'bb97da6e096738caaafc0d2f0d8d7de9', 'domain': '.tiktok.com'}, {'name': 'd_ticket', 'value': 'a2e1da528f5f15d6042a0fd2cb9b86d2c0cf8', 'domain': '.tiktok.com'}, {'name': 'sid_ucp_v1', 'value': '1.0.0-KDRjYzczYTQ1OTBkNzQ0NzFhY2Q5NDZhYTkyZWNmYjhkYmIxNDM5MTUKGgieiKas4qaA-mcQ-tLdvwYYsws4AkDxB0gEEAQaB3VzZWFzdDUiIGJiOTdkYTZlMDk2NzM4Y2FhYWZjMGQyZjBkOGQ3ZGU5', 'domain': '.tiktok.com'}, {'name': 'uid_tt', 'value': '818716f9dd32bf135ad6227463afdef538dd6d9c2bc1a405962d2aff42854dd8', 'domain': '.tiktok.com'}, {'name': 'sessionid', 'value': 'bb97da6e096738caaafc0d2f0d8d7de9', 'domain': '.tiktok.com'}, {'name': 'sid_tt', 'value': 'bb97da6e096738caaafc0d2f0d8d7de9', 'domain': '.tiktok.com'}, {'name': 'delay_guest_mode_vid', 'value': '5', 'domain': '.www.tiktok.com'}, {'name': 'uid_tt_ss', 'value': '818716f9dd32bf135ad6227463afdef538dd6d9c2bc1a405962d2aff42854dd8', 'domain': '.tiktok.com'}, {'name': 'tt_csrf_token', 'value': 'btSF4WK1-oDF_JO8_75KzH0DSsxf2fMPo5AQ', 'domain': '.tiktok.com'}, {'name': 'store-country-code-src', 'value': 'uid', 'domain': '.tiktok.com'}, {'name': 'passport_auth_status', 'value': 'e3b267a948817fba9cfcf571d786ebf8%2C', 'domain': '.tiktok.com'}, {'name': 'last_login_method', 'value': 'sms_verification', 'domain': 'www.tiktok.com'}, {'name': 'multi_sids', 'value': '7490613412293608478%3Abb97da6e096738caaafc0d2f0d8d7de9', 'domain': '.tiktok.com'}, {'name': 'msToken', 'value': '3bAzXN5RKGiylvPVAsm51_MriKVmAbErcw09EAKIB9Alw1fkFY7he_21IU3JGe-A8peutfScjlSZJM1ZCg1DnV_4DHazlRVGhru_x04aeW5M6lpzUSO-PMUnyvJcSKpqxmU33i36MyLWOIzFaJUV-oI=', 'domain': '.tiktok.com'}, {'name': 'passport_csrf_token_default', 'value': '43b8095e41fe8d2420e22b766a26a898', 'domain': '.tiktok.com'}] 我是cookie
diff --git a/src/assets/img/demos/2025-04/tiktok_cookies.py b/src/assets/img/demos/2025-04/tiktok_cookies.py
new file mode 100644
index 0000000..8fab453
--- /dev/null
+++ b/src/assets/img/demos/2025-04/tiktok_cookies.py
@@ -0,0 +1,48 @@
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+import time
+import random
+
+
+
+class Cookies:
+ def __init__(self,username,password):
+ co = ChromiumOptions()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ co.headless(True)
+ self.page = ChromiumPage(co)
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+
+ def get_mstoken(self):
+ loginele = self.page.ele('登录')
+ if loginele:
+ # 点击登录按钮
+ self.page.ele("登录").click()
+ time.sleep(0.1)
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username, clear=True)
+ time.sleep(0.1)
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password, clear=True)
+ # 点击进行登录
+ time.sleep(0.1)
+ self.page.ele("@class=semi-button semi-button-primary semi-button-size-large semi-button-block").click()
+ cookies = self.page.cookies()
+ for cookie in cookies:
+ if(cookie["name"] == 'msToken'):
+ token = cookie["value"]
+ print(token)
+
+
+if __name__=='__main__':
+ username = "ph@tiktok0.xyz"
+ password = "zxcvbnm123.."
+
+ cookies = Cookies(username,password)
+ cookies.get_mstoken()
+
+
diff --git a/src/assets/img/demos/2025-04/tk-page.rar b/src/assets/img/demos/2025-04/tk-page.rar
new file mode 100644
index 0000000..1302d75
Binary files /dev/null and b/src/assets/img/demos/2025-04/tk-page.rar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(1).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(1).jar
new file mode 100644
index 0000000..bb087f0
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(1).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(2).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(2).jar
new file mode 100644
index 0000000..26539ef
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(2).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(3).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(3).jar
new file mode 100644
index 0000000..c9fb024
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(3).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(4).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(4).jar
new file mode 100644
index 0000000..c9686f2
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(4).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(5).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(5).jar
new file mode 100644
index 0000000..0c883d2
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(5).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(6).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(6).jar
new file mode 100644
index 0000000..d6b6f67
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(6).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(7).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(7).jar
new file mode 100644
index 0000000..c24c8ea
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(7).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(8).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(8).jar
new file mode 100644
index 0000000..4446fc4
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(8).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(9).jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(9).jar
new file mode 100644
index 0000000..f259eb9
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT(9).jar differ
diff --git a/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT.jar b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT.jar
new file mode 100644
index 0000000..4a1166a
Binary files /dev/null and b/src/assets/img/demos/2025-04/tkinterface-0.0.1-SNAPSHOT.jar differ
diff --git a/src/assets/img/demos/2025-04/vue-admin-template.rar b/src/assets/img/demos/2025-04/vue-admin-template.rar
new file mode 100644
index 0000000..cb136b8
Binary files /dev/null and b/src/assets/img/demos/2025-04/vue-admin-template.rar differ
diff --git a/src/assets/img/demos/2025-04/vv_super_logo.ico b/src/assets/img/demos/2025-04/vv_super_logo.ico
new file mode 100644
index 0000000..7463725
Binary files /dev/null and b/src/assets/img/demos/2025-04/vv_super_logo.ico differ
diff --git a/src/assets/img/demos/2025-04/vv工具箱.rar b/src/assets/img/demos/2025-04/vv工具箱.rar
new file mode 100644
index 0000000..dd1b472
Binary files /dev/null and b/src/assets/img/demos/2025-04/vv工具箱.rar differ
diff --git a/src/assets/img/demos/2025-04/zd-stars.zip b/src/assets/img/demos/2025-04/zd-stars.zip
new file mode 100644
index 0000000..f086cfb
Binary files /dev/null and b/src/assets/img/demos/2025-04/zd-stars.zip differ
diff --git a/src/assets/img/demos/2025-04/zh-ai.zip b/src/assets/img/demos/2025-04/zh-ai.zip
new file mode 100644
index 0000000..479d11d
Binary files /dev/null and b/src/assets/img/demos/2025-04/zh-ai.zip differ
diff --git a/src/assets/img/demos/2025-04/后台管理(1).rar b/src/assets/img/demos/2025-04/后台管理(1).rar
new file mode 100644
index 0000000..363badd
Binary files /dev/null and b/src/assets/img/demos/2025-04/后台管理(1).rar differ
diff --git a/src/assets/img/demos/2025-04/后台管理(2).rar b/src/assets/img/demos/2025-04/后台管理(2).rar
new file mode 100644
index 0000000..0e63c96
Binary files /dev/null and b/src/assets/img/demos/2025-04/后台管理(2).rar differ
diff --git a/src/assets/img/demos/2025-04/后台管理(3).rar b/src/assets/img/demos/2025-04/后台管理(3).rar
new file mode 100644
index 0000000..9489aef
Binary files /dev/null and b/src/assets/img/demos/2025-04/后台管理(3).rar differ
diff --git a/src/assets/img/demos/2025-04/后台管理(4).rar b/src/assets/img/demos/2025-04/后台管理(4).rar
new file mode 100644
index 0000000..da73732
Binary files /dev/null and b/src/assets/img/demos/2025-04/后台管理(4).rar differ
diff --git a/src/assets/img/demos/2025-04/后台管理(5).rar b/src/assets/img/demos/2025-04/后台管理(5).rar
new file mode 100644
index 0000000..b2e865f
Binary files /dev/null and b/src/assets/img/demos/2025-04/后台管理(5).rar differ
diff --git a/src/assets/img/demos/2025-04/后台管理.rar b/src/assets/img/demos/2025-04/后台管理.rar
new file mode 100644
index 0000000..c0dfaad
Binary files /dev/null and b/src/assets/img/demos/2025-04/后台管理.rar differ
diff --git a/src/assets/img/demos/2025-04/国家.xlsx b/src/assets/img/demos/2025-04/国家.xlsx
new file mode 100644
index 0000000..aee8715
Binary files /dev/null and b/src/assets/img/demos/2025-04/国家.xlsx differ
diff --git a/src/assets/img/demos/2025-04/教育部学籍在线验证报告_孟凡熙.pdf b/src/assets/img/demos/2025-04/教育部学籍在线验证报告_孟凡熙.pdf
new file mode 100644
index 0000000..96a44d7
Binary files /dev/null and b/src/assets/img/demos/2025-04/教育部学籍在线验证报告_孟凡熙.pdf differ
diff --git a/src/assets/img/demos/2025-04/新建 文本文档(1).txt b/src/assets/img/demos/2025-04/新建 文本文档(1).txt
new file mode 100644
index 0000000..3d9acf5
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建 文本文档(1).txt
@@ -0,0 +1,19 @@
+def fetch_tiktok_feed(mstoken,region):
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=g4gW1gFF-n8yPsVakDGDmrNHod_3BKquWkHI; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742537773%7C662969551ee538eab2dcdc43c3fe4040eb616fadb0643fdf214cd492020211bb; store-country-sign=MEIEDAsnjoHJTjFNneFmHAQgQR99HNzDAO_9D6SuCvfYF54a6DyVUejXuTNuzPiPad4EECxy0Xgv6zgOnvZRwbL1BOI; odin_tt=f6dd93d06620a488d2c682614b0220bd90ce162c6ed4519dd238268f2d093ba6681742fda279cbbc281003b9653189488b0835410c681b9dd606fc3bea583d1e7db3636194de935ad4fb5a4edb93bc7f; FPLC=0cwaDGpn9gDBc5kgScVenLiwA4ke7utdzOwoyYXd01vs%2BTmgjutMCQsNbb4Op9PIx91duASeDnByT92SJCBf7O9%2BcIrWqPtwAdF%2BnTeb9U9Qwtfe%2Fc5qsS4YtdCK3Q%3D%3D; csrfToken=UXnAHlaM-oJpqmZgGifEUaKBQt2qDZdEs5VE; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; msToken={mstoken}; _ga_LWWPCY99PB=GS1.1.1742537780.39.1.1742538627.0.0.1606106523'
+ }
+
+ mstoken = 'mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE='
+ try:
+ #req_from的属性需要重新设置为:webapp_taxonomy_drawer_enter_feed
+ url = f'https://webcast.tiktok.com/webcast/feed/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&channel_id=1222001&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&device_type=web_h265&focus_state=true&from_page=live&history_len=40&is_fullscreen=false&is_non_personalized=0&is_page_visible=true&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20®ion=PH&related_live_tag=chatting&req_from=pc_web_recommend_room&root_referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&webcast_language=zh-Hans&msToken={mstoken}&_signature=_02B4Z6wo000019C5TqAAAIDCn.1ptJ30HF.QuUoAAJP85b'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/新建 文本文档(2).txt b/src/assets/img/demos/2025-04/新建 文本文档(2).txt
new file mode 100644
index 0000000..f1dcfc1
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建 文本文档(2).txt
@@ -0,0 +1,22 @@
+def fetch_tiktok_ranklist_list_v2(mstoken,roomid,anchor_id,gapstyle):
+ #gapstyle代表昨日或今日,0代表今日,-1代表昨日
+ #cokkie中的session需要修改
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ #'Cookie': f'store-idc=maliva; passport_csrf_token=9f1c3313673d0cffd87316094dbffc7c; passport_csrf_token_default=9f1c3313673d0cffd87316094dbffc7c; multi_sids=7486734628213965840%3A976a1e25225285cf360b44e5fde377c6; cmpl_token=AgQQAPOHF-RPsLfY193SfZ0p-yMtHnfPP4fZYNjGCA; d_ticket=f1c8feea880f8bddd1258fc98100606241a3c; sid_guard=976a1e25225285cf360b44e5fde377c6%7C1743405899%7C15552000%7CSat%2C+27-Sep-2025+07%3A24%3A59+GMT; uid_tt=fb68d9a7e8ea0cece1b7958c8d2da425c2256f153c0b6f7ff56cacde89a20b2e; uid_tt_ss=fb68d9a7e8ea0cece1b7958c8d2da425c2256f153c0b6f7ff56cacde89a20b2e; sid_tt=976a1e25225285cf360b44e5fde377c6; sessionid=73c9e1dd1af6bed1d6e6ba49b50aad0f; sessionid_ss=73c9e1dd1af6bed1d6e6ba49b50aad0f; store-country-code=tw; store-country-code-src=uid; tt-target-idc=alisg; install_id=7487871815659669256; ttreq=1$53c460ab556f59872a6917b9efc4b4dc0ffac9cc; odin_tt=6b7c3d7ec51030c806c5337dadeb3685319ad24874dc5871ebd07'
+
+ 'Cookie': f'install_id=7487870756572186410; ttreq=1$2afa63cd4b0ff1161e179c28084d891d64dbb6d9; store-idc=useast5; store-country-code=us; store-country-code-src=uid; tt-target-idc=useast8; uid_tt=732c3940cf2659167f84e71ffdb5616914b710b0b37ffd080e9b0b7b5248e215; uid_tt_ss=732c3940cf2659167f84e71ffdb5616914b710b0b37ffd080e9b0b7b5248e215; sid_guard=b5b341deed5cd4c5174f9203a94dbb89%7C1743601129%7C15378367%7CSat%2C+27-Sep-2025+13%3A24%3A56+GMT; sid_tt=b5b341deed5cd4c5174f9203a94dbb89; sessionid=b5b341deed5cd4c5174f9203a94dbb89; sessionid_ss=b5b341deed5cd4c5174f9203a94dbb89; passport_csrf_token=003f54014b009e057755ae7d4102704a; passport_csrf_token_default=003f54014b009e057755ae7d4102704a; store-country-sign=MEIEDGiF6NUvpjtZij7DxwQgmVgJbARKDUZuipnE77PfyGu02WoyElZtyrloDuD343AEEPieJ8HazV_DRIBjcFzdHr0; odin_tt=ff5a7b80d4a9eef1cc71d5e7430093fe7bf41c03fa008266649e3da7a6fe7ea4c95aa88240daa64ba49e51708f4b921677ee1d42c4d998bec20193aa5ecd8a119784b2b18e3529bde2cb1dc07f6d76d6; msToken=c4Lt_RIFfxVBf5e-ahm9CaI1cOxzgBS9drafpwA6g0UtdLlixh956HRJS8n48LgM_NXzEAhxsvjs7_vR3dDHSoqSgMU7zy3ii-18UDp9gyoDHdBOrWwcXhBtH8k5'
+ }
+
+
+ try:
+ url = f'https://webcast16-normal-useast8.tiktokv.us/webcast/ranklist/list/v2/?anchor_id={anchor_id}&room_id={roomid}&rank_type=8®ion_type=1&gap_interval={gapstyle}&use_simple_user=true&league_phase=0&device_platform=android&os=android&ssmix=a&_rticket=1743411002698&channel=huaweiadsglobal_int&aid=1233&app_name=musical_ly&version_code=390303&version_name=39.3.3&manifest_version_code=2023903030&update_version_code=2023903030&ab_version=39.3.3&resolution=720*1280&dpi=240&device_type=G011A&device_brand=google&language=zh-Hans&os_api=28&os_version=9&ac=wifi&is_pad=0¤t_region=US&app_type=normal&sys_region=CN&last_install_time=1743405779&mcc_mnc=31031&timezone_name=America%2FLos_Angeles&residence=US&app_language=zh-Hans&carrier_region=US&timezone_offset=-28800&host_abi=armeabi-v7a&locale=zh-Hans&ac2=wifi&uoo=0&op_region=US&build_number=39.3.3®ion=CN&ts=1743411004&iid=7487871815659669256&device_id=7008362079137564165&webcast_sdk_version=3840&webcast_language=zh-Hans&webcast_locale=zh_CN&effect_sdk_version=18.6.0¤t_network_quality_info=%7B%7D'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/新建 文本文档(3).txt b/src/assets/img/demos/2025-04/新建 文本文档(3).txt
new file mode 100644
index 0000000..7f7fc58
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建 文本文档(3).txt
@@ -0,0 +1,20 @@
+def fetch_tiktok_feed(mstoken,region):
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ # 'Cookie': f''
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; d_ticket=29d26aed73a954d73f7f495857a66eed44a85; cookie-consent="{"%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22"}"; _ga=GA1.1.GA1.1.1942425062.1741594510; _ga_GR6VLNH8D4=GS1.1.1743082052.1.1.1743082262.0.0.542364911; tt_csrf_token=Fcq3Njy5-uzOkZ9GnPu2KyI7z3iUnjd9H2uM; csrfToken=c1rsJrKb-cmJqvjEcdaCQ70zj6Q4GMNrgs3A; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; s_v_web_id=verify_m9bk6765_a5pyNOGC_qdvY_454U_Bt84_i1Rl158d3ww7; multi_sids=7480081853916922896%3Ad2199c813f4c846be72cc15f3e31588d%7C7480081654934619143%3A5e48c9ed20c4e0b996c58ae25eb9a76e; cmpl_token=AgQQAPOqF-RO0rfweAXFeZ0-_a8Pj5Yav4owYNgBug; passport_auth_status=acf8b0381d1a26329c279da9d34d5433%2C3dceb01e32387e789528f38e0109552e; passport_auth_status_ss=acf8b0381d1a26329c279da9d34d5433%2C3dceb01e32387e789528f38e0109552e; uid_tt=dc3046ade263f6ee55af3b741655ec8829923bc8d095d4d1e792e118da1ca13d; uid_tt_ss=dc3046ade263f6ee55af3b741655ec8829923bc8d095d4d1e792e118da1ca13d; sid_tt=5e48c9ed20c4e0b996c58ae25eb9a76e; sessionid=5e48c9ed20c4e0b996c58ae25eb9a76e; sessionid_ss=5e48c9ed20c4e0b996c58ae25eb9a76e; store-idc=alisg; store-country-code=jp; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=PfAn_fWp6CBzsOLdmfo5khJPZAQkm6yuiXiZ7TA7ep1E54xRn9pGLeJbUh4VColMVsScBYLUJ4NdZLBLMwQQ3uNjD_HDtNu_v9iUXKeujl1JkCtSD3WWP5FPuHFTJW15ukb_W7S4hSsOYzQ34T1iNI5UwU_IwQbDQBhlS53xD4jPM0mlZ2mYQ9s560dnMlupMXaULWoQgC4w_Cde0n4JkV38NC_m_CsWXPbse8ojLcPijU7o7uEAxlfVRXhfMBnLKCbeWGehoyKiWgx2TfgQOUrOiHXelSU-yXlPCZOssy2GLVK_6oPMZqHwffjIzyQPqJi0BZX-_YOQ-ZVOnbDOA_QDP2rlEW31ZHGabQ41Rcuulqr9PdgonlPGtfPckSt38HX4rcl69k5IsygOecLI0wFAbrjoQRkQKQsamVmyLCa15_IH2MmtWb7Vv5h2gbzUc-GBQm2Yp8QRDLaFYshOFsrwCOq4U6IebiT0DSNETV6p85g68LomSt_Cg9FdL6NQ; sid_guard=5e48c9ed20c4e0b996c58ae25eb9a76e%7C1744301700%7C15551997%7CTue%2C+07-Oct-2025+16%3A14%3A57+GMT; sid_ucp_v1=1.0.0-KDMxNWQwY2Q5OTUzMmVmYjY2NWIxMDUxMjYwNTFkNzdhN2U4ZGYxNTMKGQiHiK3qpNSl52cQhN3fvwYYsws4CEASSAQQAxoCbXkiIDVlNDhjOWVkMjBjNGUwYjk5NmM1OGFlMjVlYjlhNzZl; ssid_ucp_v1=1.0.0-KDMxNWQwY2Q5OTUzMmVmYjY2NWIxMDUxMjYwNTFkNzdhN2U4ZGYxNTMKGQiHiK3qpNSl52cQhN3fvwYYsws4CEASSAQQAxoCbXkiIDVlNDhjOWVkMjBjNGUwYjk5NmM1OGFlMjVlYjlhNzZl; FPLC=YDUhBwne68mKq3c7Vp4j1gTXod7e1KTdXWc%2F6M%2B5CJdDNq21sPpWGxDDOLDIrjzIm88CnCjLNzjYkr4eHfG0uQIIvXLmalQWpjN1H2xDDmsIxNyqiZ6ATIrCP9mhhA%3D%3D; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1744358694%7C18f5529be72831979ada1d51542605b481f652531b48405a65404d71f0ce3799; store-country-sign=MEIEDL3eG5svrm6KyHO4vQQg5Y0-Z01iEKZFoaRI36M1dhl106zlLS-wtFiIz2Kvi54EEGfcHmjf1bvmvnpMhC4E5UE; odin_tt=3efc115d4a79a8b9b65eaa56bb6baca0f6196af75e29f47da43c1e09b02469d902f29775482883eaca923ebac3f1801cb32a6758681e85e66f0fc8f1e1713bf369f12bbe9dfb31f2a72e781a52b7144e; msToken=hF0OfgoDlg_UYJpGwse96UOu6yJuTNLWOZwCjt-k5BnpUOHvDgwJRsJ7neXswZXNP02CT_1Wb8cAiGtZlDy45HYqLeys53zEQ-YnzW45rm0b3Ktw9-QmdmbRi1cjDFBsetLgb2zXARvuhLqk4kFz7zErug==; _ga_LWWPCY99PB=GS1.1.1744358699.82.1.1744358764.0.0.1449336537'
+ }
+
+ mstoken = 'mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE='
+ try:
+ #req_from的属性需要重新设置为:webapp_taxonomy_drawer_enter_feed
+ url = f'https://webcast.tiktok.com/webcast/feed/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&channel_id=86&content_type=0&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&device_type=web_h265&focus_state=false&from_page=user&hidden_banner=true&history_len=5&is_fullscreen=false&is_non_personalized=0&is_page_visible=true&max_time=0&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2F®ion=PH&req_from=pc_web_suggested_host&root_referer=https%3A%2F%2Fwww.tiktok.com%2F&screen_height=1067&screen_width=1707&tz_name=Asia%2FShanghai&user_is_login=true&verifyFp=verify_m9bk6765_a5pyNOGC_qdvY_454U_Bt84_i1Rl158d3ww7&webcast_language=zh-Hans&msToken=dgnJOvBJRqdvkKoP4AV8Pa35Zjz7l7x1g4v-WZbQfGzQ7fyOZ3y-sxtqZ2SibDz27rE6JhDO_OuFHnsGkG_hSyPMCFgo0TNK_2oqKDXoOP-HQJ1nZTUK5xnwtPVUkcvBbX-9u2vTQzEzcvyceh6S5TmAbw==&X-Bogus=DFSzswVuZrxANcSctgjsaYG0V1oV&_signature=_02B4Z6wo00001.l4zMQAAIDCtjzr0MiYJDv5eMhAAJmwbe'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/新建 文本文档(4).txt b/src/assets/img/demos/2025-04/新建 文本文档(4).txt
new file mode 100644
index 0000000..3d9acf5
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建 文本文档(4).txt
@@ -0,0 +1,19 @@
+def fetch_tiktok_feed(mstoken,region):
+ headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=g4gW1gFF-n8yPsVakDGDmrNHod_3BKquWkHI; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742537773%7C662969551ee538eab2dcdc43c3fe4040eb616fadb0643fdf214cd492020211bb; store-country-sign=MEIEDAsnjoHJTjFNneFmHAQgQR99HNzDAO_9D6SuCvfYF54a6DyVUejXuTNuzPiPad4EECxy0Xgv6zgOnvZRwbL1BOI; odin_tt=f6dd93d06620a488d2c682614b0220bd90ce162c6ed4519dd238268f2d093ba6681742fda279cbbc281003b9653189488b0835410c681b9dd606fc3bea583d1e7db3636194de935ad4fb5a4edb93bc7f; FPLC=0cwaDGpn9gDBc5kgScVenLiwA4ke7utdzOwoyYXd01vs%2BTmgjutMCQsNbb4Op9PIx91duASeDnByT92SJCBf7O9%2BcIrWqPtwAdF%2BnTeb9U9Qwtfe%2Fc5qsS4YtdCK3Q%3D%3D; csrfToken=UXnAHlaM-oJpqmZgGifEUaKBQt2qDZdEs5VE; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; msToken={mstoken}; _ga_LWWPCY99PB=GS1.1.1742537780.39.1.1742538627.0.0.1606106523'
+ }
+
+ mstoken = 'mtzl_MJ-pnO3ChopXcF_2I5a6hgYgIxUr-anVWajHYB3eZzQad8E6JvthPC1TQ4h_T5hQC7_NEmlNpyPIRWuVFRu8vdCYCHGa3F6B8L-mx1vYz7p4fvdtiDACP5f8v__74P4-x1AfaZQhRE='
+ try:
+ #req_from的属性需要重新设置为:webapp_taxonomy_drawer_enter_feed
+ url = f'https://webcast.tiktok.com/webcast/feed/?aid=1988&app_language=zh-Hans&app_name=tiktok_web&browser_language=zh-CN&browser_name=Mozilla&browser_online=true&browser_platform=Win32&browser_version=5.0%20%28Windows%20NT%2010.0%3B%20Win64%3B%20x64%29%20AppleWebKit%2F537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome%2F129.0.0.0%20Safari%2F537.36&channel=tiktok_web&channel_id=1222001&cookie_enabled=true&data_collection_enabled=true&device_id=7480081766272042504&device_platform=web_pc&device_type=web_h265&focus_state=true&from_page=live&history_len=40&is_fullscreen=false&is_non_personalized=0&is_page_visible=true&os=windows&priority_region=&referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20®ion=PH&related_live_tag=chatting&req_from=pc_web_recommend_room&root_referer=https%3A%2F%2Fwww.tiktok.com%2F%40chuanyuwang20&screen_height=1080&screen_width=1920&tz_name=Asia%2FShanghai&user_is_login=true&webcast_language=zh-Hans&msToken={mstoken}&_signature=_02B4Z6wo000019C5TqAAAIDCn.1ptJ30HF.QuUoAAJP85b'
+ response = requests.get(url, headers=headers)
+ response.raise_for_status() # 如果请求失败,会抛出HTTPError异常
+ # 解析JSON响应
+ data = response.json()
+ return data
+
+ except requests.RequestException as e:
+ print(f"请求失败: {e}")
+ return None
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/新建 文本文档(5).txt b/src/assets/img/demos/2025-04/新建 文本文档(5).txt
new file mode 100644
index 0000000..6f5594b
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建 文本文档(5).txt
@@ -0,0 +1,37 @@
+cookies = {
+ "_ga": "GA1.1.448833779.1744041395",
+ "FPID": "FPID2.2.%2B6nT0lCYtTkI1gb5P7uZVN0Jbuib3rku57vhOq52%2BCg%3D.1744041395",
+ "FPAU": "1.2.263606944.1744041395",
+ "_fbp": "fb.1.1744041395282.1072138350",
+ "passport_csrf_token": "41d035222604a0bc54df10cae762032e",
+ "passport_csrf_token_default": "41d035222604a0bc54df10cae762032e",
+ "d_ticket": "57e29296947fabd2646e70bd62414a0bf5414",
+ "tt-target-idc": "useast5",
+ "multi_sids": "7490613412293608478%3A685fa78967fddde3ee38ac63c70ddb65",
+ "cmpl_token": "AgQQAPNSF-RO0rfK75Gtu10n_ZWY7pVVv6kMYNgQaw",
+ "passport_auth_status": "1e5d40345023da2bdbf69f84213ccae5%2C6c68eba7966e629abf50375bd4ebafb5",
+ "passport_auth_status_ss": "1e5d40345023da2bdbf69f84213ccae5%2C6c68eba7966e629abf50375bd4ebafb5",
+ "uid_tt": "9351fd551dbbd03e132339307600dbed6fa061a044fb9a374a44b1e8fe54978d",
+ "uid_tt_ss": "9351fd551dbbd03e132339307600dbed6fa061a044fb9a374a44b1e8fe54978d",
+ "sid_tt": "685fa78967fddde3ee38ac63c70ddb65",
+ "sessionid": "685fa78967fddde3ee38ac63c70ddb65",
+ "sessionid_ss": "685fa78967fddde3ee38ac63c70ddb65",
+ "store-idc": "useast5",
+ "tt-target-idc-sign": "dBNONAXsQJLsZ5zjxrtvUusbU0ZakoP9eQxw6at2yu3-LcIH-w1WAXjN6xClVStBbblFhbm8YgW924k12esL6ohjHRWO0TYX7TxPr5SNnN8GlbNIX-v8KSisYDYWEROcGsj5CfLLvcL_eI6mUb_0LzjHCV6CWTAjEfgRLVJN10EBzL351Ay1jOPz9NGgCE4RJ5vqQMdpXnOx_N3-YJffB6Lfog4sehtsfZKBR-CFhkOe7oItplb-wRbsqlWuS_GvYmr5VkA_G9AjvRo4ZmvwCKyvEmuvyhNpbxiINwFLvdNOVA-RdKqP3qZ8g21irg1bzNQTaryWkgnqcJpQ0FCR_rxANDXAzApWvG_fwT-Q86nSWvY-WjHkfIuW6CQ4OmKmjyT17qoJluiroyeF2WlIDefy2Rpl1q0OvbfiwUUAWaqG1mvZmACGKLFeGoRG4I6gvNWm2Uj0YBprjIhW73bS8ASLE2TgGSI0tJEurOiEy0arNB3GqZ0GtkHqXLs5nezy",
+ "sid_guard": "685fa78967fddde3ee38ac63c70ddb65%7C1744045410%7C15551995%7CSat%2C+04-Oct-2025+17%3A03%3A25+GMT",
+ "sid_ucp_v1": "1.0.0-KGYzNThmNWZjMWQ2NTE0MmQ3NDM3MDRkZjU0M2U0ODhjOTIwZjlkZTUKGgieiKas4qaA-mcQ4orQvwYYsws4AkDxB0gEEAQaB3VzZWFzdDUiIDY4NWZhNzg5NjdmZGRkZTNlZTM4YWM2M2M3MGRkYjY1",
+ "ssid_ucp_v1": "1.0.0-KGYzNThmNWZjMWQ2NTE0MmQ3NDM3MDRkZjU0M2U0ODhjOTIwZjlkZTUKGgieiKas4qaA-mcQ4orQvwYYsws4AkDxB0gEEAQaB3VzZWFzdDUiIDY4NWZhNzg5NjdmZGRkZTNlZTM4YWM2M2M3MGRkYjY1",
+ "_ttp": "2vXFsq88lQe9hoRox4re4hQUiaF.tt.1",
+ "_tt_enable_cookie": "1",
+ "cookie-consent": "{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}",
+ "_ga_LWWPCY99PB": "GS1.1.1744382521.14.1.1744383188.0.0.713318025",
+ "store-country-code": "-",
+ "tt_chain_token": "TTyemrk6OaFJkzbhsum8Ng==",
+ "odin_tt": "71d7dd8c46f11dc331798f16c62b61a5f366976c61301a8d6191f77f7684db5d",
+ "store-country-sign": "MEIEDD4xrmMdiuvzKMX63QQgNmIbNgvmyNawvaBWoGzeLdHpQ5K1XWem1UTjvtHi6RgEEKBsNnVSx8Fr5dDHbbnID1Q",
+ "ttwid": "1%7CteADi5iWWeHjMjjXdIcKOaO44CWbJyrZlT_qXW8P7wc%7C1744783750%7Cb720a8a21d1977e2fb0346e146f9f23cd843a208b949d261cc3b11bca7a6c923",
+ "ttcsid": "1744780465820.7.1744783756506",
+ "ttcsid_CQ6FR3RC77U6L0AM21H0": "1744780465816.7.1744783756712",
+ "_ga_GZB380RXJX": "GS1.1.1744780461.8.1.1744783757.0.0.862808384",
+ "msToken": "kVCZzBD8fatYZvWWVBc0IurHtDEkKN1VDZLzlCw3T9OoCOtB4UXrc2FlEmHurqB7Z9U6T1Fr3FNGiPfLa7ZEhaSKh1UfNb2WYgALAj12IC37K9XDjeTihkhajj5Zds5TOgZVD2bE_Q=="
+}
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/新建 文本文档(6).txt b/src/assets/img/demos/2025-04/新建 文本文档(6).txt
new file mode 100644
index 0000000..7ea9a6a
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建 文本文档(6).txt
@@ -0,0 +1,69 @@
+import requests
+import json
+
+
+headers = {
+ "accept": "application/json, text/plain, */*",
+ "accept-language": "zh-CN,zh;q=0.9",
+ "content-type": "application/json",
+ "faction-id": "101796",
+ "origin": "https://live-backstage.tiktok.com",
+ "priority": "u=1, i",
+ "referer": "https://live-backstage.tiktok.com/portal/overview",
+ "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+ "sec-ch-ua-mobile": "?0",
+ "sec-ch-ua-platform": "\"Windows\"",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-origin",
+ "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",
+ "x-appid": "1180",
+ "x-csrf-token": "undefined",
+ "x-language": "zh-Hans",
+ "x-secsdk-csrf-token": "000100000001602a09c8f27d59766da600ed4581dbfcd132a8ad83d9dfb962c105281907fdd61836b900e671e8b1"
+}
+cookies = {
+ "s_v_web_id": "verify_m9jk457u_g2ix18D3_FQs6_4drA_ARIa_8pD1lWTZ5w5m",
+ "passport_csrf_token": "c8aebf2f8ceebdaca2c57ad7dca1e457",
+ "passport_csrf_token_default": "c8aebf2f8ceebdaca2c57ad7dca1e457",
+ "d_ticket_backstage": "2eed4d4c4218d6915a94e7f88ab0fc0f39577",
+ "sid_guard_backstage": "5d84f7b5b559358b09b2f03419e44ba2%7C1744785297%7C5184000%7CSun%2C+15-Jun-2025+06%3A34%3A57+GMT",
+ "uid_tt_backstage": "b706adb5d29d98919d9b9664a6e92f2e510dddcc37037a3e18113871e4c65afc",
+ "uid_tt_ss_backstage": "b706adb5d29d98919d9b9664a6e92f2e510dddcc37037a3e18113871e4c65afc",
+ "sid_tt_backstage": "5d84f7b5b559358b09b2f03419e44ba2",
+ "sessionid_backstage": "5d84f7b5b559358b09b2f03419e44ba2",
+ "sessionid_ss_backstage": "5d84f7b5b559358b09b2f03419e44ba2",
+ "sid_ucp_v1_backstage": "1.0.0-KDlkMmMzMTU1MDQyMjc3M2E5MjkyY2IzZTIyOGZkYjRjZDJlZGYwYzQKGAiSiNaglIHTtmcQkZ_9vwYYwTU4AUDrBxADGgZtYWxpdmEiIDVkODRmN2I1YjU1OTM1OGIwOWIyZjAzNDE5ZTQ0YmEy",
+ "ssid_ucp_v1_backstage": "1.0.0-KDlkMmMzMTU1MDQyMjc3M2E5MjkyY2IzZTIyOGZkYjRjZDJlZGYwYzQKGAiSiNaglIHTtmcQkZ_9vwYYwTU4AUDrBxADGgZtYWxpdmEiIDVkODRmN2I1YjU1OTM1OGIwOWIyZjAzNDE5ZTQ0YmEy",
+ "passport_fe_beating_status": "true",
+ "ttwid": "1%7C39T4r2UkBIKG_yDnFjqKK3GFxbiMCug3kqA4nv4-6Yg%7C1744785304%7Ce7ee6df618270fbd792fcc29e64f97b4c1d3ced1ec7b3c089e7932501617344a",
+ "cookie-consent": "{%22optional%22:true%2C%22ga%22:true%2C%22af%22:true%2C%22fbp%22:true%2C%22lip%22:true%2C%22bing%22:true%2C%22ttads%22:true%2C%22reddit%22:true%2C%22hubspot%22:true%2C%22version%22:%22v10%22}",
+ "_ga": "GA1.1.1622289266.1744785315",
+ "_ga_GZB380RXJX": "GS1.1.1744785315.1.0.1744785315.0.0.732097508",
+ "FPID": "FPID2.2.oDKuXL54dW%2Fv9poeQYT1kCEan0UmKua2MQVYSWrmPGw%3D.1744785315",
+ "FPAU": "1.2.1250781143.1744785315",
+ "_fbp": "fb.1.1744785315470.1664569082",
+ "csrf_session_id": "8874de872b2755055a1c48760f97ec2e",
+ "FPLC": "VieBkCKKeBVdittab7ttelurJLQPH7yrHIftO45j4KyZInX6EBo0DPgK9oCo48Vu7ALnR1%2F3y%2F0VhZtdhCrm%2BU075%2FusfVm0bVVJr0xMlY2lyQ6wcHk3SiolDmgJOA%3D%3D",
+ "_ttp": "2vneYlgp0E1FwQahWAtTAU4AIe9.tt.1",
+ "_tt_enable_cookie": "1",
+ "ttcsid": "1744785326137.1.1744785326137",
+ "ttcsid_CQ6FR3RC77U6L0AM21H0": "1744785326136.1.1744785326395",
+ "msToken": "f7HP7Wx861sBasE-ZLJgb0l1SClkGgwfkxtEaVdUe0hkAS6lybZxca2eARcCVoRVZSEb6JSPE45yflVtedLrN_3bnmpvGZKiEaV5VDtQRwsbakPCP1KxYHNi7qYbPH5r5iMZjyfM"
+}
+url = "https://live-backstage.tiktok.com/creators/live/union_platform_api/agency/union_invite/batch_check_anchor/"
+params = {
+ "msToken": "f7HP7Wx861sBasE-ZLJgb0l1SClkGgwfkxtEaVdUe0hkAS6lybZxca2eARcCVoRVZSEb6JSPE45yflVtedLrN_3bnmpvGZKiEaV5VDtQRwsbakPCP1KxYHNi7qYbPH5r5iMZjyfM",
+ "X-Bogus": "DFSzswjLmh8SkMwBtgmB7UkX95u9",
+ "_signature": "_02B4Z6wo00001PmyP7wAAIDAzpb748qGCiz5sisAAFmZ84"
+}
+data = {
+ "DisplayIDList": [
+ "力量联盟"
+ ]
+}
+data = json.dumps(data, separators=(',', ':'))
+response = requests.post(url, headers=headers, cookies=cookies, params=params, data=data)
+
+print(response.text)
+print(response)
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/新建 文本文档.txt b/src/assets/img/demos/2025-04/新建 文本文档.txt
new file mode 100644
index 0000000..e91cf23
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建 文本文档.txt
@@ -0,0 +1,16 @@
+headers = {
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36',
+ 'Cookie': f'tt_chain_token=TxibwRSi3KKe1tf6pISVVQ==; passport_csrf_token=4e893d911568da55730040fc1878559c; passport_csrf_token_default=4e893d911568da55730040fc1878559c; _ga=GA1.1.1942425062.1741594510; FPID=FPID2.2.XItvG4EXgMzYHHXywTiqoJBFZRNVPtwkDonum5HhWgs%3D.1741594510; FPAU=1.2.565309640.1741594511; _fbp=fb.1.1741594510841.2080490210; tiktok_webapp_lang=zh-Hans; FPLC=unxTy%2BHNrlbV12WKer2Z4p%2BFMLTNffNmPfgFFyE1p9Yp%2F9UV00Mw%2Ft0yEjuVuELtDYxncw%2F6fTuwOoJBWhPgNaHGUHaO7SOvAgQWikUz0VM9W8idI3Y%2Fj2QbcvT7gQ%3D%3D; passport_auth_status=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; passport_auth_status_ss=98e26cf148d3b31544b1e2b3116ac83e%2C9faaf97cadfd79d24eeacb85863f3cbb; multi_sids=7480081853916922896%3A36084ce2b0f8b96b6bd6dea2b3b2c77a; cmpl_token=AgQQAPO7F-RO0rfweHcpop0p_a8Pj5Yav4owYNi60g; uid_tt=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; uid_tt_ss=487180040fe050b6c38b7a10df35bc74da00193f9ed8cefadd9276a17a05313f; sid_tt=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid=36084ce2b0f8b96b6bd6dea2b3b2c77a; sessionid_ss=36084ce2b0f8b96b6bd6dea2b3b2c77a; store-idc=alisg; store-country-code=FR; store-country-code-src=uid; tt-target-idc=alisg; tt-target-idc-sign=ErAK_1daK7gOjNVGp3XkXR9xzLSLfCco9CTBlhCR9C9zJPfvo6iX0NZw1W80EEuME3nR10Dm8UNo5LfL3hDFtLUKyWtW58OnsGXT-QauQpwM9_6kDO_IvlhTNZzyD5PSqXS2hlJ_3Tl8nji5rVw96JCPdSoOQjaXRT8ooCSMKK027uCwQ5-SJFZJgcgmWKLDIINnviE4cqehrzacIx02M13H_SSVNbX7-tJSCyJEqEuLOSYfOTFs_DZPX_P9gSWsjQcZBnyxFWPwdUzheKYa58EeikgtePwWYvP9H5M5kyYiBfxzekOlwy3zvuv2rEJXkaRPaPoXAzgz1bFjjacwGZKGocIBUH6DH58P6V0-IZcAZHkloyN8Q2igQCfry0uDeWPo8ds3HQnMf-xo5doOve-NBLl_jmVivEr1M9YRze-NuXdnuhImeOK3Az0evFhar6nUMBNKpQBIcSprpgHETZJ9Kyit9j8YvApFWq3fWeOLtMIkhIUXf1nEErH-cUNH; sid_guard=36084ce2b0f8b96b6bd6dea2b3b2c77a%7C1742471450%7C15551959%7CTue%2C+16-Sep-2025+11%3A50%3A09+GMT; sid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; ssid_ucp_v1=1.0.0-KDkzMmQzNjk2NWFhYjdjZjIxNGNjMDJhMWY3ODY0NjU2Yjg4Yjk0NGUKGgiQiMGMitql52cQmoLwvgYYsws4AUDrB0gEEAMaAm15IiAzNjA4NGNlMmIwZjhiOTZiNmJkNmRlYTJiM2IyYzc3YQ; tt_csrf_token=ZZvquAov-Asrhyv5oLnE4hVh26-TeCgL892E; ttwid=1%7Cchxl-ZAvAGfFU51SNT77wDZpLYJaLof20G7FKm8_DFo%7C1742472556%7Cacad91b38df171e37fa8b2032ee565f8f914e106077cd09bed5aef06edde7b56; store-country-sign=MEIEDOrgSZcKDYtd2mW_6gQgI6MIN_5J-Gh3ZUXIvVE5P87RnDlWDCqBb4cDzPmde5YEEM9aENKPObrvdh6fQ2M4v1w; csrf_session_id=6fae5912276f9c74c1655a3bdd905016; odin_tt=37ea501de00ce0d41f3d9a672f883e3995deae585ed2ced9a0333e872578d6c3142cc5b3030ad88f8594a07cc2a0987f85dd19ed9c9270ddf442b85d67b2c1d7259c98b829d7dfe4977ccc1e90652b9a; csrfToken=XkGOy09r-k51hDZ99RTHEnjAkxWtivpKt380; _ga_LWWPCY99PB=GS1.1.1742470182.37.1.1742472563.0.0.415184211; msToken={mstoken}',
+ "accept": "*/*",
+ "accept-language": "zh-CN,zh;q=0.9",
+ "origin": "https://www.tiktok.com",
+ "priority": "u=1, i",
+ "referer": "https://www.tiktok.com/",
+ "sec-ch-ua": "\"Google Chrome\";v=\"135\", \"Not-A.Brand\";v=\"8\", \"Chromium\";v=\"135\"",
+ "sec-ch-ua-mobile": "?0",
+ "sec-ch-ua-platform": "\"Windows\"",
+ "sec-fetch-dest": "empty",
+ "sec-fetch-mode": "cors",
+ "sec-fetch-site": "same-site",
+
+ }
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/新建文本文档.txt b/src/assets/img/demos/2025-04/新建文本文档.txt
new file mode 100644
index 0000000..f2b7886
--- /dev/null
+++ b/src/assets/img/demos/2025-04/新建文本文档.txt
@@ -0,0 +1,28 @@
+.center-line {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ // justify-content: center;
+ }
+
+ .center-justify {
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+ }
+
+ .center-align {
+ display: flex;
+ justify-content: space-between;
+
+ }
+
+ .center-flex {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+
+git branch --show-current
+git merge origin/master
\ No newline at end of file
diff --git a/src/assets/img/demos/2025-04/模拟登陆.py b/src/assets/img/demos/2025-04/模拟登陆.py
new file mode 100644
index 0000000..563dd30
--- /dev/null
+++ b/src/assets/img/demos/2025-04/模拟登陆.py
@@ -0,0 +1,70 @@
+import base64
+import time
+import requests
+from DrissionPage import ChromiumPage
+from DrissionPage import ChromiumOptions
+from PIL import Image, ImageDraw
+import random
+from DrissionPage.common import Actions
+
+
+class batch_check_anchor:
+
+ def __init__(self, username, password):
+ # 在初始化时进行一系列的自动化操作,登录->关闭窗口->点击邀约主播
+ start_time = time.time()
+ co = ChromiumOptions()
+ # 设置不加载图片、静音
+ co.mute(True)
+ co.headless(False)
+ co.auto_port(True)
+ self.page = ChromiumPage(co)
+ self.page.set.window.max()
+ # self.page.set.cookies.clear()
+ self.page.get('https://live-backstage.tiktok.com/portal/overview')
+
+
+ while True:
+ loginele = self.page.ele("@data-id=login")
+ if loginele:
+ #
+ # self.page.set.window.show()
+ # 点击登录按钮
+ self.page.ele("@data-id=login").click()
+ time.sleep(random.random())
+ # 输入账号
+ self.page.ele("@class=semi-input semi-input-default").input(username, clear=True)
+ time.sleep(random.random())
+ # 输入密码
+ self.page.ele("@class=semi-input semi-input-default semi-input-sibling-modebtn").input(password,
+ clear=True)
+ # 点击进行登录
+ time.sleep(random.random())
+ login = self.page.ele("@data-id=login-primary-button").click()
+
+ if loginele:
+ break
+
+ while True:
+ try:
+ loginele = self.page.ele("@data-id=login", timeout=1)
+ if not loginele:
+ print('后台登录成功')
+ # self.page.set.window.hide()
+ # self.page.set.timeouts(3)
+ cookies = self.page.cookies()
+ cookies_dict = {cookie['name']: cookie['value'] for cookie in cookies}
+ s_v_web_id = cookies_dict["s_v_web_id"]
+ sid_guard_backstage = cookies_dict["sid_guard_backstage"]
+ msToken = cookies_dict["msToken"]
+ print(s_v_web_id)
+ print(sid_guard_backstage)
+ print(msToken)
+ break
+ time.sleep(0.2)
+ except:
+ pass
+
+if __name__ == '__main__':
+ # b = batch_check_anchor("cyc_de@tiktok0.xyz","niu995228.")
+ b = batch_check_anchor("wmlcca@tiktok0.xyz","niu995228.")
diff --git a/src/assets/img/demos/2025-04/水费缴纳流程_公众号_20240604.doc b/src/assets/img/demos/2025-04/水费缴纳流程_公众号_20240604.doc
new file mode 100644
index 0000000..785088e
Binary files /dev/null and b/src/assets/img/demos/2025-04/水费缴纳流程_公众号_20240604.doc differ
diff --git a/src/assets/img/demos/2025-04/激活工具-win系统.zip b/src/assets/img/demos/2025-04/激活工具-win系统.zip
new file mode 100644
index 0000000..841e5bd
Binary files /dev/null and b/src/assets/img/demos/2025-04/激活工具-win系统.zip differ
diff --git a/src/assets/img/demos/2025-04/现有大区及国家.xlsx b/src/assets/img/demos/2025-04/现有大区及国家.xlsx
new file mode 100644
index 0000000..a1a4f3c
Binary files /dev/null and b/src/assets/img/demos/2025-04/现有大区及国家.xlsx differ
diff --git a/src/assets/img/demos/2025-04/画布.pdf b/src/assets/img/demos/2025-04/画布.pdf
new file mode 100644
index 0000000..31e6459
Binary files /dev/null and b/src/assets/img/demos/2025-04/画布.pdf differ
diff --git a/src/assets/img/demos/2025-04/管理系统.rar b/src/assets/img/demos/2025-04/管理系统.rar
new file mode 100644
index 0000000..11f3361
Binary files /dev/null and b/src/assets/img/demos/2025-04/管理系统.rar differ
diff --git a/src/assets/img/demos/2025-04/肖庄康孟村待缴费.xlsx b/src/assets/img/demos/2025-04/肖庄康孟村待缴费.xlsx
new file mode 100644
index 0000000..2ab15b9
Binary files /dev/null and b/src/assets/img/demos/2025-04/肖庄康孟村待缴费.xlsx differ
diff --git a/src/assets/img/demos/2025-04/账号.zip b/src/assets/img/demos/2025-04/账号.zip
new file mode 100644
index 0000000..dea7fd6
Binary files /dev/null and b/src/assets/img/demos/2025-04/账号.zip differ
diff --git a/src/assets/img/demos/2025-04/雨壮婚礼(1).docx b/src/assets/img/demos/2025-04/雨壮婚礼(1).docx
new file mode 100644
index 0000000..80cb16a
Binary files /dev/null and b/src/assets/img/demos/2025-04/雨壮婚礼(1).docx differ
diff --git a/src/assets/img/demos/2025-04/雨壮婚礼.docx b/src/assets/img/demos/2025-04/雨壮婚礼.docx
new file mode 100644
index 0000000..6b6bb1f
Binary files /dev/null and b/src/assets/img/demos/2025-04/雨壮婚礼.docx differ
diff --git a/src/assets/img/demos/home-1.jpg b/src/assets/img/demos/home-1.jpg
new file mode 100644
index 0000000..4da4689
Binary files /dev/null and b/src/assets/img/demos/home-1.jpg differ
diff --git a/src/assets/img/demos/home-2.jpg b/src/assets/img/demos/home-2.jpg
new file mode 100644
index 0000000..bcb8472
Binary files /dev/null and b/src/assets/img/demos/home-2.jpg differ
diff --git a/src/assets/img/demos/home-3.jpg b/src/assets/img/demos/home-3.jpg
new file mode 100644
index 0000000..3305c4c
Binary files /dev/null and b/src/assets/img/demos/home-3.jpg differ
diff --git a/src/assets/img/demos/home-4.jpg b/src/assets/img/demos/home-4.jpg
new file mode 100644
index 0000000..0d865a3
Binary files /dev/null and b/src/assets/img/demos/home-4.jpg differ
diff --git a/src/assets/img/demos/home-5.jpg b/src/assets/img/demos/home-5.jpg
new file mode 100644
index 0000000..667a2f7
Binary files /dev/null and b/src/assets/img/demos/home-5.jpg differ
diff --git a/src/assets/img/demos/home-6.jpg b/src/assets/img/demos/home-6.jpg
new file mode 100644
index 0000000..ee786f5
Binary files /dev/null and b/src/assets/img/demos/home-6.jpg differ
diff --git a/src/assets/img/demos/home-7.jpg b/src/assets/img/demos/home-7.jpg
new file mode 100644
index 0000000..342ffb9
Binary files /dev/null and b/src/assets/img/demos/home-7.jpg differ
diff --git a/src/assets/img/demos/home-8.jpg b/src/assets/img/demos/home-8.jpg
new file mode 100644
index 0000000..e4a0e06
Binary files /dev/null and b/src/assets/img/demos/home-8.jpg differ
diff --git a/src/assets/img/demos/home-9.jpg b/src/assets/img/demos/home-9.jpg
new file mode 100644
index 0000000..23ca201
Binary files /dev/null and b/src/assets/img/demos/home-9.jpg differ
diff --git a/src/assets/img/demos/home-coming.jpg b/src/assets/img/demos/home-coming.jpg
new file mode 100644
index 0000000..21da19c
Binary files /dev/null and b/src/assets/img/demos/home-coming.jpg differ
diff --git a/src/assets/img/demos/inner-pages/404.jpg b/src/assets/img/demos/inner-pages/404.jpg
new file mode 100644
index 0000000..2289010
Binary files /dev/null and b/src/assets/img/demos/inner-pages/404.jpg differ
diff --git a/src/assets/img/demos/inner-pages/about.jpg b/src/assets/img/demos/inner-pages/about.jpg
new file mode 100644
index 0000000..e6569da
Binary files /dev/null and b/src/assets/img/demos/inner-pages/about.jpg differ
diff --git a/src/assets/img/demos/inner-pages/awards.jpg b/src/assets/img/demos/inner-pages/awards.jpg
new file mode 100644
index 0000000..6d94776
Binary files /dev/null and b/src/assets/img/demos/inner-pages/awards.jpg differ
diff --git a/src/assets/img/demos/inner-pages/blog-details.jpg b/src/assets/img/demos/inner-pages/blog-details.jpg
new file mode 100644
index 0000000..6640018
Binary files /dev/null and b/src/assets/img/demos/inner-pages/blog-details.jpg differ
diff --git a/src/assets/img/demos/inner-pages/blog.jpg b/src/assets/img/demos/inner-pages/blog.jpg
new file mode 100644
index 0000000..acc9e07
Binary files /dev/null and b/src/assets/img/demos/inner-pages/blog.jpg differ
diff --git a/src/assets/img/demos/inner-pages/coming-soon.jpg b/src/assets/img/demos/inner-pages/coming-soon.jpg
new file mode 100644
index 0000000..00b9a0e
Binary files /dev/null and b/src/assets/img/demos/inner-pages/coming-soon.jpg differ
diff --git a/src/assets/img/demos/inner-pages/contact.jpg b/src/assets/img/demos/inner-pages/contact.jpg
new file mode 100644
index 0000000..bef233b
Binary files /dev/null and b/src/assets/img/demos/inner-pages/contact.jpg differ
diff --git a/src/assets/img/demos/inner-pages/portfolio-details.jpg b/src/assets/img/demos/inner-pages/portfolio-details.jpg
new file mode 100644
index 0000000..79cbc34
Binary files /dev/null and b/src/assets/img/demos/inner-pages/portfolio-details.jpg differ
diff --git a/src/assets/img/demos/inner-pages/portfolio.jpg b/src/assets/img/demos/inner-pages/portfolio.jpg
new file mode 100644
index 0000000..72d89a9
Binary files /dev/null and b/src/assets/img/demos/inner-pages/portfolio.jpg differ
diff --git a/src/assets/img/demos/inner-pages/service-details.jpg b/src/assets/img/demos/inner-pages/service-details.jpg
new file mode 100644
index 0000000..52841ae
Binary files /dev/null and b/src/assets/img/demos/inner-pages/service-details.jpg differ
diff --git a/src/assets/img/demos/inner-pages/service.jpg b/src/assets/img/demos/inner-pages/service.jpg
new file mode 100644
index 0000000..41a9771
Binary files /dev/null and b/src/assets/img/demos/inner-pages/service.jpg differ
diff --git a/src/assets/img/demos/intro-offer-25.jpg b/src/assets/img/demos/intro-offer-25.jpg
new file mode 100644
index 0000000..36d3073
Binary files /dev/null and b/src/assets/img/demos/intro-offer-25.jpg differ
diff --git a/src/assets/img/demos/laptop.png b/src/assets/img/demos/laptop.png
new file mode 100644
index 0000000..aa0bc5e
Binary files /dev/null and b/src/assets/img/demos/laptop.png differ
diff --git a/src/assets/img/demos/multiscroll.jpg b/src/assets/img/demos/multiscroll.jpg
new file mode 100644
index 0000000..6dd903b
Binary files /dev/null and b/src/assets/img/demos/multiscroll.jpg differ
diff --git a/src/assets/img/demos/phone.png b/src/assets/img/demos/phone.png
new file mode 100644
index 0000000..88c1b6f
Binary files /dev/null and b/src/assets/img/demos/phone.png differ
diff --git a/src/assets/img/demos/preview.jpg b/src/assets/img/demos/preview.jpg
new file mode 100644
index 0000000..e6fdd3e
Binary files /dev/null and b/src/assets/img/demos/preview.jpg differ
diff --git a/src/assets/img/demos/sass.svg b/src/assets/img/demos/sass.svg
new file mode 100644
index 0000000..f9c719a
--- /dev/null
+++ b/src/assets/img/demos/sass.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/img/demos/tablet.png b/src/assets/img/demos/tablet.png
new file mode 100644
index 0000000..3096830
Binary files /dev/null and b/src/assets/img/demos/tablet.png differ
diff --git a/src/assets/img/demos/vue.svg b/src/assets/img/demos/vue.svg
new file mode 100644
index 0000000..b3bdabe
--- /dev/null
+++ b/src/assets/img/demos/vue.svg
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/img/demos/vuetify.svg b/src/assets/img/demos/vuetify.svg
new file mode 100644
index 0000000..05a4429
--- /dev/null
+++ b/src/assets/img/demos/vuetify.svg
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/assets/img/favicon.ico b/src/assets/img/favicon.ico
new file mode 100644
index 0000000..f1cf6a4
Binary files /dev/null and b/src/assets/img/favicon.ico differ
diff --git a/src/assets/img/logo/bgDescription.png b/src/assets/img/logo/bgDescription.png
new file mode 100644
index 0000000..51066d5
Binary files /dev/null and b/src/assets/img/logo/bgDescription.png differ
diff --git a/src/assets/img/logo/logo-circle-color-black.png b/src/assets/img/logo/logo-circle-color-black.png
new file mode 100644
index 0000000..a9faf51
Binary files /dev/null and b/src/assets/img/logo/logo-circle-color-black.png differ
diff --git a/src/assets/img/logo/logo-circle-white.png b/src/assets/img/logo/logo-circle-white.png
new file mode 100644
index 0000000..5f72e2b
Binary files /dev/null and b/src/assets/img/logo/logo-circle-white.png differ
diff --git a/src/assets/img/logo/logo-circle-white1.png b/src/assets/img/logo/logo-circle-white1.png
new file mode 100644
index 0000000..e7595cb
Binary files /dev/null and b/src/assets/img/logo/logo-circle-white1.png differ
diff --git a/src/assets/img/logo/logo-circle.png b/src/assets/img/logo/logo-circle.png
new file mode 100644
index 0000000..1669ac7
Binary files /dev/null and b/src/assets/img/logo/logo-circle.png differ
diff --git a/src/assets/img/logo/logo-circle1.png b/src/assets/img/logo/logo-circle1.png
new file mode 100644
index 0000000..688c5ab
Binary files /dev/null and b/src/assets/img/logo/logo-circle1.png differ
diff --git a/src/assets/img/logo/portfolio-2.png b/src/assets/img/logo/portfolio-2.png
new file mode 100644
index 0000000..42a5dd7
Binary files /dev/null and b/src/assets/img/logo/portfolio-2.png differ
diff --git a/src/assets/img/logo/portfolio-black.png b/src/assets/img/logo/portfolio-black.png
new file mode 100644
index 0000000..5c8f0b5
Binary files /dev/null and b/src/assets/img/logo/portfolio-black.png differ
diff --git a/src/assets/img/logo/portfolio.png b/src/assets/img/logo/portfolio.png
new file mode 100644
index 0000000..1f701b1
Binary files /dev/null and b/src/assets/img/logo/portfolio.png differ
diff --git a/src/assets/img/logo/portfolio1.png b/src/assets/img/logo/portfolio1.png
new file mode 100644
index 0000000..c183678
Binary files /dev/null and b/src/assets/img/logo/portfolio1.png differ
diff --git a/src/assets/img/logo/portfolio11.png b/src/assets/img/logo/portfolio11.png
new file mode 100644
index 0000000..eafd6cd
Binary files /dev/null and b/src/assets/img/logo/portfolio11.png differ
diff --git a/src/assets/img/logo/rainfo-circle-color.png b/src/assets/img/logo/rainfo-circle-color.png
new file mode 100644
index 0000000..c6e5380
Binary files /dev/null and b/src/assets/img/logo/rainfo-circle-color.png differ
diff --git a/src/assets/img/logo/rainfo-white.png b/src/assets/img/logo/rainfo-white.png
new file mode 100644
index 0000000..1f701b1
Binary files /dev/null and b/src/assets/img/logo/rainfo-white.png differ
diff --git a/src/assets/img/logo/rainfo-white1.png b/src/assets/img/logo/rainfo-white1.png
new file mode 100644
index 0000000..75ef2c9
Binary files /dev/null and b/src/assets/img/logo/rainfo-white1.png differ
diff --git a/src/assets/img/logo/rainfo-white11.png b/src/assets/img/logo/rainfo-white11.png
new file mode 100644
index 0000000..eafd6cd
Binary files /dev/null and b/src/assets/img/logo/rainfo-white11.png differ
diff --git a/src/assets/img/news/md-img-1.jpg b/src/assets/img/news/md-img-1.jpg
new file mode 100644
index 0000000..48fcfba
Binary files /dev/null and b/src/assets/img/news/md-img-1.jpg differ
diff --git a/src/assets/img/news/md-img-2.jpg b/src/assets/img/news/md-img-2.jpg
new file mode 100644
index 0000000..48fcfba
Binary files /dev/null and b/src/assets/img/news/md-img-2.jpg differ
diff --git a/src/assets/img/news/news-1.jpg b/src/assets/img/news/news-1.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/news/news-1.jpg differ
diff --git a/src/assets/img/news/news-2.jpg b/src/assets/img/news/news-2.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/news/news-2.jpg differ
diff --git a/src/assets/img/news/news-3.jpg b/src/assets/img/news/news-3.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/news/news-3.jpg differ
diff --git a/src/assets/img/news/news-4.jpg b/src/assets/img/news/news-4.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/news/news-4.jpg differ
diff --git a/src/assets/img/portfolio/about-image.jpg b/src/assets/img/portfolio/about-image.jpg
new file mode 100644
index 0000000..96f2e20
Binary files /dev/null and b/src/assets/img/portfolio/about-image.jpg differ
diff --git a/src/assets/img/portfolio/home.jpg b/src/assets/img/portfolio/home.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/portfolio/home.jpg differ
diff --git a/src/assets/img/portfolio/my-skill.jpg b/src/assets/img/portfolio/my-skill.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/portfolio/my-skill.jpg differ
diff --git a/src/assets/img/portfolio/news-1.jpg b/src/assets/img/portfolio/news-1.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/portfolio/news-1.jpg differ
diff --git a/src/assets/img/portfolio/our-story.jpg b/src/assets/img/portfolio/our-story.jpg
new file mode 100644
index 0000000..9c4d40f
Binary files /dev/null and b/src/assets/img/portfolio/our-story.jpg differ
diff --git a/src/assets/img/portfolio/our-story1.jpg b/src/assets/img/portfolio/our-story1.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/portfolio/our-story1.jpg differ
diff --git a/src/assets/img/portfolio/portfolio-single-1.jpg b/src/assets/img/portfolio/portfolio-single-1.jpg
new file mode 100644
index 0000000..aa472d1
Binary files /dev/null and b/src/assets/img/portfolio/portfolio-single-1.jpg differ
diff --git a/src/assets/img/portfolio/portfolio-single-2.jpg b/src/assets/img/portfolio/portfolio-single-2.jpg
new file mode 100644
index 0000000..dd12cdc
Binary files /dev/null and b/src/assets/img/portfolio/portfolio-single-2.jpg differ
diff --git a/src/assets/img/portfolio/portfolio-single-3.jpg b/src/assets/img/portfolio/portfolio-single-3.jpg
new file mode 100644
index 0000000..87a7cdf
Binary files /dev/null and b/src/assets/img/portfolio/portfolio-single-3.jpg differ
diff --git a/src/assets/img/portfolio/services-1.jpg b/src/assets/img/portfolio/services-1.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/portfolio/services-1.jpg differ
diff --git a/src/assets/img/portfolio/services-2.jpg b/src/assets/img/portfolio/services-2.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/portfolio/services-2.jpg differ
diff --git a/src/assets/img/project/colorful/work-1.jpg b/src/assets/img/project/colorful/work-1.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-1.jpg differ
diff --git a/src/assets/img/project/colorful/work-2.jpg b/src/assets/img/project/colorful/work-2.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-2.jpg differ
diff --git a/src/assets/img/project/colorful/work-3.jpg b/src/assets/img/project/colorful/work-3.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-3.jpg differ
diff --git a/src/assets/img/project/colorful/work-4.jpg b/src/assets/img/project/colorful/work-4.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-4.jpg differ
diff --git a/src/assets/img/project/colorful/work-5.jpg b/src/assets/img/project/colorful/work-5.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-5.jpg differ
diff --git a/src/assets/img/project/colorful/work-6.jpg b/src/assets/img/project/colorful/work-6.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-6.jpg differ
diff --git a/src/assets/img/project/colorful/work-7.jpg b/src/assets/img/project/colorful/work-7.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-7.jpg differ
diff --git a/src/assets/img/project/colorful/work-8.jpg b/src/assets/img/project/colorful/work-8.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-8.jpg differ
diff --git a/src/assets/img/project/colorful/work-9.jpg b/src/assets/img/project/colorful/work-9.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/colorful/work-9.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-1.jpg b/src/assets/img/project/port-4/portfolio-1.jpg
new file mode 100644
index 0000000..d1a0485
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-1.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-10.jpg b/src/assets/img/project/port-4/portfolio-10.jpg
new file mode 100644
index 0000000..d1a0485
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-10.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-11.jpg b/src/assets/img/project/port-4/portfolio-11.jpg
new file mode 100644
index 0000000..716c697
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-11.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-12.jpg b/src/assets/img/project/port-4/portfolio-12.jpg
new file mode 100644
index 0000000..c7996e3
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-12.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-13.jpg b/src/assets/img/project/port-4/portfolio-13.jpg
new file mode 100644
index 0000000..4ebb1cc
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-13.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-14.jpg b/src/assets/img/project/port-4/portfolio-14.jpg
new file mode 100644
index 0000000..716c697
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-14.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-14.png b/src/assets/img/project/port-4/portfolio-14.png
new file mode 100644
index 0000000..716c697
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-14.png differ
diff --git a/src/assets/img/project/port-4/portfolio-15.jpg b/src/assets/img/project/port-4/portfolio-15.jpg
new file mode 100644
index 0000000..d1a0485
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-15.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-15.png b/src/assets/img/project/port-4/portfolio-15.png
new file mode 100644
index 0000000..d1a0485
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-15.png differ
diff --git a/src/assets/img/project/port-4/portfolio-16.jpg b/src/assets/img/project/port-4/portfolio-16.jpg
new file mode 100644
index 0000000..d1a0485
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-16.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-2.jpg b/src/assets/img/project/port-4/portfolio-2.jpg
new file mode 100644
index 0000000..f25f07e
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-2.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-3.jpg b/src/assets/img/project/port-4/portfolio-3.jpg
new file mode 100644
index 0000000..0e8d37f
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-3.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-4.jpg b/src/assets/img/project/port-4/portfolio-4.jpg
new file mode 100644
index 0000000..716c697
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-4.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-5.jpg b/src/assets/img/project/port-4/portfolio-5.jpg
new file mode 100644
index 0000000..f25f07e
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-5.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-6.jpg b/src/assets/img/project/port-4/portfolio-6.jpg
new file mode 100644
index 0000000..d1a0485
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-6.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-7.jpg b/src/assets/img/project/port-4/portfolio-7.jpg
new file mode 100644
index 0000000..d1a0485
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-7.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-8.jpg b/src/assets/img/project/port-4/portfolio-8.jpg
new file mode 100644
index 0000000..f25f07e
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-8.jpg differ
diff --git a/src/assets/img/project/port-4/portfolio-9.jpg b/src/assets/img/project/port-4/portfolio-9.jpg
new file mode 100644
index 0000000..0e8d37f
Binary files /dev/null and b/src/assets/img/project/port-4/portfolio-9.jpg differ
diff --git a/src/assets/img/project/portfolio-3/protfolio-1.jpg b/src/assets/img/project/portfolio-3/protfolio-1.jpg
new file mode 100644
index 0000000..661afa2
Binary files /dev/null and b/src/assets/img/project/portfolio-3/protfolio-1.jpg differ
diff --git a/src/assets/img/project/portfolio-3/protfolio-2.jpg b/src/assets/img/project/portfolio-3/protfolio-2.jpg
new file mode 100644
index 0000000..661afa2
Binary files /dev/null and b/src/assets/img/project/portfolio-3/protfolio-2.jpg differ
diff --git a/src/assets/img/project/portfolio-3/protfolio-3.jpg b/src/assets/img/project/portfolio-3/protfolio-3.jpg
new file mode 100644
index 0000000..661afa2
Binary files /dev/null and b/src/assets/img/project/portfolio-3/protfolio-3.jpg differ
diff --git a/src/assets/img/project/portfolio-3/protfolio-4.jpg b/src/assets/img/project/portfolio-3/protfolio-4.jpg
new file mode 100644
index 0000000..661afa2
Binary files /dev/null and b/src/assets/img/project/portfolio-3/protfolio-4.jpg differ
diff --git a/src/assets/img/project/portfolio-3/protfolio-5.jpg b/src/assets/img/project/portfolio-3/protfolio-5.jpg
new file mode 100644
index 0000000..661afa2
Binary files /dev/null and b/src/assets/img/project/portfolio-3/protfolio-5.jpg differ
diff --git a/src/assets/img/project/portfolio-3/protfolio-6.jpg b/src/assets/img/project/portfolio-3/protfolio-6.jpg
new file mode 100644
index 0000000..661afa2
Binary files /dev/null and b/src/assets/img/project/portfolio-3/protfolio-6.jpg differ
diff --git a/src/assets/img/project/work-1.jpg b/src/assets/img/project/work-1.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/work-1.jpg differ
diff --git a/src/assets/img/project/work-2.jpg b/src/assets/img/project/work-2.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/work-2.jpg differ
diff --git a/src/assets/img/project/work-3.jpg b/src/assets/img/project/work-3.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/work-3.jpg differ
diff --git a/src/assets/img/project/work-4.jpg b/src/assets/img/project/work-4.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/work-4.jpg differ
diff --git a/src/assets/img/project/work-5.jpg b/src/assets/img/project/work-5.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/work-5.jpg differ
diff --git a/src/assets/img/project/work-6.jpg b/src/assets/img/project/work-6.jpg
new file mode 100644
index 0000000..812aded
Binary files /dev/null and b/src/assets/img/project/work-6.jpg differ
diff --git a/src/assets/img/service/services-1.png b/src/assets/img/service/services-1.png
new file mode 100644
index 0000000..738d227
Binary files /dev/null and b/src/assets/img/service/services-1.png differ
diff --git a/src/assets/img/service/services-11.jpg b/src/assets/img/service/services-11.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/service/services-11.jpg differ
diff --git a/src/assets/img/service/services-2.png b/src/assets/img/service/services-2.png
new file mode 100644
index 0000000..823a7c6
Binary files /dev/null and b/src/assets/img/service/services-2.png differ
diff --git a/src/assets/img/service/services-22.jpg b/src/assets/img/service/services-22.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/service/services-22.jpg differ
diff --git a/src/assets/img/service/services-3.jpg b/src/assets/img/service/services-3.jpg
new file mode 100644
index 0000000..bad7b35
Binary files /dev/null and b/src/assets/img/service/services-3.jpg differ
diff --git a/src/assets/img/service/services-33.jpg b/src/assets/img/service/services-33.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/service/services-33.jpg differ
diff --git a/src/assets/img/service/services-4.jpg b/src/assets/img/service/services-4.jpg
new file mode 100644
index 0000000..d7f163e
Binary files /dev/null and b/src/assets/img/service/services-4.jpg differ
diff --git a/src/assets/img/service/services-44.jpg b/src/assets/img/service/services-44.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/service/services-44.jpg differ
diff --git a/src/assets/img/slider-6/slider-1.jpg b/src/assets/img/slider-6/slider-1.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/slider-6/slider-1.jpg differ
diff --git a/src/assets/img/slider-6/slider-2.jpg b/src/assets/img/slider-6/slider-2.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/slider-6/slider-2.jpg differ
diff --git a/src/assets/img/slider-6/slider-3.jpg b/src/assets/img/slider-6/slider-3.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/slider-6/slider-3.jpg differ
diff --git a/src/assets/img/slider-6/slider-4.jpg b/src/assets/img/slider-6/slider-4.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/slider-6/slider-4.jpg differ
diff --git a/src/assets/img/slider-6/slider-5.jpg b/src/assets/img/slider-6/slider-5.jpg
new file mode 100644
index 0000000..14b8cd6
Binary files /dev/null and b/src/assets/img/slider-6/slider-5.jpg differ
diff --git a/src/assets/img/slider/slider-1.jpg b/src/assets/img/slider/slider-1.jpg
new file mode 100644
index 0000000..8b3cce4
Binary files /dev/null and b/src/assets/img/slider/slider-1.jpg differ
diff --git a/src/assets/img/slider/slider-1.png b/src/assets/img/slider/slider-1.png
new file mode 100644
index 0000000..07b654e
Binary files /dev/null and b/src/assets/img/slider/slider-1.png differ
diff --git a/src/assets/img/slider/slider-11.jpg b/src/assets/img/slider/slider-11.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/slider/slider-11.jpg differ
diff --git a/src/assets/img/slider/slider-111.jpg b/src/assets/img/slider/slider-111.jpg
new file mode 100644
index 0000000..1b8dc96
Binary files /dev/null and b/src/assets/img/slider/slider-111.jpg differ
diff --git a/src/assets/img/slider/slider-2.jpg b/src/assets/img/slider/slider-2.jpg
new file mode 100644
index 0000000..6887027
Binary files /dev/null and b/src/assets/img/slider/slider-2.jpg differ
diff --git a/src/assets/img/slider/slider-22.jpg b/src/assets/img/slider/slider-22.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/slider/slider-22.jpg differ
diff --git a/src/assets/img/slider/slider-3.jpg b/src/assets/img/slider/slider-3.jpg
new file mode 100644
index 0000000..2b38027
Binary files /dev/null and b/src/assets/img/slider/slider-3.jpg differ
diff --git a/src/assets/img/slider/slider-33.jpg b/src/assets/img/slider/slider-33.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/slider/slider-33.jpg differ
diff --git a/src/assets/img/slider/slider-4.jpg b/src/assets/img/slider/slider-4.jpg
new file mode 100644
index 0000000..d682fe9
Binary files /dev/null and b/src/assets/img/slider/slider-4.jpg differ
diff --git a/src/assets/img/slider/slider-44.jpg b/src/assets/img/slider/slider-44.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/slider/slider-44.jpg differ
diff --git a/src/assets/img/slider/slider-5.jpg b/src/assets/img/slider/slider-5.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/slider/slider-5.jpg differ
diff --git a/src/assets/img/slider/slider-6.jpg b/src/assets/img/slider/slider-6.jpg
new file mode 100644
index 0000000..8c0a31d
Binary files /dev/null and b/src/assets/img/slider/slider-6.jpg differ
diff --git a/src/assets/scss/default/_animations.scss b/src/assets/scss/default/_animations.scss
new file mode 100644
index 0000000..8a659bc
--- /dev/null
+++ b/src/assets/scss/default/_animations.scss
@@ -0,0 +1,2 @@
+
+// Animation Css
\ No newline at end of file
diff --git a/src/assets/scss/default/_base.scss b/src/assets/scss/default/_base.scss
new file mode 100644
index 0000000..2c43435
--- /dev/null
+++ b/src/assets/scss/default/_base.scss
@@ -0,0 +1,200 @@
+.v-application,
+body {
+ font-family: $body-font;
+ color: $body-color;
+ font-weight: 400;
+
+ p {
+ color: $body-color;
+ font-size: 18px;
+ line-height: 30px;
+
+ &.large {
+ font-size: 24px;
+ color: #c6c9d8;
+ }
+ }
+
+ ul,
+ ol {
+ padding: 0;
+ }
+
+ a {
+ text-decoration: none;
+ color: #222;
+
+ &:hover {
+ text-decoration: none;
+ }
+ }
+
+ .w-100 {
+ width: 100% !important;
+ }
+
+ img {
+ max-width: 100%;
+ }
+
+ .thumbnail img {
+ display: block;
+ }
+
+ .cool-lightbox__inner {
+ padding-bottom: 60px !important;
+ }
+
+
+}
+
+.v-toolbar.v-toolbar--absolute {
+ z-index: 99;
+}
+
+.v-navigation-drawer--absolute {
+ z-index: 999;
+}
+
+.image {
+ cursor: pointer;
+}
+
+@media only screen and (max-width: 575px) {
+ .container {
+ width: 450px;
+ }
+}
+
+@media only screen and (max-width: 479px) {
+ .container {
+ width: 320px;
+ }
+}
+
+@media (min-width: 576px) {
+ .container {
+ max-width: 540px;
+ }
+}
+
+@media (min-width: 768px) {
+ .container {
+ max-width: 720px;
+ }
+}
+
+@media (min-width: 992px) {
+ .container {
+ max-width: 960px;
+ }
+}
+
+@media (min-width: 1200px) {
+ .container {
+ max-width: 1260px;
+ }
+}
+
+.col-xl,
+.col-xl-auto,
+.col-xl-12,
+.col-xl-11,
+.col-xl-10,
+.col-xl-9,
+.col-xl-8,
+.col-xl-7,
+.col-xl-6,
+.col-xl-5,
+.col-xl-4,
+.col-xl-3,
+.col-xl-2,
+.col-xl-1,
+.col-lg,
+.col-lg-auto,
+.col-lg-12,
+.col-lg-11,
+.col-lg-10,
+.col-lg-9,
+.col-lg-8,
+.col-lg-7,
+.col-lg-6,
+.col-lg-5,
+.col-lg-4,
+.col-lg-3,
+.col-lg-2,
+.col-lg-1,
+.col-md,
+.col-md-auto,
+.col-md-12,
+.col-md-11,
+.col-md-10,
+.col-md-9,
+.col-md-8,
+.col-md-7,
+.col-md-6,
+.col-md-5,
+.col-md-4,
+.col-md-3,
+.col-md-2,
+.col-md-1,
+.col-sm,
+.col-sm-auto,
+.col-sm-12,
+.col-sm-11,
+.col-sm-10,
+.col-sm-9,
+.col-sm-8,
+.col-sm-7,
+.col-sm-6,
+.col-sm-5,
+.col-sm-4,
+.col-sm-3,
+.col-sm-2,
+.col-sm-1,
+.col,
+.col-auto,
+.col-12,
+.col-11,
+.col-10,
+.col-9,
+.col-8,
+.col-7,
+.col-6,
+.col-5,
+.col-4,
+.col-3,
+.col-2,
+.col-1 {
+ padding: 0 15px;
+ position: relative;
+}
+
+.container--fluid {
+ max-width: 100%;
+}
+
+.container {
+ width: 100%;
+ padding: 0 15px;
+ margin-right: auto;
+ margin-left: auto;
+}
+
+.row {
+ margin-top: 0;
+ margin-bottom: 0;
+ margin-right: -15px;
+ margin-left: -15px;
+}
+
+.v-window-x-reverse-transition-enter-active,
+.v-window-x-reverse-transition-leave-active,
+.v-window-x-transition-enter-active,
+.v-window-x-transition-leave-active,
+.v-window-y-reverse-transition-enter-active,
+.v-window-y-reverse-transition-leave-active,
+.v-window-y-transition-enter-active,
+.v-window-y-transition-leave-active {
+ transition: .5s cubic-bezier(.25, .8, .5, 1);
+}
\ No newline at end of file
diff --git a/src/assets/scss/default/_mixins.scss b/src/assets/scss/default/_mixins.scss
new file mode 100644
index 0000000..a943312
--- /dev/null
+++ b/src/assets/scss/default/_mixins.scss
@@ -0,0 +1,95 @@
+@mixin clearfix() {
+ &::after {
+ content: "";
+ clear: both;
+ display: table;
+ }
+}
+
+@mixin config-bg-colors($prefix, $bg_color...) {
+ @each $i in $bg_color {
+ .#{$prefix}#{nth($i, 1)} {
+ background: nth($i, 2);
+ }
+ }
+}
+
+// Gradient color
+@mixin gradient-color($value, $deg) {
+ @if $value==a {
+ background:-webkit-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:-moz-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:-ms-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:-o-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:linear-gradient( $deg#{deg}, #f71595 0%, #ed560e 62%, #ff9600 100%);
+ -webkit-background-clip: text;
+ -moz-background-clip: text;
+ -ms-background-clip: text;
+ -o-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ -moz-text-fill-color: transparent;
+ -ms-text-fill-color: transparent;
+ -o-text-fill-color: transparent;
+ text-fill-color: transparent;
+ }
+ @else if $value==b {
+ background:-webkit-linear-gradient( $deg#{deg}, rgb(251, 110, 57) 12%, rgb(252, 85, 93) 50%, rgb(253, 59, 128) 91%);
+ background:-moz-linear-gradient( $deg#{deg}, rgb(251, 110, 57) 12%, rgb(252, 85, 93) 50%, rgb(253, 59, 128) 91%);
+ background:-ms-linear-gradient( $deg#{deg}, rgb(251, 110, 57) 12%, rgb(252, 85, 93) 50%, rgb(253, 59, 128) 91%);
+ background:-o-linear-gradient( $deg#{deg}, rgb(251, 110, 57) 12%, rgb(252, 85, 93) 50%, rgb(253, 59, 128) 91%);
+ background:linear-gradient( $deg#{deg}, rgb(251, 110, 57) 12%, rgb(252, 85, 93) 50%, rgb(253, 59, 128) 91%);
+ -webkit-background-clip: text;
+ -moz-background-clip: text;
+ -ms-background-clip: text;
+ -o-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ -moz-text-fill-color: transparent;
+ -ms-text-fill-color: transparent;
+ -o-text-fill-color: transparent;
+ text-fill-color: transparent;
+ }
+ @else if $value==c {
+ background:-webkit-linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:-moz-linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:-ms-linear-gradient($deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:-o-linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ -webkit-background-clip: text;
+ -moz-background-clip: text;
+ -ms-background-clip: text;
+ -o-background-clip: text;
+ background-clip: text;
+ -webkit-text-fill-color: transparent;
+ -moz-text-fill-color: transparent;
+ -ms-text-fill-color: transparent;
+ -o-text-fill-color: transparent;
+ text-fill-color: transparent;
+ }
+}
+
+// Gradient Background
+@mixin gradient-bg($value, $deg) {
+ @if $value==a {
+ background:-webkit-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:-moz-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:-ms-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:-o-linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ background:linear-gradient( $deg#{deg}, #fe0190 0%, #ed560e 62%, #ff9600 100%);
+ }
+ @else if $value==b {
+ background:-webkit-linear-gradient( $deg#{deg}, rgba(223, 32, 32, 1) 0%, rgba(0, 0, 0, 0.6) 36%, rgba(0, 0, 0, 0.3) 100%);
+ background:-moz-linear-gradient( $deg#{deg}, rgba(223, 32, 32, 1) 0%, rgba(0, 0, 0, 0.6) 36%, rgba(0, 0, 0, 0.3) 100%);
+ background:-ms-linear-gradient( $deg#{deg}, rgba(223, 32, 32, 1) 0%, rgba(0, 0, 0, 0.6) 36%, rgba(0, 0, 0, 0.3) 100%);
+ background:-o-linear-gradient( $deg#{deg}, rgba(223, 32, 32, 1) 0%, rgba(0, 0, 0, 0.6) 36%, rgba(0, 0, 0, 0.3) 100%);
+ background:linear-gradient( $deg#{deg}, rgba(223, 32, 32, 1) 0%, rgba(0, 0, 0, 0.6) 36%, rgba(0, 0, 0, 0.3) 100%);
+ }
+ @else if $value==c {
+ background:-webkit-linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:-moz-linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:-ms-linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:-o-linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ background:linear-gradient( $deg#{deg}, rgb(40, 172, 225) 12%, rgb(81, 204, 231) 50%, rgb(122, 235, 236) 91%);
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/default/_preloader.scss b/src/assets/scss/default/_preloader.scss
new file mode 100644
index 0000000..2b6dca5
--- /dev/null
+++ b/src/assets/scss/default/_preloader.scss
@@ -0,0 +1,144 @@
+#rn-preloader-wrap {
+ position: fixed;
+ left: 0;
+ top: 0;
+ height: 100vh;
+ width: 100%;
+ z-index: 99999;
+ display: flex;
+ -webkit-transition: all 0.5s ease 0s;
+ -o-transition: all 0.5s ease 0s;
+ transition: all 0.5s ease 0s;
+}
+
+#rn-preloader-wrap:before,
+#rn-preloader-wrap:after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 50%;
+ height: 100%;
+ z-index: -1;
+ background-color: #000000;
+ -webkit-transition: all 0.5s ease 0s;
+ -o-transition: all 0.5s ease 0s;
+ transition: all 0.5s ease 0s;
+}
+
+#rn-preloader-wrap:after {
+ left: auto;
+ right: 0;
+}
+
+.rn-preloaded:before,
+.rn-preloaded:after {
+ -webkit-animation: rnPreloaderShatter 300ms ease-in-out 500ms forwards;
+ -o-animation: rnPreloaderShatter 300ms ease-in-out 500ms forwards;
+ animation: rnPreloaderShatter 300ms ease-in-out 500ms forwards;
+}
+
+.rn-preloader-box {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ text-align: center;
+}
+
+.rn-preloader-box .rn-preloader-content {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 100%;
+}
+
+.rn-preloader-circle,
+.rn-preloader-line-mask {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ width: 100px;
+ height: 100px;
+ border-radius: 50%;
+ margin-left: -50px;
+ margin-top: -50px;
+ transition: 0.7s !important;
+}
+
+.rn-preloader-circle {
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1);
+}
+
+.rn-preloader-line-mask {
+ overflow: hidden;
+ -webkit-transform-origin: 50px 50px;
+ -moz-transform-origin: 50px 50px;
+ -ms-transform-origin: 50px 50px;
+ -o-transform-origin: 50px 50px;
+ transform-origin: 50px 50px;
+ -webkit-mask-image: -webkit-linear-gradient(top, #000000, rgba(0, 0, 0, 0) 5%);
+ -webkit-mask-image: linear-gradient(top, #000000, rgba(0, 0, 0, 0) 5%);
+ -webkit-animation: rnRotate 1.5s infinite linear;
+ -moz-animation: rnRotate 1.5s infinite linear;
+ -o-animation: rnRotate 1.5s infinite linear;
+ animation: rnRotate 1.5s infinite linear;
+}
+
+.rn-preloader-line-mask .rn-preloader-line {
+ width: 100px;
+ height: 100px;
+ border-radius: 50%;
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
+}
+
+.rn-preloader-content>img {
+ transition: 0.3s;
+}
+
+.rn-preloader-content>img {
+ animation: rnPreloaderZoomInOut 1s infinite;
+}
+
+.rn-preloaded .rn-preloader-box img {
+ opacity: 0;
+}
+
+.rn-preloaded .rn-preloader-circle,
+.rn-preloaded .rn-preloader-line-mask {
+ opacity: 0;
+}
+
+@keyframes rnPreloaderShatter {
+ 0% {
+ width: 50%;
+ }
+
+ 100% {
+ width: 0%;
+ }
+}
+
+@keyframes rnRotate {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes rnPreloaderZoomInOut {
+ 0% {
+ transform: scale(1, 1);
+ }
+
+ 50% {
+ transform: scale(1.3, 1.3);
+ }
+
+ 100% {
+ transform: scale(1, 1);
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/default/_reset.scss b/src/assets/scss/default/_reset.scss
new file mode 100644
index 0000000..67d3399
--- /dev/null
+++ b/src/assets/scss/default/_reset.scss
@@ -0,0 +1,308 @@
+/**
+ * Reset Styels
+ */
+
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+nav,
+section,
+summary {
+ display: block;
+}
+audio,
+canvas,
+video {
+ display: inline-block;
+}
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+[hidden] {
+ display: none;
+}
+html,
+button,
+input,
+select,
+textarea {
+ font-family: "Source Sans Pro", Helvetica, sans-serif;
+}
+a {
+ color: #ca3c08;
+ text-decoration: none;
+}
+a:visited {
+ color: #ac0404;
+}
+a:focus {
+ outline: thin dotted;
+}
+a:active,
+a:hover {
+ color: #ea9629;
+ outline: 0;
+}
+a:hover {
+ text-decoration: underline;
+}
+address {
+ font-style: italic;
+ margin: 0 0 24px;
+}
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+b,
+strong {
+ font-weight: bold;
+}
+dfn {
+ font-style: italic;
+}
+mark {
+ background: #ff0;
+ color: #000;
+}
+p {
+ margin: 0 0 24px;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ font-size: 14px;
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+}
+pre {
+ background: #f5f5f5;
+ color: #666;
+ font-family: monospace;
+ font-size: 14px;
+ margin: 20px 0;
+ overflow: auto;
+ padding: 20px;
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+blockquote,
+q {
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+ quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+ content: "";
+ content: none;
+}
+blockquote {
+ font-size: 18px;
+ font-style: italic;
+ font-weight: 300;
+ margin: 24px 40px;
+}
+blockquote blockquote {
+ margin-right: 0;
+}
+blockquote cite,
+blockquote small {
+ font-size: 14px;
+ font-weight: normal;
+ text-transform: uppercase;
+}
+blockquote em,
+blockquote i {
+ font-style: normal;
+ font-weight: 300;
+}
+blockquote strong,
+blockquote b {
+ font-weight: 400;
+}
+small {
+ font-size: smaller;
+}
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+dl {
+ margin: 0 20px;
+}
+dt {
+ font-weight: bold;
+}
+dd {
+ margin: 0 0 20px;
+}
+menu,
+ol,
+ul {
+ margin: 16px 0;
+ padding: 0 0 0 40px;
+}
+ul {
+ list-style-type: square;
+}
+nav ul,
+nav ol {
+ list-style: none;
+ list-style-image: none;
+}
+li>ul,
+li>ol {
+ margin: 0;
+}
+img {
+ -ms-interpolation-mode: bicubic;
+ border: 0;
+ vertical-align: middle;
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+figure {
+ margin: 0;
+}
+form {
+ margin: 0;
+}
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ min-width: inherit;
+ padding: 0.35em 0.625em 0.75em;
+}
+legend {
+ border: 0;
+ padding: 0;
+ white-space: normal;
+}
+button,
+input,
+select,
+textarea {
+ font-size: 100%;
+ margin: 0;
+ max-width: 100%;
+ vertical-align: baseline;
+}
+
+button,
+input {
+ line-height: normal;
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ -moz-appearance: button;
+ appearance: button;
+ cursor: pointer;
+}
+
+button[disabled],
+input[disabled] {
+ cursor: default;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ padding: 0;
+}
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ -moz-appearance: textfield;
+ appearance: textfield;
+ appearance: textfield;
+ padding-right: 2px;
+ /* Don't cut off the webkit search cancel button */
+ width: 270px;
+}
+
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+ appearance: none;
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+textarea {
+ overflow: auto;
+ vertical-align: top;
+}
+table {
+ border-bottom: 1px solid #ededed;
+ border-collapse: collapse;
+ border-spacing: 0;
+ font-size: 14px;
+ line-height: 2;
+ margin: 0 0 20px;
+ width: 100%;
+}
+caption,
+th,
+td {
+ font-weight: normal;
+ text-align: left;
+}
+caption {
+ font-size: 16px;
+ margin: 20px 0;
+}
+th {
+ font-weight: bold;
+ text-transform: uppercase;
+}
+td {
+ border-top: 1px solid #ededed;
+ padding: 6px 10px 6px 0;
+}
+del {
+ color: #333;
+}
+ins {
+ background: #fff9c0;
+ text-decoration: none;
+}
+hr {
+ background-size: 4px 4px;
+ border: 0;
+ height: 1px;
+ margin: 0 0 24px;
+}
diff --git a/src/assets/scss/default/_shortcode.scss b/src/assets/scss/default/_shortcode.scss
new file mode 100644
index 0000000..a415ef5
--- /dev/null
+++ b/src/assets/scss/default/_shortcode.scss
@@ -0,0 +1,867 @@
+/**
+ * Utilities
+ */
+
+.hidden {
+ display: none;
+}
+
+.visuallyhidden {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+}
+
+.poss_relative {
+ position: relative;
+}
+
+.poss_absolute {
+ position: absolute;
+}
+
+.visuallyhidden.focusable:active,
+.visuallyhidden.focusable:focus {
+ clip: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ position: static;
+ width: auto;
+}
+
+.invisible {
+ visibility: hidden;
+}
+
+.clearfix:before,
+.clearfix:after {
+ content: " ";
+ /* 1 */
+ display: table;
+ /* 2 */
+}
+
+.clearfix:after {
+ clear: both;
+}
+
+.wrapper {
+ position: relative;
+}
+
+
+/* Define Colors */
+
+.color-theme {
+ color: $theme-color;
+}
+
+.color-light {
+ color: #999999;
+}
+
+.color-dark {
+ color: #333333;
+}
+
+.color-black {
+ color: #000000;
+}
+
+.white {
+ color: $white;
+}
+
+
+/* Background Color */
+
+@include config-bg-colors('bg_color--', '1'$white, '2'$theme-color, '3' #ffffff, '4' #fff);
+
+.bg-theme {
+ background: $theme-color !important;
+}
+
+.bg-secondary {
+ background: $secondary-color !important;
+}
+
+.bg-grey {
+ background: $bg-grey !important;
+}
+
+.bg-dark {
+ background: #2a2a2a !important;
+}
+
+
+/* Youtube Video Background */
+
+.background-video-holder {
+ position: relative;
+}
+
+.youtube-video-wrapper {
+ width: 100%;
+ height: 100%;
+ position: absolute !important;
+ top: 0 !important;
+ left: 0;
+ z-index: -1;
+}
+
+.youtube-bg {
+ display: block;
+ height: 100%;
+ background: rgba(0, 0, 0, 0.5);
+}
+
+.bg-fixed {
+ background-attachment: fixed;
+}
+
+.rn-bg-position {
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center center;
+}
+
+.rn-bg-position-fixed {
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center center;
+ background-attachment: fixed;
+}
+
+.sticky-top {
+ position: -webkit-sticky;
+ position: sticky;
+ top: 0;
+ z-index: 1020;
+}
+
+
+/* Background Image */
+
+@for $i from 1 through 17 {
+ .bg_image--#{$i} {
+ background-image: url(../img/bg/bg-image-#{$i}.jpg);
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center center;
+ }
+}
+
+
+/*-- Section Separation */
+
+
+/*-- Padding Top --*/
+
+@for $i from 1 through 30 {
+ .pt--#{5 * $i} {
+ padding-top: 5px *$i;
+ }
+}
+
+@media #{$large-mobile} {
+ @for $i from 1 through 10 {
+ .pt_sm--#{5 * $i} {
+ padding-top: 5px *$i;
+ }
+ }
+}
+
+
+/*-- Padding Bottom --*/
+
+@for $i from 1 through 30 {
+ .pb--#{5 * $i} {
+ padding-bottom: 5px *$i;
+ }
+}
+
+@media #{$large-mobile} {
+ @for $i from 1 through 10 {
+ .pb_sm--#{5 * $i} {
+ padding-bottom: 5px *$i;
+ }
+ }
+}
+
+
+/*-- Padding Left --*/
+
+@for $i from 1 through 30 {
+ .pl--#{5 * $i} {
+ padding-left: 5px *$i;
+ }
+}
+
+.pl--5 {
+ padding-left: 5px !important;
+}
+
+@media #{$large-mobile} {
+ @for $i from 1 through 10 {
+ .pl_sm--#{5 * $i} {
+ padding-left: 5px *$i;
+ }
+ }
+}
+
+
+/*-- Padding Right --*/
+
+@for $i from 1 through 30 {
+ .pr--#{5 * $i} {
+ padding-right: 5px *$i;
+ }
+}
+
+@media #{$large-mobile} {
+ @for $i from 1 through 10 {
+ .pr_sm--#{5 * $i} {
+ padding-right: 5px *$i;
+ }
+ }
+}
+
+
+/*-- Margin Top --*/
+
+@for $i from 1 through 20 {
+ .mt--#{5 * $i} {
+ margin-top: 5px *$i;
+ }
+}
+
+
+/*-- Margin Bottom --*/
+
+@for $i from 1 through 20 {
+ .mb--#{5 * $i} {
+ margin-bottom: 5px *$i;
+ }
+}
+
+@media #{$sm-layout} {
+ .mb-sm-30 {
+ margin-bottom: 30px;
+ }
+
+ .pr-sm-15 {
+ padding-right: 15px;
+ }
+}
+
+@media #{$md-layout} {
+ .pr-md-15 {
+ padding-right: 15px !important;
+ }
+}
+
+
+/*-- Margin Bottom --*/
+
+@for $i from 1 through 50 {
+ .ptb--#{5 * $i} {
+ padding: 5px *$i 0;
+ }
+}
+
+.rn-plr--200 {
+ padding-left: 200px;
+ padding-right: 200px;
+}
+
+.rn-ptb-200 {
+ padding-top: 200px;
+ padding-bottom: 200px;
+}
+
+.ptb--150 {
+ padding: 150px 0;
+}
+
+.ptb--mid {
+ padding-top: 140px;
+ padding-bottom: 135px;
+}
+
+.rn-plr--160 {
+ padding-left: 160px;
+ padding-right: 160px;
+
+ @media #{$md-layout} {
+ padding-top: 100px;
+ padding-bottom: 100px;
+ }
+
+ @media #{$sm-layout} {
+ padding-top: 60px;
+ padding-bottom: 60px;
+ }
+}
+
+
+/*-- Padding Top Bottom --*/
+
+.section-ptb-xl {
+ padding-top: 120px;
+ padding-bottom: 120px;
+
+ @media #{$md-layout} {
+ padding-top: 100px;
+ padding-bottom: 100px;
+ }
+
+ @media #{$sm-layout} {
+ padding-top: 60px;
+ padding-bottom: 60px;
+ }
+}
+
+.section-ptb-md {
+ padding-top: 120px;
+ padding-bottom: 120px;
+
+ @media #{$md-layout} {
+ padding-top: 100px;
+ padding-bottom: 100px;
+ }
+
+ @media #{$sm-layout} {
+ padding-top: 60px;
+ padding-bottom: 60px;
+ }
+}
+
+.section-ptb-100 {
+ padding: 100px 0;
+
+ @media #{$large-mobile} {
+ padding: 60px 0;
+ }
+
+ @media #{$md-layout} {
+ padding: 60px 0;
+ }
+}
+
+.section-pt-xl {
+ padding-top: 160px;
+
+ @media #{$large-mobile} {
+ padding-top: 60px;
+ }
+}
+
+.section-pb-xl {
+ padding-bottom: 160px;
+
+ @media #{$large-mobile} {
+ padding-bottom: 60px 0;
+ }
+}
+
+@media #{$sm-layout} {
+ .pb-sm--40 {
+ padding-bottom: 40px;
+ }
+}
+
+.rn-plr {
+ padding-left: 160px;
+ padding-right: 160px;
+}
+
+.bg_color--3 {
+ // background: #ffffff!important;
+}
+
+.h-full {
+ height: 100%;
+}
+
+
+/* Text specialized */
+
+.text-italic {
+ font-style: italic;
+}
+
+.text-normal {
+ font-style: normal;
+}
+
+.text-underline {
+ font-style: underline;
+}
+
+.font-500 {
+ font-weight: 500;
+}
+
+
+/* Font specialized */
+
+.body-font {
+ font-family: $body-font;
+}
+
+.heading-font {
+ font-family: $heading-font;
+}
+
+
+/* Height and width */
+
+.fullscreen {
+ min-height: 100vh;
+ width: 100%;
+
+ @media #{$sm-layout} {
+ min-height: 80vh;
+ }
+}
+
+.w-100 {
+ width: 100%;
+}
+
+.w-75 {
+ width: 75%;
+}
+
+.w-50 {
+ width: 50%;
+}
+
+.w-33 {
+ width: 33.33%;
+}
+
+.w-25 {
+ width: 25%;
+}
+
+.w-10 {
+ width: 10%;
+}
+
+.h-100 {
+ height: 100%;
+}
+
+.h-75 {
+ height: 75%;
+}
+
+.h-50 {
+ height: 50%;
+}
+
+.h-25 {
+ height: 25%;
+}
+
+.h-33 {
+ height: 33.33%;
+}
+
+.h-10 {
+ height: 10%;
+}
+
+
+/*-- Custom Row ---*/
+
+.row--0 {
+ margin-left: -0px;
+ margin-right: -0px;
+
+ &>[class*="col"] {
+ padding-left: 0px;
+ padding-right: 0px;
+ }
+}
+
+.row--5 {
+ margin-left: -5px;
+ margin-right: -5px;
+
+ &>[class*="col"] {
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+}
+
+.row--10 {
+ margin-left: -10px;
+ margin-right: -10px;
+
+ &>[class*="col"] {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+}
+
+.row--7-5 {
+ margin-left: -7.5px;
+ margin-right: -7.5px;
+
+ &>[class*="col"] {
+ padding-left: 7.5px;
+ padding-right: 7.5px;
+ }
+}
+
+.row--55 {
+ margin-left: -55px;
+ margin-right: -55px;
+
+ @media #{$laptop-device} {
+ margin-left: 15px;
+ margin-right: 15px;
+ }
+
+ @media #{$lg-layout} {
+ margin-left: 0px;
+ margin-right: 0px;
+ }
+
+ @media #{$md-layout} {
+ margin-left: 0px;
+ margin-right: 0px;
+ }
+
+ @media #{$sm-layout} {
+ margin-left: -15px !important;
+ margin-right: -15px !important;
+ }
+
+ &>[class*="col"] {
+ padding-left: 55px;
+ padding-right: 55px;
+
+ // Responsive
+ @media #{$laptop-device} {
+ padding-left: 35px;
+ padding-right: 35px;
+ }
+
+ @media #{$lg-layout} {
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+
+ @media #{$md-layout} {
+ padding-left: 15px !important;
+ padding-right: 15px !important;
+ }
+
+ @media #{$sm-layout} {
+ padding-left: 15px !important;
+ padding-right: 15px !important;
+ }
+ }
+}
+
+.row--20 {
+ margin-left: -20px;
+ margin-right: -20px;
+
+ // Responsive
+ @media #{$laptop-device} {
+ margin-left: -15px;
+ margin-right: -15px;
+ }
+
+ @media #{$lg-layout} {
+ margin-left: -15px;
+ margin-right: -15px;
+ }
+
+ @media #{$md-layout} {
+ margin-left: -15px;
+ margin-right: -15px;
+ }
+
+ @media #{$sm-layout} {
+ margin-left: -15px !important;
+ margin-right: -15px !important;
+ }
+
+ &>[class*="col"],
+ &>[class*="col-"] {
+ padding-left: 20px;
+ padding-right: 20px;
+
+ // Responsive
+ @media #{$laptop-device} {
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+
+ @media #{$lg-layout} {
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+
+ @media #{$md-layout} {
+ padding-left: 15px !important;
+ padding-right: 15px !important;
+ }
+
+ @media #{$sm-layout} {
+ padding-left: 15px !important;
+ padding-right: 15px !important;
+ }
+ }
+}
+
+
+/*------------------------------------
+ Input Placeholder
+---------------------------------------*/
+
+input:-moz-placeholder,
+textarea:-moz-placeholder {
+ opacity: 1;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+}
+
+input::-webkit-input-placeholder,
+textarea::-webkit-input-placeholder {
+ opacity: 1;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+}
+
+input::-moz-placeholder,
+textarea::-moz-placeholder {
+ opacity: 1;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+}
+
+input:-ms-input-placeholder,
+textarea:-ms-input-placeholder {
+ opacity: 1;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+}
+
+
+/*--------------------------
+ Overlay styles
+---------------------------*/
+
+[data-overlay],
+[data-black-overlay],
+[data-white-overlay] {
+ position: relative;
+}
+
+[data-overlay]>div,
+[data-overlay]>*,
+[data-black-overlay]>div,
+[data-black-overlay]>*,
+[data-white-overlay]>div,
+[data-white-overlay]>* {
+ position: relative;
+ z-index: 2;
+}
+
+[data-overlay]:before,
+[data-black-overlay]:before,
+[data-white-overlay]:before {
+ content: "";
+ position: absolute;
+ left: 0;
+ top: 0;
+ height: 100%;
+ width: 100%;
+ z-index: 2;
+}
+
+[data-overlay]:before {
+ background-color: $theme-color;
+}
+
+[data-black-overlay]:before {
+ background-color: #000000;
+}
+
+[data-white-overlay]:before {
+ background-color: #ffffff;
+}
+
+@for $i from 1 through 10 {
+
+ [data-overlay="#{$i}"]:before,
+ [data-black-overlay="#{$i}"]:before,
+ [data-white-overlay="#{$i}"]:before {
+ opacity: #{$i * 0.10};
+ }
+}
+
+.bg-theme,
+.bg-dark,
+.bg-dark-light,
+.bg-secondary {
+ color: #ffffff;
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ p {
+ color: #ffffff;
+ }
+}
+
+
+/*------------------------------
+ Scroll Up
+--------------------------------*/
+
+#scrollUp {
+ width: auto;
+ height: auto;
+ color: #000000;
+ right: 43px;
+ bottom: 100px;
+ text-align: center;
+ overflow: hidden;
+ z-index: 9811 !important;
+
+ @media #{$sm-layout} {
+ display: none !important;
+ }
+
+ & i {
+ display: block;
+ font-size: 50px;
+ }
+
+ &:hover {
+ & i {
+ animation-name: fadeInUp;
+ animation-duration: 1s;
+ animation-fill-mode: both;
+ animation-iteration-count: infinite;
+ }
+ }
+}
+
+// Contact Form
+.form-message {
+ margin-bottom: 0;
+ text-align: center;
+
+ &.error {
+ margin-top: 20px;
+ color: #f80707;
+ }
+
+ &.success {
+ margin-top: 20px;
+ color: #0d8d2d;
+ }
+}
+
+.bk-parallax {
+ position: relative;
+ z-index: 0;
+}
+
+.bk-parallax>.bk-parallax-img {
+ position: absolute;
+ object-fit: cover;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+}
+
+
+/*----------------------
+ Social Color
+------------------------*/
+
+.facebook {
+ background-color: $facebook;
+ color: $white;
+
+ &:hover {
+ background-color: $facebook;
+ color: $white;
+ }
+}
+
+.twitter {
+ background-color: $twitter;
+ color: $white;
+
+ &:hover {
+ background-color: $twitter;
+ color: $white;
+ }
+}
+
+.linkedin {
+ background-color: $linkedin;
+ color: $white;
+
+ &:hover {
+ background-color: $linkedin;
+ color: $white;
+ }
+}
+
+.pinterest {
+ background-color: $pinterest;
+ color: $white;
+
+ &:hover {
+ background-color: $pinterest;
+ color: $white;
+ }
+}
+
+.google-plus {
+ background-color: $google-plus;
+ color: $white;
+
+ &:hover {
+ background-color: $google-plus;
+ color: $white;
+ }
+}
+
+.flickr {
+ background-color: $flickr;
+ color: $white;
+
+ &:hover {
+ background-color: $flickr;
+ color: $white;
+ }
+}
+
+.yahoo {
+ background-color: $yahoo;
+ color: $white;
+
+ &:hover {
+ background-color: $yahoo;
+ color: $white;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/default/_typography.scss b/src/assets/scss/default/_typography.scss
new file mode 100644
index 0000000..6a2a3a9
--- /dev/null
+++ b/src/assets/scss/default/_typography.scss
@@ -0,0 +1,238 @@
+/*====================================
+ Google Font
+===================================*/
+
+@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,900;1,300;1,400;1,500;1,600&display=swap');
+
+/**
+ * Typography
+ */
+
+* {
+ box-sizing: border-box;
+}
+
+img {
+ max-width: 100%;
+}
+
+html {
+ overflow: hidden;
+ overflow-y: auto;
+}
+
+body {
+ font-size: $body-font-size;
+ line-height: $body-line-height;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-family: $body-font;
+ color: $body-color;
+ font-weight: 400;
+}
+
+a {
+ transition: all 0.4s ease-in-out 0s;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6,
+address,
+p,
+pre,
+blockquote,
+dl,
+dd,
+menu,
+ol,
+ul,
+table,
+caption,
+hr {
+ margin: 0;
+ margin-bottom: 15px;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+ font-family: $heading-font;
+ line-height: 1.3;
+ color: #000000;
+}
+
+h1,
+.h1 {
+ font-size: $h1;
+}
+
+h2,
+.h2 {
+ font-size: $h2;
+}
+
+h3,
+.h3 {
+ font-size: $h3;
+}
+
+h4,
+.h4 {
+ font-size: $h4;
+}
+
+h5,
+.h5 {
+ font-size: $h5;
+}
+
+h6,
+.h6 {
+ font-size: $h6;
+}
+
+@media #{$md-layout} {
+ h1,
+ .h1 {
+ font-size: $h1 - 4;
+ }
+ h2,
+ .h2 {
+ font-size: $h2 - 2;
+ }
+ h3,
+ .h3 {
+ font-size: $h3 - 2;
+ }
+}
+
+@media #{$sm-layout} {
+ h1,
+ .h1 {
+ font-size: $h1 - 6;
+ }
+ h2,
+ .h2 {
+ font-size: $h2 - 4;
+ }
+ h3,
+ .h3 {
+ font-size: $h3 - 2;
+ }
+}
+
+@media #{$large-mobile} {
+ h1,
+ .h1 {
+ font-size: $h1 - 8;
+ }
+}
+
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+ font-weight: 700;
+}
+
+h4,
+.h4,
+h5,
+.h5 {
+ font-weight: 600;
+}
+
+h6,
+.h6 {
+ font-weight: 500;
+}
+
+a:hover,
+a:focus,
+a:active {
+ text-decoration: none;
+ outline: none;
+}
+
+a:visited {
+ color: inherit;
+}
+
+input,
+button,
+select,
+textarea {
+ background: transparent;
+ border: 1px solid $border-color;
+ transition: all 0.4s ease-out 0s;
+ color: $body-color;
+ &:focus,
+ &:active {
+ outline: none;
+ border-color: $theme-color;
+ }
+}
+li a:focus,a:focus,li:focus{
+ outline: none!important;
+ border: none;
+}
+input,
+select,
+textarea {
+ width: 100%;
+ font-size: 14px;
+}
+
+input,
+select {
+ height: 40px;
+ padding: 0 15px;
+}
+
+ul.liststyle.bullet li {
+ position: relative;
+ font-size: 20px;
+ line-height: 30px;
+ color: #0c0c0c;
+ padding-left: 25px;
+ font-weight: 300;
+ margin-bottom: 10px;
+ @media #{$sm-layout} {
+ font-size: 16px;
+ line-height: 28px;
+ }
+ &:before {
+ position: absolute;
+ content: "";
+ width: 6px;
+ height: 6px;
+ border-radius: 100%;
+ background: rgba(29, 29, 36, .75);
+ left: 0;
+ top: 13px;
+ @media #{$sm-layout} {
+ top: 11px;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/default/_variables.scss b/src/assets/scss/default/_variables.scss
new file mode 100644
index 0000000..9a6392e
--- /dev/null
+++ b/src/assets/scss/default/_variables.scss
@@ -0,0 +1,98 @@
+//===== Colors =====//
+$theme-color: #000000;
+$secondary-color: #3498db;
+$body-color: #000000;
+$heading-color: #000000;
+$bg-grey: #f5f5f5;
+$border-color: #cccccc;
+$white:#fff;
+//===== Font Family =====//
+$body-font: 'Poppins',
+sans-serif;
+$heading-font: 'Poppins',
+sans-serif;
+$placeholder-color:#333;
+//===== Line Height =====//
+$body-line-height: 30px;
+//==== Font size =====//
+$body-font-size: 18px;
+$h1: 42px;
+$h2: 30px;
+$h3: 26px;
+$h4: 22px;
+$h5: 18px;
+$h6: 14px;
+//===== Social Colors =====//
+$facebook: #3B5998;
+$twitter: #00ACEE;
+$google-plus: #DD4B39;
+$pinterest: #C8232C;
+$linkedin: #0E76A8;
+$flickr: #FF0084;
+$dribbble: #EA4C89;
+$google: #DD4B39;
+$skype: #00AFF0;
+$behance: #0057ff;
+$youtube: #C4302B;
+$vimeo: #86C9EF;
+$yahoo: #720E9E;
+$paypal: #00588B;
+$delicious: #205CC0;
+$flattr: #F67C1A;
+$android: #A4C639;
+$tumblr: #34526F;
+$wikipedia: #333333;
+$stumbleupon: #F74425;
+$foursquare: #25A0CA;
+$digg: #191919;
+$spotify: #81B71A;
+$reddit: #C6C6C6;
+$cc: #688527;
+$vk: #2B587A;
+$rss: #EE802F;
+$podcast: #E4B21B;
+$dropbox: #3D9AE8;
+$github: #171515;
+$soundcloud: #FF7700;
+$wordpress: #1E8CBE;
+$yelp: #C41200;
+$scribd: #666666;
+$cc-stripe: #008CDD;
+$drupal: #27537A;
+$get-pocket: #EE4056;
+$bitbucket: #0E4984;
+$stack-overflow: #EF8236;
+$hacker-news: #FF6600;
+$xing: #126567;
+$instagram: #D82E86;
+$quora: #A82400;
+$openid: #E16309;
+$steam: #111111;
+$amazon: #E47911;
+$slack: #63C1A0;
+$snapchat: #FFFC00;
+// Layouts
+$extra-device: 'only screen and (min-width: 1600px) and (max-width: 1919px)';
+$laptop-device: 'only screen and (min-width: 1200px) and (max-width: 1599px)';
+$lg-layout: 'only screen and (min-width: 992px) and (max-width: 1199px)';
+$md-layout:'only screen and (min-width: 768px) and (max-width: 991px)';
+$sm-layout:'only screen and (max-width: 767px)';
+$large-mobile: 'only screen and (max-width: 575px)';
+
+/* container 450px*/
+
+$small-mobile: 'only screen and (max-width: 479px)';
+
+/* container 300px*/
+
+@media #{$large-mobile} {
+ .container {
+ width: 450px;
+ }
+}
+
+@media #{$small-mobile} {
+ .container {
+ width: 300px;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_404.scss b/src/assets/scss/elements/_404.scss
new file mode 100644
index 0000000..3f74e6b
--- /dev/null
+++ b/src/assets/scss/elements/_404.scss
@@ -0,0 +1,49 @@
+/*----------------------
+ Error Area
+------------------------*/
+
+.error-page-inner {
+ height: calc(100vh - 203px);
+ display: flex;
+ align-items: center;
+ min-height: 700px;
+ @media #{$sm-layout} {
+ min-height: 490px;
+ }
+ .inner {
+ text-align: center;
+ h1 {
+ &.heading-title {
+ font-size: 180px;
+ line-height: 1;
+ margin-bottom: 0;
+ @media #{$sm-layout} {
+ font-size: 90px;
+ margin-bottom: 10px;
+ }
+ }
+ }
+ .sub-title {
+ font-weight: 400;
+ font-size: 48px;
+ @media #{$sm-layout} {
+ font-size: 26px;
+ }
+ }
+ span {
+ font-size: 16px;
+ margin-top: 10px;
+ display: block;
+ margin-bottom: 28px;
+ }
+ }
+ .rf-btn{
+ border: 1px solid transparent;
+ &:hover {
+ text-decoration: none;
+ background: #fff;
+ color: #f42a59!important;
+ border-color: #f42a59;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_award.scss b/src/assets/scss/elements/_award.scss
new file mode 100644
index 0000000..5501c25
--- /dev/null
+++ b/src/assets/scss/elements/_award.scss
@@ -0,0 +1,52 @@
+.award-content {
+ ul {
+ &.rn-award-list {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+
+ li {
+ color: #000000;
+ font-size: 18px;
+ font-weight: 300;
+ margin-top: 38px;
+ letter-spacing: 1px;
+
+ a {
+ color: #000000;
+ font-size: 18px;
+ font-weight: 500;
+ display: block;
+ transition: 0.3s ease-in-out;
+
+ &:hover {
+ color: $theme-color;
+ }
+
+ span {
+ font-weight: 300;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+.rn-ptb-100 {
+ padding-top: 100px;
+ padding-bottom: 100px;
+}
+
+.rn-images-bg-wrapper {
+ background-size: cover;
+ background-position: center center;
+}
+
+.rn-blog-wrapper,
+.rn-service-bg-wrapper,
+.rn-skill-bg-wrapper,
+.rn-story-bg-wrapper {
+ background-size: cover;
+ background-position: center center;
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_blog-details.scss b/src/assets/scss/elements/_blog-details.scss
new file mode 100644
index 0000000..30c2eb9
--- /dev/null
+++ b/src/assets/scss/elements/_blog-details.scss
@@ -0,0 +1,87 @@
+/* ====================
+Blog Details Area
+=========================*/
+
+
+
+.blog-details-wrapper{
+ .dropcaps-inner{
+ p{
+ color: #000000;
+ font-size: 18px;
+ line-height: 32px;
+ font-weight: 400;
+ margin: 0;
+ margin-bottom: 40px;
+
+ &:first-of-type:first-letter {
+ color:#000000;
+ float:left;
+ font-size: 80px;
+ margin-right: 15px;
+ margin-bottom: 8px;
+ font-weight: 700;
+ margin-top: 17px;
+ }
+ }
+ }
+ .content{
+ p{
+ color: #000000;
+ font-size: 18px;
+ line-height: 32px;
+ font-weight: 400;
+ margin-bottom: 30px;
+ &:last-child{
+ margin-bottom: 0;
+ }
+ }
+ blockquote{
+ padding: 0;
+ margin: 0;
+ margin-bottom: 38px;
+ p{
+ color: #000000;
+ font-size: 20px;
+ line-height: 37px;
+ font-weight: 700;
+ padding: 0;
+ margin: 0;
+ border-bottom: 1px solid #000;
+ display: inline-block;
+ }
+ }
+ .bl-feature{
+ margin-bottom: 43px;
+ margin-top: 43px;
+ ul{
+ &.feature-blog-list{
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ display: flex;
+ margin: 0 -15px;
+ li{
+ margin: 0 15px;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/scss/elements/_blog.scss b/src/assets/scss/elements/_blog.scss
new file mode 100644
index 0000000..ab98de3
--- /dev/null
+++ b/src/assets/scss/elements/_blog.scss
@@ -0,0 +1,31 @@
+/* ======================
+ Blog Area
+=======================*/
+
+.rn-blog {
+ margin-top: 40px;
+ h2 {
+ font-size: 22px;
+ font-weight: 500;
+ margin-bottom: 13px;
+ a {
+ color: #000000;
+ span {
+ font-weight: 300;
+ font-size: 18px;
+ }
+ }
+ }
+ p {
+ color: #222;
+ font-size: 18px;
+ line-height: 30px;
+ font-weight: 300;
+ letter-spacing: 1px;
+ margin-bottom: 0;
+ @media only screen and (max-width: 767px) {
+ font-size: 14px;
+ line-height: 24px;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_bradcaump.scss b/src/assets/scss/elements/_bradcaump.scss
new file mode 100644
index 0000000..5db55ff
--- /dev/null
+++ b/src/assets/scss/elements/_bradcaump.scss
@@ -0,0 +1,76 @@
+/* ====================
+ Breadcaump Area
+==========================*/
+
+.main-paralax-wrapper {
+ perspective: 1px;
+ transform-style: preserve-3d;
+ height: 100vh;
+ overflow-x: hidden;
+ overflow-y: scroll;
+}
+
+.parallaxContainer {
+ display: flex;
+ flex: 1 0 auto;
+ position: relative;
+ padding: 180px 0;
+ justify-content: center;
+ align-items: center;
+ background: url(../img/bg/bg-image-2.jpg);
+ background-color: rgb(250, 228, 216);
+ background-size: cover;
+ &.paralaxbg--2 {
+ background: url(../img/bg/bg-image-3.jpg);
+ }
+ &.paralaxbg--3 {
+ background: url(../img/bg/bg-image-12.jpg);
+ }
+}
+
+.static-breadcaump {
+ padding: 312px 0 310px 0;
+}
+
+.bradcaump_inner {
+ position: relative;
+ z-index: 8;
+ display: block;
+ h2 {
+ &.bradcaump-title {
+ color: #ffffff;
+ font-size: 60px;
+ line-height: 90px;
+ margin: 0;
+ }
+ }
+ ul {
+ &.blog-meta {
+ display: flex;
+ justify-content: center;
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ margin-top: 42px;
+ li {
+ color: #ffffff;
+ font-size: 18px;
+ font-weight: 300;
+ a {
+ color: #ffffff;
+ }
+ &.separator {
+ margin: 0 22px;
+ }
+ }
+ }
+ }
+ p {
+ color: #ffffff;
+ font-size: 22px;
+ line-height: 38px;
+ font-weight: 300;
+ padding: 0 10%;
+ margin-bottom: 0;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_button.scss b/src/assets/scss/elements/_button.scss
new file mode 100644
index 0000000..6bf50f2
--- /dev/null
+++ b/src/assets/scss/elements/_button.scss
@@ -0,0 +1,33 @@
+/**
+ * Button
+ */
+
+.rf-btn,.rf_btn {
+ display: inline-block;
+ padding: 0 60px;
+ height: 60px;
+ line-height: 60px;
+ border-radius: 50px;
+ font-size: 16px;
+ font-weight: 500;
+ text-transform: uppercase;
+ transition: 0.3s ease-in-out;
+ color: #ffffff !important;
+ background: #f42a59;
+ border: 2px solid transparent;
+ -webkit-box-shadow: 0 5px 20px -5px rgb(0 0 0 / 5%);
+ box-shadow: 0 5px 20px -5px rgb(0 0 0 / 5%);
+
+ &:hover{
+ background: transparent;
+ border-color: #f42a59;
+ color: #f42a59!important;
+ }
+
+ @media #{$sm-layout} {
+ padding: 0 35px;
+ height: 50px;
+ line-height: 50px;
+ font-size: 15px;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_contact.scss b/src/assets/scss/elements/_contact.scss
new file mode 100644
index 0000000..6a99432
--- /dev/null
+++ b/src/assets/scss/elements/_contact.scss
@@ -0,0 +1,155 @@
+/*====================
+ Contact Area
+=========================*/
+
+.contact-wrapper {
+ padding: 5px 240px 135px;
+}
+.form-wrapper {
+ background: #fff;
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
+ padding: 50px 40px;
+ margin-top: -40px;
+ position: relative;
+ z-index: 8;
+ top: -40px;
+ margin-bottom: -100px;
+
+ input {
+ color: #7c7d7e;
+ font-size: 18px;
+ font-weight: 300;
+ border: 0 none;
+ border-bottom: 1px solid #ebebec;
+ padding: 0;
+ margin-bottom: 0;
+ height: 60px;
+ }
+ label{
+ display: block;
+ margin-bottom: 20px;
+ &:last-child{
+ margin-bottom: 40px;
+ }
+ }
+ textarea {
+ color: #7c7d7e;
+ font-size: 18px;
+ border: 0 none;
+ border-bottom: 1px solid #ebebec;
+ margin-top: 0;
+ min-height: 220px;
+ }
+ button {
+ border: 0 none;
+ padding: 0;
+ text-transform: uppercase;
+ font-weight: 500;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ i{
+ color: #17181b;
+ font-size: 14px;
+ padding-left: 5px;
+ }
+ }
+
+}
+
+.form-wrapper input:first-child {
+ margin-top: 0;
+}
+.form-wrapper button span{
+ padding-right: 15px;
+}
+.form-wrapper button svg {
+ transition: 0.5s;
+}
+.form-wrapper button:hover svg {
+ width: 100px !important;
+}
+
+.contact-address {
+ padding-left: 120px;
+ h2 {
+ color: #1c1c1e;
+ font-weight: 500;
+ font-size: 45px;
+ }
+ .address {
+ margin-top: 40px;
+ display: flex;
+ i {
+ width: 45px;
+ margin-top: 6px;
+ color: #828283;
+ }
+ p {
+ color: #5b5c5d;
+ font-size: 18px;
+ font-weight: 300;
+ line-height: 28px;
+ margin: 0;
+ a {
+ color: #5b5c5d;
+ line-height: 24px;
+ transition: 0.3s ease-in-out;
+ display: inline-block;
+ position: relative;
+ &::after{
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &:hover{
+ &::after{
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+#googleMap{
+ width: 100%;
+ height: 800px;
+}
+
+.form-messege-active.error {
+ margin: 30px 0 0 0;
+ padding: 15px 20px;
+ background: #000;
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
+ color: red;
+}
+.form-messege-active.success {
+ margin: 30px 0 0 0;
+ padding: 15px 20px;
+ background: #28a745;
+ box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
+ color: #fff;
+}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/scss/elements/_extra.scss b/src/assets/scss/elements/_extra.scss
new file mode 100644
index 0000000..19f4e97
--- /dev/null
+++ b/src/assets/scss/elements/_extra.scss
@@ -0,0 +1,146 @@
+/* =======================
+ Extra
+===========================*/
+
+.multiscroll-tooltip {
+ position: absolute;
+ top: 0px;
+ color: #000;
+ font-size: 14px;
+ white-space: nowrap;
+ max-width: 220px;
+ overflow: hidden;
+ display: block;
+ width: auto;
+}
+
+.multiscroll-tooltip.right {
+ right: 40px;
+}
+
+
+/*
+
+
+#multiscroll-nav ul li .multiscroll-tooltip {
+ position: absolute;
+ top: -2px;
+ color: #fff;
+ font-size: 14px;
+ white-space: nowrap;
+ max-width: 220px;
+ overflow: hidden;
+ display: block;
+ width: auto;
+ -webkit-transition: all .25s ease!important;
+ -o-transition: all .25s ease!important;
+ transition: all .25s ease!important;
+ visibility: hidden;
+ opacity: 0;
+}
+
+#fp-nav ul li .multiscroll-tooltip.right {
+ padding-right: 20px;
+ top: 8px;
+ right: 20px;
+}
+
+*/
+
+#multiscroll-nav li {
+ margin: 0;
+ padding: 0;
+ width: auto;
+ height: auto;
+}
+
+#multiscroll-nav ul li a {
+ display: block;
+ position: relative;
+ z-index: 1;
+ cursor: pointer;
+ text-decoration: none;
+ font-size: 0;
+ line-height: 0;
+ padding: 5px 0;
+ width: auto;
+ height: 20px;
+ width: 30px;
+ box-sizing: content-box;
+}
+
+#multiscroll-nav ul li a span {
+ border-radius: 50%;
+ position: absolute;
+ z-index: 1;
+ border: 0;
+ background: rgba(0, 0, 0, .15);
+ left: 50%;
+ top: 50%;
+ width: 6px;
+ height: 6px;
+ margin: -3px 0 0 -3px;
+ -webkit-transition: all .1s ease-in-out;
+ -o-transition: all .1s ease-in-out;
+ transition: all .1s ease-in-out;
+}
+
+#multiscroll-nav ul li a.active span,
+#multiscroll-nav ul li a:hover span,
+#multiscroll-nav ul li:hover a.active span {
+ background: #000;
+ -webkit-transition: all .25s ease-in-out;
+ -o-transition: all .25s ease-in-out;
+ transition: all .25s ease-in-out;
+}
+
+#multiscroll-nav ul li a svg {
+ position: absolute;
+ top: 0px;
+ left: 0;
+ -webkit-transform: rotate(-90deg);
+ -ms-transform: rotate(-90deg);
+ -o-transform: rotate(-90deg);
+ transform: rotate(-90deg);
+}
+
+#multiscroll-nav ul li a svg circle {
+ fill: transparent;
+ stroke: #000;
+ stroke-width: 1;
+ stroke-dasharray: 500;
+ stroke-dashoffset: 500;
+ -webkit-transition: stroke-dasharray 0s ease .3s, opacity .3s ease;
+ -o-transition: stroke-dasharray 0s ease .3s, opacity .3s ease;
+ transition: stroke-dasharray 0s ease .3s, opacity .3s ease;
+ opacity: 0;
+}
+
+#multiscroll-nav ul li a.active svg circle,
+#multiscroll-nav ul li a:hover svg circle {
+ -webkit-transition: stroke-dasharray .6s ease, opacity 0s ease;
+ -o-transition: stroke-dasharray .6s ease, opacity 0s ease;
+ transition: stroke-dasharray .6s ease, opacity 0s ease;
+ stroke-dasharray: 585;
+ opacity: 1;
+}
+
+.demo-preview-btn {
+ position: fixed;
+ right: 0;
+ bottom: auto;
+ top: 200px;
+ z-index: 999999;
+ transition: 0.3s;
+}
+
+.demo-preview-btn a {
+ display: inline-block;
+ padding: 10px 20px;
+ text-transform: uppercase;
+ font-size: 14px;
+ font-weight: 500;
+ color: #fff;
+ background: #000f11;
+ transform: rotate(90deg) translateY(-20px);
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_fullpage.scss b/src/assets/scss/elements/_fullpage.scss
new file mode 100644
index 0000000..20c0716
--- /dev/null
+++ b/src/assets/scss/elements/_fullpage.scss
@@ -0,0 +1,53 @@
+
+/* ========================
+ Fullpage Css
+===========================*/
+
+
+.swiper-container {
+ width: 100%;
+ height: 100vh;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+.swiper-slide {
+ text-align: center;
+ font-size: 18px;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ -webkit-box-pack: center;
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.swiper-pagination-bullet {
+ display: inline-block;
+ opacity: 1;
+ outline: none;
+ width: 24px;
+ height: 2px;
+ border-radius: 0;
+ background: rgba(0,0,0,0.3);
+ transition: 0.5s;
+}
+
+.swiper-pagination-bullet-active {
+ background: #ffffff;
+}
+.swiper-container-vertical > .swiper-pagination-bullets {
+ right: 80px;
+}
+.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
+ margin: 14px 0;
+}
+.swiper-pagination-bullet-active {
+ transform: scaleX(1.5);
+ background: rgba(0,0,0,1);
+}
diff --git a/src/assets/scss/elements/_hooper-slider.scss b/src/assets/scss/elements/_hooper-slider.scss
new file mode 100644
index 0000000..ca8d2d0
--- /dev/null
+++ b/src/assets/scss/elements/_hooper-slider.scss
@@ -0,0 +1,61 @@
+.hooper {
+ height: 100vh;
+ &:focus {
+ outline: none;
+ }
+ .hooper-pagination.is-vertical {
+ right: 70px;
+ @media #{$large-mobile} {
+ right: 0;
+ }
+ }
+}
+
+.hooper-pagination.is-vertical .hooper-indicator {
+ width: 24px;
+ height: 2px;
+ border-radius: 0;
+ background: transparent;
+ transition: 0.5s;
+ @media #{$large-mobile} {
+ width: 15px;
+ }
+}
+.hooper-indicators{
+ @media #{$large-mobile} {
+ li{
+ line-height: 1;
+ }
+ }
+}
+
+
+// hoper slider animation
+.hooper-slide.is-active.is-current {
+ .content {
+ span {
+ -webkit-animation: 600ms ease-in-out 0s normal none 1 running customOne;
+ animation: 600ms ease-in-out 0s normal none 1 running customOne;
+ }
+ h2 {
+ -webkit-animation: 800ms ease-in-out 0s normal none 1 running customOne;
+ animation: 800ms ease-in-out 0s normal none 1 running customOne;
+ }
+ p {
+ -webkit-animation: 1000ms ease-in-out 0s normal none 1 running customOne;
+ animation: 1000ms ease-in-out 0s normal none 1 running customOne;
+ }
+ .rn-award-list li {
+ -webkit-animation: 1200ms ease-in-out 0s normal none 1 running customOne;
+ animation: 1200ms ease-in-out 0s normal none 1 running customOne;
+ }
+ }
+ .slipt-content-inner .section-title {
+ -webkit-animation: 800ms ease-in-out 0s normal none 1 running customOne;
+ animation: 800ms ease-in-out 0s normal none 1 running customOne;
+ }
+ .blog-wrapper .rn-blog {
+ -webkit-animation: 1000ms ease-in-out 0s normal none 1 running customOne;
+ animation: 800ms ease-in-out 0s normal none 1 running customOne;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_paralax.scss b/src/assets/scss/elements/_paralax.scss
new file mode 100644
index 0000000..c25cf3a
--- /dev/null
+++ b/src/assets/scss/elements/_paralax.scss
@@ -0,0 +1,103 @@
+/* ======================
+ Paralax Area
+========================*/
+
+.bcg {
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-attachment: fixed;
+ background-size: cover;
+ height: 100%;
+ width: 100%;
+}
+
+.hsContainer {
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ position: relative;
+}
+
+.hsContent {
+ max-width: 700px;
+ position: absolute;
+ left: 50%;
+ top: 50%;
+}
+
+.hsContent h2 {
+ color: #fff8de;
+ background-color: rgba(0, 0, 0, 0.5);
+ padding: 10px 5px;
+ font-size: 35px;
+ line-height: 38px;
+ margin-bottom: 12px;
+}
+
+.hsContent p {
+ width: 400px;
+ color: #b2b2b2;
+}
+
+.hsContent a {
+ color: #b2b2b2;
+ text-decoration: underline;
+}
+
+
+/* Slide 1 */
+
+#slide-1 .bcg {
+ background-image: url('../img/bg/bg-image-4.jpg')
+}
+
+#slide-1 .hsContent {
+ bottom: 200px;
+ top: auto;
+}
+
+
+/* Slide 2 */
+
+#slide-2 .bcg {
+ background-image: url('../img/bg/bg-image-5.jpg')
+}
+
+#slide-2 .hsContent {
+ margin-left: -450px;
+ bottom: 200px;
+ top: auto;
+}
+
+
+/* Slide 3 */
+
+#slide-3 .bcg {
+ background-image: url('../img/bg/bg-image-6.jpg')
+}
+
+#slide-3 .hsContent {
+ margin-left: -239px;
+}
+
+#slide-3 h2 {
+ color: #f2ead6;
+ background-color: rgba(0, 0, 0, 0.6);
+}
+
+
+/* Slide 4 */
+
+#slide-4 .bcg {
+ background-image: url('../img/bg/bcg_slide-4.jpg')
+}
+
+#slide-4 .hsContent {
+ margin-left: -450px;
+}
+
+#slide-4 h2 {
+ background: none;
+ padding-left: 0;
+ padding-right: 0;
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_portfolio.scss b/src/assets/scss/elements/_portfolio.scss
new file mode 100644
index 0000000..4bc9c9a
--- /dev/null
+++ b/src/assets/scss/elements/_portfolio.scss
@@ -0,0 +1,743 @@
+/* =====================
+ Portfolio Area
+=======================*/
+
+.rn-portfolio-area {
+ .container {
+ max-width: 1455px;
+ }
+}
+
+.portfolio {
+ position: relative;
+ margin-top: 50px;
+ overflow: hidden;
+ .content {
+ position: absolute;
+ bottom: 40px;
+ width: 100%;
+ text-align: center;
+ z-index: 99;
+ left: 0;
+ h4,.heading-title {
+ color: #ffffff;
+ font-size: 26px;
+ font-weight: 500;
+ margin-bottom: 5px;
+ opacity: 0;
+ transition: 0.4s ease-in-out;
+ transform: translateY(20px);
+ a {
+ color: #ffffff;
+ }
+ }
+ span {
+ color: #ffffff;
+ font-size: 14px;
+ letter-spacing: 1px;
+ font-weight: 300;
+ display: block;
+ opacity: 0;
+ transition: 0.4s ease-in-out;
+ transform: translateY(30px);
+ }
+ }
+ &:hover {
+ .content {
+ h4 {
+ opacity: 1;
+ transform: translateY(0px);
+ }
+ span {
+ transform: translateY(0px);
+ opacity: 1;
+ }
+ }
+ }
+}
+
+.portfolio {
+ position: relative;
+ height: 550px;
+ width: 100%;
+ padding: 40px;
+ transform-style: preserve-3d;
+ transition: 0.4s ease-in-out;
+ position: relative;
+ &::before {
+ position: absolute;
+ z-index: 1;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 100%;
+ background: url('../img/project/work-1.jpg');
+ content: "";
+ background-size: cover !important;
+ background-position: center !important;
+ }
+ &.colorful-project-bg--1 {
+ &::before {
+ background: url('../img/project/colorful/work-1.jpg');
+ }
+ }
+ &.colorful-project-bg--2 {
+ &::before {
+ background: url('../img/project/colorful/work-2.jpg');
+ }
+ }
+ &.colorful-project-bg--3 {
+ &::before {
+ background: url('../img/project/colorful/work-3.jpg');
+ }
+ }
+ &.colorful-project-bg--4 {
+ &::before {
+ background: url('../img/project/colorful/work-4.jpg');
+ }
+ }
+ &.colorful-project-bg--5 {
+ &::before {
+ background: url('../img/project/colorful/work-5.jpg');
+ }
+ }
+ &.colorful-project-bg--6 {
+ &::before {
+ background: url('../img/project/colorful/work-6.jpg');
+ }
+ }
+ &.colorful-project-bg--7 {
+ &::before {
+ background: url('../img/project/colorful/work-7.jpg');
+ }
+ }
+ &.colorful-project-bg--8 {
+ &::before {
+ background: url('../img/project/colorful/work-8.jpg');
+ }
+ }
+ &.colorful-project-bg--9 {
+ &::before {
+ background: url('../img/project/colorful/work-9.jpg');
+ }
+ }
+ &.project-bg--1 {
+ &::before {
+ background: url('../img/project/work-1.jpg');
+ }
+ }
+ &.project-bg--2 {
+ &::before {
+ background: url('../img/project/work-2.jpg');
+ }
+ }
+ &.project-bg--3 {
+ &::before {
+ background: url('../img/project/work-3.jpg');
+ }
+ }
+ &.project-bg--4 {
+ &::before {
+ background: url('../img/project/work-4.jpg');
+ }
+ }
+ &.project-bg--5 {
+ &::before {
+ background: url('../img/project/work-5.jpg');
+ }
+ }
+ &.project-bg--6 {
+ &::before {
+ background: url('../img/project/work-6.jpg');
+ }
+ }
+ .bgDescription {
+ background: transparent url(../img/logo/bgDescription.png) repeat-x top left;
+ height: 335px;
+ position: absolute;
+ bottom: 0px;
+ left: 0px;
+ width: 100%;
+ opacity: 0;
+ z-index: 3;
+ visibility: hidden;
+ transition: 0.4s ease-in-out;
+ }
+ &:hover .bgDescription {
+ opacity: 1;
+ visibility: visible;
+ }
+ &:hover {
+ box-shadow: 0 0 25px 0px rgba(0, 0, 0, 0.1);
+ transform: scale(1.05);
+ }
+}
+
+
+/* Sidebar Style */
+
+.sidebar--content {
+ min-height: 100vh;
+ padding-bottom: 40px;
+ padding-top: 32px;
+ background: #f8f8f8 none repeat scroll 0 0;
+ height: 100vh;
+ min-height: 100vh;
+ position: fixed;
+ text-align: center;
+ top: 0;
+ width: 120px;
+ z-index: 999;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: -ms-flex;
+ display: -o-flex;
+ display: flex;
+ -webkit-flex-direction: column;
+ -moz-flex-direction: column;
+ -ms-flex-direction: column;
+ -o-flex-direction: column;
+ flex-direction: column;
+ justify-content: space-between;
+}
+
+.sidebar--page--content {
+ width: calc(100% - 120px);
+ margin-left: 120px;
+ padding: 0 15px;
+}
+
+
+/* ===========================
+Portfolio Style 2
+===============================*/
+
+.portfolio-fullcontainer {
+ .portfolio-inner {
+ margin: 0 -15px !important;
+ }
+}
+
+.portfolio_style--2 {
+ margin: 0 5px;
+ margin-bottom: 10px;
+}
+
+.rp_portfolio_menu {
+ text-align: left;
+ margin: 0 -23px;
+ button {
+ border: 0 none;
+ color: #2e2e2d;
+ font-size: 18px;
+ font-weight: 300;
+ margin: 0 23px;
+ height: 120px;
+ line-height: 120px;
+ }
+}
+
+
+/* =======================
+ Portfolio Style 5
+================================*/
+
+.rp_portfolio_menu5 {
+ button {
+ color: #2e2e2d;
+ font-size: 18px;
+ border: 0 none;
+ margin: 0 17px;
+ font-weight: 300;
+ position: relative;
+ padding: 0;
+ &::after {
+ width: 0;
+ height: 1px;
+ bottom: -5px;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &:hover {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+}
+
+.rp_portfolio_menu5 button.is-checked::after {
+ width: 100%;
+ opacity: 0.3;
+}
+
+.rp_portfolio_menu {
+ &.rp_portfolio_menu3 {
+ button {
+ color: #2e2e2d;
+ font-size: 18px;
+ border: 0 none;
+ margin: 0 17px;
+ font-weight: 300;
+ position: relative;
+ height: auto;
+ line-height: inherit;
+ padding: 0;
+ &::after {
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &:hover {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ &.is-checked {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+ }
+}
+
+
+/* =======================
+ Portfolio Style 3
+===========================*/
+
+.portfolio_style--3 {
+ margin-bottom: 10px;
+ .thumb {
+ position: relative;
+ overflow: hidden;
+ a {
+ img {
+ -webkit-transform: scale(1);
+ transform: scale(1);
+ -webkit-transition: -webkit-transform .35s;
+ -moz-transition: -moz-transform .35s;
+ -ms-transition: -ms-transform .35s;
+ -o-transition: -o-transform .35s;
+ transition: transform .35s;
+ width: 100%;
+ }
+ }
+ .port-hover-action {
+ position: absolute;
+ padding: 30px;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ z-index: 2;
+ -webkit-transition: all .3s cubic-bezier(.05, .8, .5, 1);
+ -moz-transition: all .3s cubic-bezier(.05, .8, .5, 1);
+ -ms-transition: all .3s cubic-bezier(.05, .8, .5, 1);
+ -o-transition: all .3s cubic-bezier(.05, .8, .5, 1);
+ transition: all .3s cubic-bezier(.05, .8, .5, 1);
+ -webkit-transform: translateY(110%);
+ -moz-transform: translateY(110%);
+ -ms-transform: translateY(110%);
+ -o-transform: translateY(110%);
+ transform: translateY(110%);
+ color: #ffffff;
+ color: rgba(255, 255, 255, 0.60);
+ background-color: rgba(0, 0, 0, 0.8);
+ -webkit-box-shadow: 0px 0px 50px 0px rgba(0, 0, 0, 0.25);
+ -moz-box-shadow: 0px 0px 50px 0px rgba(0, 0, 0, 0.25);
+ box-shadow: 0px 0px 50px 0px rgba(0, 0, 0, 0.25);
+ visibility: hidden;
+ .content {
+ h3 {
+ opacity: 0;
+ color: #ffffff;
+ margin: 0;
+ text-align: center;
+ font-size: 14px;
+ font-weight: 500;
+ -webkit-transition: all 0.3s cubic-bezier(0.05, 0.8, 0.5, 1);
+ -moz-transition: all 0.3s cubic-bezier(0.05, 0.8, 0.5, 1);
+ -ms-transition: all 0.3s cubic-bezier(0.05, 0.8, 0.5, 1);
+ -o-transition: all 0.3s cubic-bezier(0.05, 0.8, 0.5, 1);
+ transition: all 0.3s cubic-bezier(0.05, 0.8, 0.5, 1);
+ -webkit-transform: translateY(50px);
+ -moz-transform: translateY(50px);
+ -ms-transform: translateY(50px);
+ -o-transform: translateY(50px);
+ transform: translateY(50px);
+ a {
+ color: #fff;
+ text-align: center;
+ font-size: 17px;
+ font-weight: 500;
+ }
+ }
+ }
+ }
+ }
+ &:hover {
+ .thumb {
+ a {
+ img {
+ -webkit-transform: scale(1.12);
+ transform: scale(1.12);
+ }
+ }
+ .port-hover-action {
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ transform: translateY(0);
+ visibility: visible;
+ .content {
+ h3 {
+ opacity: 1;
+ -webkit-transform: translateY(0);
+ -moz-transform: translateY(0);
+ -ms-transform: translateY(0);
+ -o-transform: translateY(0);
+ transform: translateY(0);
+ -webkit-transition-delay: .1s;
+ -moz-transition-delay: .1s;
+ -ms-transition-delay: .1s;
+ -o-transition-delay: .1s;
+ transition-delay: .1s;
+ }
+ }
+ }
+ }
+ }
+}
+
+.portfolio-fullcontainer {
+ .portfolio_style--3 {
+ margin-bottom: 15px;
+ }
+}
+
+
+/* ==========================
+ Portfolio New Style
+==============================*/
+
+.rp_portfolio_menu-new {
+ padding: 44px 0;
+ margin-left: -70px;
+}
+
+.rp_portfolio_menu-new {
+ button {
+ position: relative;
+ padding: 0;
+ border: 0 none;
+ margin: 0 14px;
+ &::after {
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &:hover {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ &.is-checked {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+}
+
+.bm-header .rp_portfolio_menu-new {
+ margin-left: -15px;
+}
+
+.bm-header .hd-right {
+ margin-right: -15px;
+}
+
+
+/* ==========================
+ Sidebar Social Icon
+==============================*/
+
+.sidebar-social-icon {
+ position: absolute;
+ width: 100%;
+ bottom: 20px;
+ .icon-on-hover {
+ position: relative;
+ span {
+ &.icon {
+ color: #222;
+ font-size: 35px;
+ margin-top: 0;
+ display: block;
+ cursor: pointer;
+ line-height: 35px;
+ }
+ i {
+ color: #222;
+ font-size: 30px;
+ margin-top: 0;
+ display: block;
+ cursor: pointer;
+ line-height: 35px;
+ }
+ }
+ .hover-social-icon {
+ opacity: 0;
+ visibility: hidden;
+ z-index: -2;
+ transition: opacity 300ms linear 0s;
+ a {
+ display: block;
+ text-align: center;
+ color: #222;
+ font-size: 12px;
+ width: 30px;
+ height: 30px;
+ display: block;
+ border: 1px solid #000;
+ border-radius: 100%;
+ margin: 10px 0;
+ line-height: 28px;
+ transition: opacity 300ms linear 0s;
+ opacity: 0;
+ visibility: hidden;
+ }
+ }
+ }
+}
+
+
+/* -----------------------
+ Search Style Area
+--------------------------*/
+
+.rf-search {
+ button {
+ border: 0 none;
+ &:hover {
+ color: #222222;
+ }
+ }
+}
+
+.search-popup {
+ position: absolute;
+ left: auto;
+ right: 0;
+ top: 0;
+ height: 100%;
+ width: 50%;
+ background: #ffffff;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-align: center;
+ -ms-flex-align: center;
+ align-items: center;
+ z-index: -1;
+ overflow: hidden;
+ -webkit-transition: all 0.4s ease-in-out 0s;
+ -o-transition: all 0.4s ease-in-out 0s;
+ transition: all 0.4s ease-in-out 0s;
+ .searchinner {
+ position: absolute;
+ left: 0;
+ top: 50%;
+ width: 100%;
+ margin-top: -25px;
+ opacity: 0;
+ visibility: hidden;
+ -webkit-transform: translateY(0%);
+ -ms-transform: translateY(0%);
+ transform: translateY(0%);
+ -webkit-transition: all 0.4s ease-in-out 0s;
+ -o-transition: all 0.4s ease-in-out 0s;
+ transition: all 0.4s ease-in-out 0s;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -webkit-box-pack: justify;
+ -ms-flex-pack: justify;
+ justify-content: space-between;
+ padding: 0 10px 0 100px;
+ .searchform {
+ -webkit-box-flex: 1;
+ -ms-flex-positive: 1;
+ flex-grow: 1;
+ input {
+ height: 45px;
+ border: none;
+ padding: 0;
+ font-size: 26px;
+ padding-right: 50px;
+ }
+ }
+ }
+ button {
+ padding: 0;
+ color: #333333;
+ font-size: 26px;
+ border: none;
+ cursor: pointer;
+ height: 50px;
+ }
+ &.is-visible {
+ z-index: 1;
+ .searchinner {
+ opacity: 1;
+ visibility: visible;
+ -webkit-transform: translateY(0);
+ -ms-transform: translateY(0);
+ transform: translateY(0);
+ }
+ }
+}
+
+.search-popup .searchinner .searchform input::-webkit-input-placeholder {
+ /* Chrome/Opera/Safari */
+ opacity: 0.5;
+}
+
+.search-popup .searchinner .searchform input::-moz-placeholder {
+ /* Firefox 19+ */
+ opacity: 0.5;
+}
+
+.search-popup .searchinner .searchform input:-ms-input-placeholder {
+ /* IE 10+ */
+ opacity: 0.5;
+}
+
+.search-popup .searchinner .searchform input:-moz-placeholder {
+ /* Firefox 18- */
+ opacity: 0.5;
+}
+
+.sidebar-social-icon .icon-on-hover span.icon {
+ transform: rotate(0deg);
+ transition: 0.2s;
+}
+
+.sidebar-social-icon .icon-on-hover.focus span.icon {
+ transform: rotate(90deg);
+}
+
+ul.social-icon.hover-icon {
+ position: absolute;
+ bottom: 70px;
+ padding: 0;
+ left: 46px;
+ opacity: 1;
+ transition: 0.5s;
+ transform: translateY(30px);
+}
+
+.sidebar-social-icon ul.social-icon.hover-icon {
+ position: absolute;
+ bottom: 70px;
+ padding: 0;
+ left: 46px;
+ opacity: 0;
+ transition: 0.5s;
+ transform: translateY(30px);
+}
+
+.sidebar-social-icon ul.social-icon.hover-icon.show {
+ opacity: 1;
+ transform: translateY(0px);
+}
+
+.sidebar-social-icon ul.social-icon.hover-icon li {
+ display: block !important;
+ margin: 10px 0;
+}
+
+.sidebar-social-icon ul.social-icon.hover-icon {
+ display: block;
+}
+
+.rn-custom-portfolio-wrapper {
+ /*margin-top: -60px;*/
+}
+
+.rn-hil-portfolio {
+ div{
+ &:nth-child(3n+2) {
+ margin-top: 60px;
+ @media #{$sm-layout} {
+ margin-top: 0;
+ }
+ }
+ }
+ >div{
+ @media #{$sm-layout} {
+ margin-top: 30px!important;
+ }
+
+ }
+}
+
+@media #{$large-mobile} {
+ .rn-hil-portfolio> div {
+ margin-top: 30px!important;
+ }
+}
+.item-shadow {
+ position: absolute;
+ height: 100%;
+ width: 100%;
+ left: 0;
+ bottom: -15%;
+ -webkit-filter: blur(70px);
+ filter: blur(70px);
+ transform: scale(0.8);
+ -webkit-transform: scale(0.8);
+ text-align: center;
+ opacity: 0;
+ transition: 0.3s;
+}
+
+.portfolio-wrap:hover .item-shadow {
+ transform: scale(1);
+ -webkit-transform: scale(1);
+ opacity: 1;
+}
\ No newline at end of file
diff --git a/src/assets/scss/elements/_progress-bar.scss b/src/assets/scss/elements/_progress-bar.scss
new file mode 100644
index 0000000..3b690d2
--- /dev/null
+++ b/src/assets/scss/elements/_progress-bar.scss
@@ -0,0 +1,212 @@
+/* =========================
+Progress Bar Css
+===========================*/
+
+/* Progress Position */
+.progress {
+ &.progress-label-top {
+ span {
+ &.percent-label {
+ position: absolute;
+ right: 0;
+ top: -39px;
+ }
+ }
+ }
+ &.progress-label-bottom {
+ span {
+ &.percent-label {
+ position: absolute;
+ right: 0;
+ bottom: -29px;
+ z-index: 3;
+ top: auto;
+ }
+ }
+ }
+ &.progress-label-center-right {
+ span {
+ &.percent-label {
+ position: absolute;
+ right: 50px;
+ }
+ }
+ }
+}
+
+.progress-radious-0 {
+ border-radius: 0;
+ .progress-bar {
+ border-radius: 0;
+ }
+}
+
+.progress-radious-3 {
+ border-radius: 3px;
+ .progress-bar {
+ border-radius: 3px;
+ }
+}
+
+.progress-radious-5 {
+ border-radius: 5px;
+ .progress-bar {
+ border-radius: 5px;
+ }
+}
+
+
+
+/* ================
+Main Css
+==================*/
+
+.progress {
+ &.progress-label-top {
+ span {
+ &.percent-label {
+ position: absolute;
+ right: 0;
+ top: -39px;
+ }
+ }
+ }
+ &.progress-label-bottom {
+ span {
+ &.percent-label {
+ position: absolute;
+ right: 0;
+ bottom: -29px;
+ z-index: 3;
+ top: auto;
+ }
+ }
+ }
+ &.progress-label-center-right {
+ span {
+ &.percent-label {
+ position: absolute;
+ right: 50px;
+ }
+ }
+ }
+}
+/*------------------------------------------------
+ // Progress Indicator Style
+ ----------------------------------------------*/
+
+ .progress {
+ // Indicator Style 01
+ &.progress-indicator-1 {
+ .progress-bar {
+ position: relative;
+ &::after {
+ position: absolute;
+ content: "";
+ border: 4px solid $theme-color;
+ width: 24px;
+ height: 24px;
+ right: -1px;
+ border-radius: 100%;
+ background: #fff;
+ }
+ &.progress-bar-bg--7 {
+ &::after {
+ border: 4px solid #f13f4b;
+ }
+ }
+ }
+ }
+ // Indicator Style 01
+ &.progress-indicator-2 {
+ .progress-bar {
+ position: relative;
+ &::after {
+ position: absolute;
+ content: "";
+ width: 14px;
+ height: 14px;
+ right: -1px;
+ border-radius: 100%;
+ }
+ &.progress-bar-bg--1 {
+ &::after {
+ background: $theme-color;
+ }
+ }
+ }
+ }
+}
+
+
+.progress-height-4 {
+ height: 4px;
+ .progress-bar {
+ height: 4px;
+ }
+}
+
+.progress-height-5 {
+ height: 5px;
+ .progress-bar {
+ height: 5px;
+ }
+}
+
+.progress-height-6 {
+ height: 6px;
+ .progress-bar {
+ height: 6px;
+ }
+}
+
+
+
+
+/*------------------------------------------------
+ // Progress label Style
+ ----------------------------------------------*/
+.single-skill {
+ overflow: hidden;
+ border-radius: 0;
+ width: 500px;
+ margin-top: 36px;
+ p {
+ font-family: $heading-font;
+ color: #666666;
+ font-weight: 300;
+ font-size: 16px;
+ margin-bottom: 17px;
+ text-align: left;
+ }
+ .progress {
+ overflow: visible;
+ border-radius: 0;
+ background: #e9ecef;
+ .progress-bar {
+ position: relative;
+ background: #000000;
+ }
+ }
+}
+.progress {
+ span {
+ &.percent-label {
+ color: #000;
+ }
+ }
+ &.font-medium {
+ span {
+ &.percent-label {
+ color: #ffffff;
+ font-weight: 300;
+ font-family: $heading-font;
+ font-size: 16px;
+ }
+ }
+ }
+
+}
+
+
+
diff --git a/src/assets/scss/elements/_section-title.scss b/src/assets/scss/elements/_section-title.scss
new file mode 100644
index 0000000..19f9491
--- /dev/null
+++ b/src/assets/scss/elements/_section-title.scss
@@ -0,0 +1,42 @@
+/*======================
+ * Section Title
+===========================*/
+
+ h2.section-title {
+ color: #000000;
+ font-size: 45px;
+ font-weight: 600;
+ margin-bottom: 24px;
+ margin-top: -10px;
+}
+
+.section-title-2{
+ h2 {
+ color: #000000;
+ font-size: 45px;
+ font-weight: 600;
+ margin-bottom: 10px;
+ margin-top: -10px;
+ }
+ p {
+ color: #000000;
+ font-size: 18px;
+ letter-spacing: 1px;
+ font-weight: 300;
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/assets/scss/elements/_service.scss b/src/assets/scss/elements/_service.scss
new file mode 100644
index 0000000..6fd072d
--- /dev/null
+++ b/src/assets/scss/elements/_service.scss
@@ -0,0 +1,102 @@
+/* =====================
+Service Area
+========================*/
+
+.service{
+ margin-top: 40px;
+ h4 {
+ font-size: 18px;
+ font-weight: 500;
+ margin-bottom: 11px;
+ a {
+ color: #000000;
+ transition: 0.3s ease-in-out;
+ -webkit-transition: 0.3s ease-in-out;
+ -moz-transition: 0.3s ease-in-out;
+ -ms-transition: 0.3s ease-in-out;
+ -o-transition: 0.3s ease-in-out;
+ }
+ }
+ p {
+ color: #000000;
+ font-size: 14px;
+ line-height: 26px;
+ font-weight: 300;
+ letter-spacing: 1px;
+
+ a{
+ color: #ca3c08;
+ &:hover{
+ color: #ea9629;
+ }
+ }
+ }
+}
+
+
+
+// preview wrapper service
+.service-main-wrapper.prev-service-main-wrapper {
+ &>[class*="col"] {
+
+ .single-feature {
+ .icon {
+ position: relative;
+ &::before{
+ content: "";
+ background-size: contain;
+ background-repeat: no-repeat;
+ }
+ }
+ }
+
+ &:nth-child(1) {
+ .single-feature {
+ .icon {
+ svg{
+ display: none;
+ }
+ &::before{
+ width: 45px;
+ height: 45px;
+ background-image: url(../img/demos/vue.svg);
+ }
+ }
+ }
+ }
+ &:nth-child(2) {
+ .single-feature {
+ .icon {
+ svg{
+ display: none;
+ }
+ &::before{
+ width: 45px;
+ height: 45px;
+ background-image: url(../img/demos/vuetify.svg);
+ }
+ }
+ }
+ }
+ &:nth-child(4) {
+ .single-feature {
+ .icon {
+ svg{
+ display: none;
+ }
+ &::before{
+ width: 45px;
+ height: 34px;
+ background-image: url(../img/demos/sass.svg);
+ }
+ }
+ }
+ }
+ }
+}
+
+
+
+
+
+
diff --git a/src/assets/scss/elements/_story.scss b/src/assets/scss/elements/_story.scss
new file mode 100644
index 0000000..e56be76
--- /dev/null
+++ b/src/assets/scss/elements/_story.scss
@@ -0,0 +1,72 @@
+/* =======================
+ Story Area
+===========================*/
+
+
+.story-content {
+
+ .story-btn {
+ a {
+ display: inline-block;
+ color: #000000;
+ font-weight: 500;
+ position: relative;
+ height: 37px;
+ padding: 0 17px;
+ line-height: 37px;
+ z-index: 1;
+ margin-top: 25px;
+ border: 1px solid rgba(0, 202, 0, 0.486);
+
+ @media #{$sm-layout} {
+ margin-top: 20px;
+ }
+
+ &::before {
+ position: absolute;
+ content: "";
+ background: #003180ab;
+ left: 0;
+ top: 0;
+ width: 50%;
+ height: 100%;
+ z-index: -1;
+ transition: width 1s cubic-bezier(.63, .05, .43, 1.7);
+ }
+
+ &:hover::before {
+ width: 100%;
+ }
+
+ }
+ }
+}
+
+.story-content .content p {
+ color: #222;
+ font-size: 18px;
+ line-height: 30px;
+ letter-spacing: 1px;
+}
+
+.about-page {
+ @media #{$md-layout} {
+ .rn-story-area {
+ flex-wrap: wrap;
+ }
+
+ .w-50 {
+ width: 100%;
+ }
+
+ .rn-story-left {
+ height: 375px;
+ }
+ }
+
+ @media #{$sm-layout} {
+ .rn-story-left.rn-story-bg-wrapper {
+ height: 335px !important;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/style.scss b/src/assets/scss/style.scss
new file mode 100644
index 0000000..5189efd
--- /dev/null
+++ b/src/assets/scss/style.scss
@@ -0,0 +1,88 @@
+/*------------------------------------------------------
+
+ STYLESHEET INDEXING
+
+ Default Styles
+ |
+ | |___ variables
+ | |___ mixins
+ | |___ reset
+ | |___ typography
+ | |___ animations
+ | |___ shortcode
+
+ Elements Styles
+
+ | |___ button
+ | |___ section-title
+ | |___ progress-bar
+ | |___ story
+ | |___ service
+ | |___ award
+ | |___ blog
+ | |___ blog-details
+ | |___ paralax
+ | |___ contact
+ | |___ fullpage
+
+ Template Styles
+
+ | |___ header
+ | |___ navigation
+ | |___ banner
+ | |___ portfolio-details
+ | |___ footer
+ | |___ responsive
+
+ |___ END STYLESHEET INDEXING
+
+-----------------------------------------------------------*/
+
+
+/*--------------------------------------
+ Default Styles
+---------------------------------------*/
+
+@import 'default/variables';
+@import 'default/mixins';
+@import 'default/typography';
+@import 'default/base';
+@import 'default/reset';
+@import 'default/animations';
+@import 'default/shortcode';
+@import 'default/preloader';
+
+/*--------------------------------
+ Elements Styles
+------------------------------------*/
+
+@import 'elements/button';
+@import 'elements/section-title';
+@import 'elements/progress-bar';
+@import 'elements/portfolio';
+@import 'elements/story';
+@import 'elements/service';
+@import 'elements/award';
+@import 'elements/blog';
+@import 'elements/bradcaump';
+@import 'elements/blog-details';
+@import 'elements/paralax';
+@import 'elements/contact';
+@import 'elements/fullpage';
+@import 'elements/extra';
+@import 'elements/hooper-slider';
+@import 'elements/404';
+
+/*----------------------------------
+ Template Styles
+-----------------------------------*/
+
+@import 'template/preview';
+@import 'template/header';
+@import 'template/navigation-drawer';
+@import 'template/banner';
+@import 'template/portfolio-details';
+@import 'template/custom-components';
+@import 'template/multiscroll-home';
+@import 'template/footer';
+@import 'template/responsive';
\ No newline at end of file
diff --git a/src/assets/scss/template/_banner.scss b/src/assets/scss/template/_banner.scss
new file mode 100644
index 0000000..74035c6
--- /dev/null
+++ b/src/assets/scss/template/_banner.scss
@@ -0,0 +1,932 @@
+/*====================
+ * Banner
+ ===================*/
+
+
+/**
+ * Banner
+ */
+
+@mixin clearfix {
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+}
+
+.hide {
+ display: none
+}
+
+*,
+*::after,
+*::before {
+ box-sizing: border-box;
+}
+
+.rv-slider-wrapper {
+ position: relative;
+}
+
+#icons {
+ display: none;
+}
+
+.number-wrapper {
+ position: absolute;
+ height: 100%;
+ width: 12rem;
+ z-index: 2;
+ display: none;
+
+ .number-count {
+ position: relative;
+ display: inline-block;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+
+ .number {
+ position: relative;
+ font-size: 12rem;
+ color: #efefef;
+ margin-left: -5rem;
+ font-weight: 700;
+ }
+}
+
+.nav-wrapper {
+ position: absolute;
+ height: 100%;
+ width: 12rem;
+ padding: 0 4rem;
+ top: 0;
+ right: 0;
+ text-align: center;
+ z-index: 3;
+
+ .nav-arrows {
+ position: relative;
+ display: inline-block;
+ top: 50%;
+ transform: translateY(-50%) translateX(-17px);
+ }
+
+ .nav-up {
+ opacity: 0;
+ }
+
+ .nav-up,
+ .nav-down {
+ width: auto;
+ height: auto;
+ cursor: pointer;
+ position: relative;
+ writing-mode: vertical-lr;
+ -webkit-transform: rotate(180deg);
+ -moz-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ -o-transform: rotate(180deg);
+ transform: rotate(180deg);
+ overflow: hidden;
+ margin: 35px 0;
+
+ .nipa {
+ color: #666666;
+ width: 100%;
+ max-height: 100%;
+ overflow: hidden;
+
+ span {
+ position: relative;
+ display: inline-block;
+ color: #000;
+ -webkit-transition: all .3s;
+ -moz-transition: all .3s;
+ -ms-transition: all .3s;
+ -o-transition: all .3s;
+ transition: all .3s;
+ line-height: 23px;
+
+ &::before {
+ content: attr(data-hover);
+ position: absolute;
+ top: 100%;
+ color: #000;
+ -webkit-transform: translate3d(0, 0, 0);
+ -moz-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ -o-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ top: auto;
+ right: 100%;
+ }
+
+ &:hover {
+ -webkit-transform: translateX(100%);
+ -moz-transform: translateX(100%);
+ -ms-transform: translateX(100%);
+ -o-transform: translateX(100%);
+ transform: translateX(100%);
+ }
+ }
+
+ &:hover {
+ fill: black;
+ }
+ }
+ }
+}
+
+.slider-wrapper {
+ position: relative;
+}
+
+.bg_image {
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center center;
+}
+
+.slider-container {
+ position: relative;
+ height: 100vh;
+ overflow: hidden;
+
+ .slide-content {
+ transition: transform 0.3s linear;
+ transition-delay: 0.2s;
+ // padding: 30px;
+
+ &.txt {
+ padding: 0 160px;
+ height: 100%;
+ display: table;
+ }
+
+ .txt-wrapper {
+ position: relative;
+ display: table-cell;
+ vertical-align: middle;
+
+ span.copy {
+ position: relative;
+ display: block;
+ font-size: 70px;
+ line-height: 1;
+ font-weight: 300;
+ color: #000000;
+ margin-bottom: 39px;
+ }
+
+ h2 {
+ margin: 0;
+ font-size: 70px;
+ line-height: 1;
+ font-weight: 700;
+ margin-bottom: 40px;
+ }
+
+ p.excerpt {
+ margin: 0;
+ color: #2e2e2d;
+ font-size: 18px;
+ line-height: 30px;
+ }
+
+ ul {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ }
+ }
+
+ img {
+ width: 100%;
+ // height: 100%;
+ object-fit: cover;
+ }
+ }
+}
+
+.default-home-slider {
+ .slider-container {
+ overflow: initial;
+ height: 100%;
+ }
+}
+
+ul {
+ &.social-icon {
+ display: flex;
+ margin: 0 -4px;
+ overflow: hidden;
+
+ li {
+ margin: 0 4px;
+ position: relative;
+ overflow: hidden;
+
+ a {
+ width: 36px;
+ display: inline-block;
+ text-align: center;
+ border-radius: 100%;
+ font-size: 14px;
+ color: #717171;
+ font-weight: 400;
+ -webkit-transition: all .3s;
+ -moz-transition: all .3s;
+ -ms-transition: all .3s;
+ -o-transition: all .3s;
+ transition: all .3s;
+ position: relative;
+ line-height: 23px;
+
+ &::before {
+ content: attr(data-hover);
+ position: absolute;
+ top: 100%;
+ color: #000;
+ -webkit-transform: translate3d(0, 0, 0);
+ -moz-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ -o-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ &:hover {
+ -webkit-transform: translateY(-100%);
+ -moz-transform: translateY(-100%);
+ -ms-transform: translateY(-100%);
+ -o-transform: translateY(-100%);
+ transform: translateY(-100%);
+ }
+ }
+ }
+
+ &.icon-position {
+ position: absolute;
+ bottom: 75px;
+ left: -10px;
+ z-index: 22;
+ }
+ }
+}
+
+.circle {
+ position: absolute;
+ width: 36px;
+ height: 35px;
+ top: 0 !important;
+ left: 0 !important;
+ background: transparent;
+ border-radius: 100%;
+ backface-visibility: hidden;
+ visibility: hidden;
+ z-index: 1;
+ border: 1px solid #e3e3e4;
+ -webkit-backface-visibility: hidden;
+}
+
+
+/* =========================
+ Slider Style 5
+===========================*/
+
+.slide--5 {
+ padding: 120px 0;
+ padding-bottom: 130px;
+
+ .content {
+ h1 {
+ color: #000000;
+ font-size: 60px;
+ font-weight: 500;
+ margin-bottom: 65px;
+ }
+
+ p {
+ color: #000000;
+ font-size: 18px;
+ line-height: 30px;
+ font-weight: 300;
+ padding: 0 5%;
+ margin-bottom: 76px;
+ }
+
+ a {
+ display: inline-block;
+ padding: 0 75px;
+ height: 70px;
+ line-height: 70px;
+ border: 2px solid transparent;
+ border-radius: 43px;
+ color: #000000;
+ font-size: 18px;
+ font-weight: 500;
+ text-transform: uppercase;
+ transition: 0.4s ease-in-out;
+
+ &:hover {
+ color: #ffffff;
+ background: #000000;
+ border-color: #000000;
+ }
+ }
+ }
+}
+
+
+/* =========================
+ Paralax Slider
+===========================*/
+
+.paralx-slider {
+ .content {
+ h2 {
+ color: #fff;
+ font-size: 120px;
+ font-weight: 600;
+ }
+
+ p {
+ color: #ffffff;
+ font-size: 24px;
+ line-height: 40px;
+ }
+ }
+}
+
+
+/* =========================
+ Fullscreen Slider
+===========================*/
+
+.fullscreen-slider {
+ .content {
+ position: relative;
+ z-index: 3;
+
+ h2 {
+ color: #000000;
+ font-size: 100px;
+ font-weight: 600;
+ }
+
+ p {
+ color: #000000;
+ font-size: 24px;
+ line-height: 40px;
+ }
+ }
+}
+
+.fullscreen-slider,
+.paralx-slider {
+ .content {
+ a {
+ &.rf-btn {
+ display: inline-block;
+ color: #ffffff;
+ font-weight: 500;
+ position: relative;
+ height: 37px;
+ padding: 0 17px;
+ line-height: 37px;
+ z-index: 1;
+ margin-top: 25px;
+
+ &::after {
+ position: absolute;
+ content: "";
+ background: #222222;
+ left: 0;
+ top: 0;
+ width: 50%;
+ height: 100%;
+ z-index: -1;
+ transition: width 2s cubic-bezier(0.63, 0.05, 0.43, 1.7);
+ }
+
+ &:hover {
+ &::after {
+ width: 100%;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+/* ==================================
+ Slider Slide With Slick
+================================*/
+
+.slider--8 {
+ .content {
+ h2 {
+ color: #ffffff;
+ font-size: 120px;
+ font-weight: 900;
+ }
+
+ p {
+ color: #ffffff;
+ font-size: 24px;
+ line-height: 40px;
+ margin: 0;
+ }
+ }
+}
+
+
+/* ==================================
+ Slider Style 9
+================================*/
+
+.slider-activation-with-slick {
+ position: relative;
+
+ .slick-arrow {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ left: 60px;
+ z-index: 2;
+ background: transparent;
+ color: #d1d2d3;
+ width: 50px;
+ height: 50px;
+ border: 0 none;
+ border-radius: 100%;
+ padding: 0;
+ margin: 0;
+ font-size: 0;
+ line-height: 0;
+ transition: 0.3s ease-in-out;
+ border: 1px solid #d1d2d3;
+ opacity: 0;
+
+ @media only screen and (max-width: 767px) {
+ display: none !important;
+ }
+
+ &:hover {
+ background: #222222;
+ color: #ffffff;
+ border: 1px solid #222222;
+ }
+
+ &.slick-next {
+ left: auto;
+ right: 60px;
+ }
+
+ &.slick-prev:before,
+ &.slick-next:before {
+ content: "";
+ position: absolute;
+ top: 11px;
+ left: 10px;
+ width: 50px;
+ height: 50px;
+ filter: invert(1);
+ }
+
+ &.slick-prev:before {
+ background-image: url(../../assets/img/chevron-left.svg);
+ }
+
+ &.slick-next:before {
+ background-image: url(../../assets/img/chevron-right.svg);
+ left: 12px;
+ }
+
+ }
+
+ .slick-dots {
+ position: absolute;
+ left: 50%;
+ transform: translateX(-50%);
+ bottom: 60px;
+
+ li {
+ display: inline-block;
+ margin: 0 5px;
+
+ button {
+ border: 1px solid #ffffff;
+ width: 5px;
+ height: 5px;
+ padding: 0;
+ border-radius: 50%;
+ text-indent: -9999px;
+ background: #fff;
+
+ &::after {
+ position: absolute;
+ content: "";
+ width: 18px;
+ height: 18px;
+ border: 1px solid transparent;
+ left: -7px;
+ top: -31%;
+ border-radius: 100%;
+ transform: scale(0);
+ transition: .5s;
+ }
+ }
+
+ &.slick-active {
+ button {
+ background-color: #ffffff;
+
+ &::after {
+ border-color: #ffffff;
+ transform: scale(1);
+ }
+ }
+ }
+ }
+ }
+
+ &:hover {
+ .slick-arrow {
+ opacity: 1;
+ }
+ }
+}
+
+// Slick Animation For Slider
+.slick-slide {
+ &.slick-current {
+ .content {
+
+ h2,
+ h3 {
+ &.heading-title {
+ -webkit-animation: 800ms ease-in-out 0s normal none 1 running customOne;
+ animation: 800ms ease-in-out 0s normal none 1 running customOne;
+ }
+ }
+
+ h1 {
+ -webkit-animation: 1000ms ease-in-out 0s normal none 1 running customOne;
+ animation: 1000ms ease-in-out 0s normal none 1 running customOne;
+ }
+
+ p {
+ &.description {
+ -webkit-animation: 1000ms ease-in-out 0s normal none 1 running customOne;
+ animation: 1000ms ease-in-out 0s normal none 1 running customOne;
+ }
+ }
+
+ .slide-btn {
+ -webkit-animation: 1200ms ease-in-out 0s normal none 1 running customOne;
+ animation: 1200ms ease-in-out 0s normal none 1 running customOne;
+ }
+ }
+ }
+}
+
+// Slick Animation For Slider
+.slick-slide {
+ &.slick-current {
+ .slide-content {
+ &.txt {
+ .copy {
+ -webkit-animation: 800ms ease-in-out 0s normal none 1 running customTwo;
+ animation: 800ms ease-in-out 0s normal none 1 running customTwo;
+ color: #003280;
+ }
+
+ .copy2 {
+ -webkit-animation: 1000ms ease-in-out 0s normal none 1 running customTwo;
+ animation: 1000ms ease-in-out 0s normal none 1 running customTwo;
+ font-size: 40px;
+ color: #003280;
+ }
+
+ .copy3 {
+ -webkit-animation: 1200ms ease-in-out 0s normal none 1 running customTwo;
+ animation: 1200ms ease-in-out 0s normal none 1 running customTwo;
+ color: #003280;
+ }
+ }
+ }
+ }
+}
+
+@keyframes customOne {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 50%, 0);
+ transform: translate3d(0, 50%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.customOne {
+ -webkit-animation-name: customOne;
+ animation-name: customOne;
+}
+
+@keyframes customTwo {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 120%, 0);
+ transform: translate3d(0, 120%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.customTwo {
+ -webkit-animation-name: customTwo;
+ animation-name: customTwo;
+}
+
+.slick-dotted.slick-slider {
+ margin-bottom: 0;
+}
+
+
+/**
+ * ----------------------------------------
+ * animation tracking-in-contract
+ * ----------------------------------------
+ */
+
+@-webkit-keyframes tracking-in-contract {
+ 0% {
+ letter-spacing: 1em;
+ opacity: 0;
+ }
+
+ 40% {
+ opacity: 0.6;
+ }
+
+ 100% {
+ letter-spacing: normal;
+ opacity: 1;
+ }
+}
+
+@keyframes tracking-in-contract {
+ 0% {
+ letter-spacing: 1em;
+ opacity: 0;
+ }
+
+ 40% {
+ opacity: 0.6;
+ }
+
+ 100% {
+ letter-spacing: normal;
+ opacity: 1;
+ }
+}
+
+
+/* animation tracking-in-expand-fwd */
+
+@-webkit-keyframes tracking-in-expand-fwd {
+ 0% {
+ letter-spacing: -0.5em;
+ -webkit-transform: translateZ(-700px);
+ transform: translateZ(-700px);
+ opacity: 0;
+ }
+
+ 40% {
+ opacity: 0.6;
+ }
+
+ 100% {
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+ opacity: 1;
+ }
+}
+
+@keyframes tracking-in-expand-fwd {
+ 0% {
+ letter-spacing: -0.5em;
+ -webkit-transform: translateZ(-700px);
+ transform: translateZ(-700px);
+ opacity: 0;
+ }
+
+ 40% {
+ opacity: 0.6;
+ }
+
+ 100% {
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+ opacity: 1;
+ }
+}
+
+
+/* =========================
+ Split Slider
+===========================*/
+
+.myContainer {
+ overflow: hidden;
+ height: 100vh;
+ position: relative;
+ box-shadow: 0px 0px 18px 0px rgba(0, 0, 0, 0.1);
+}
+
+.ms-tableCell {
+ height: 100% !important;
+}
+
+.ms-tableCell img {
+ width: 100%;
+}
+
+
+.slipt-content-inner {
+ &.slider {
+ .content {
+ span {
+ position: relative;
+ display: block;
+ font-size: 70px;
+ line-height: 1;
+ font-weight: 300;
+ color: #000000;
+ margin-bottom: 39px;
+ }
+
+ h2 {
+ margin: 0;
+ font-size: 70px;
+ line-height: 1;
+ font-weight: 700;
+ margin-bottom: 40px;
+ }
+
+ p {
+ margin: 0;
+ color: #2e2e2d;
+ font-size: 18px;
+ line-height: 30px;
+ }
+ }
+ }
+}
+
+
+/* ======================
+ Slider Style 3
+========================*/
+
+.box-layout {
+ padding: 100px;
+ padding-top: 0;
+}
+
+.slider--3 {
+ .content {
+ h3 {
+ color: #000000;
+ font-size: 70px;
+ font-weight: 300;
+ line-height: 100px;
+ margin-bottom: 8px;
+ }
+
+ h1 {
+ color: #000000;
+ font-size: 70px;
+ font-weight: 600;
+ margin-bottom: 40px;
+ }
+
+ p {
+ color: #2e2e2d;
+ font-weight: 300;
+ line-height: 30px;
+ font-size: 18px;
+ margin: 0;
+ }
+ }
+}
+
+.slider--8 .content p {
+ padding: 0 17%;
+}
+
+.black-pagination {
+ .slider-activation-with-slick .slick-dots li button {
+ background: #000;
+ }
+
+ .slider-activation-with-slick .slick-dots li button::after {
+ transition: all .3s cubic-bezier(.645, .045, .355, 1)
+ }
+
+ .slider-activation-with-slick .slick-dots li.slick-active button::after {
+ border-color: #000;
+ }
+
+ .slider-activation-with-slick .slick-dots {
+ bottom: 30px;
+ }
+}
+
+.slider-activation-with-slick .slick-dots {
+ width: auto;
+}
+
+.default-home-slider {
+ .slider-inner {
+ display: flex;
+ height: 100vh;
+
+ @media only screen and (max-width: 1199px) {
+ height: 70vh;
+ }
+
+ @media only screen and (max-width: 767px) {
+ height: 81vh;
+ }
+ }
+
+ .slide-content {
+ flex: 0 0 50%;
+ max-width: 50%;
+
+ @media only screen and (max-width: 479px) {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+ }
+
+ .txt-wrapper {
+ flex: 0 0 50%;
+ max-width: 50%;
+
+ @media only screen and (max-width: 479px) {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+ }
+
+ ul.social-icon.icon-position {
+ @media only screen and (max-width: 991px) {
+ position: static;
+ }
+
+ }
+
+ .slider-container .slide-content {
+ &.txt {
+
+ @media only screen and (max-width: 1199px) {
+ padding: 0 30px;
+ }
+
+ @media only screen and (max-width: 479px) {
+ position: absolute;
+ padding: 0;
+ }
+ }
+
+ .txt-wrapper {
+ @media only screen and (max-width: 767px) {
+ padding: 30px 16px;
+ }
+
+ }
+ }
+}
+
+.header.header.main-default-header {
+ @media only screen and (max-width: 991px) {
+ padding: 0;
+ }
+}
+
+.slider-activation-with-slick .slick-dots li button {
+ border: none;
+}
\ No newline at end of file
diff --git a/src/assets/scss/template/_custom-components.scss b/src/assets/scss/template/_custom-components.scss
new file mode 100644
index 0000000..1bebead
--- /dev/null
+++ b/src/assets/scss/template/_custom-components.scss
@@ -0,0 +1,94 @@
+
+.masonry-wrapper,.rn-portfolio-area {
+ .v-tab {
+ font-size: 18px;
+ font-weight: 400;
+ letter-spacing: 0;
+ min-width: auto;
+ padding: 0;
+ text-transform: capitalize;
+ margin: 0 17px!important;
+ @media #{$sm-layout} {
+ margin: 8px 12px!important;
+ }
+ &::before {
+ display: none;
+ }
+ &:after {
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: 0;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &.v-tab--active {
+ color: #000;
+ &::after {
+ width: 100%;
+ }
+ }
+ }
+ .theme--light.v-tabs > .v-tabs-bar {
+ background-color: transparent;
+ }
+ .theme--light.v-tabs>.v-tabs-bar .v-tab:not(.v-tab--active) {
+ color: #2e2e2d;
+ }
+}
+
+
+.v-tabs-bar {
+ height: 30px;
+}
+
+.v-tabs:not(.v-tabs--vertical):not(.v-tabs--right)>.v-slide-group--is-overflowing.v-tabs-bar--is-mobile:not(.v-slide-group--has-affixes) .v-slide-group__prev {
+ display: none;
+}
+
+.v-slide-group__wrapper .v-slide-group__content {
+ justify-content: center;
+ flex-wrap: wrap;
+ transform: none!important;
+}
+
+.masonry-tabs {
+ .v-slide-group__wrapper .v-slide-group__content {
+ justify-content: start !important;
+ }
+}
+
+@media #{$sm-layout} {
+ .v-slide-group__wrapper .v-slide-group__content {
+ flex: initial;
+ }
+ .theme--light.v-tabs>.v-tabs-bar {
+ height: auto;
+ }
+ .v-tab {
+ margin: 0 10px!important;
+ }
+}
+
+.parallax-header {
+ .hamburger-wrap span {
+ background: #fff;
+ }
+ .menu-toggle span.menu-text {
+ color: #fff;
+ }
+}
+
+.fade-transition-enter-active,
+.fade-transition-leave-active {
+ transition: 1s cubic-bezier(.25, .8, .5, 1)!important
+}
+.content {
+ position: relative;
+ z-index: 1;
+}
\ No newline at end of file
diff --git a/src/assets/scss/template/_footer.scss b/src/assets/scss/template/_footer.scss
new file mode 100644
index 0000000..1736662
--- /dev/null
+++ b/src/assets/scss/template/_footer.scss
@@ -0,0 +1,299 @@
+/*======================
+ * Footer
+=====================================*/
+
+.footer {
+ padding: 0 250px;
+}
+
+.footer-top {
+ padding-top: 110px;
+ .content {
+ span {
+ color: #000000;
+ font-size: 18px;
+ font-weight: 300;
+ letter-spacing: 1px;
+ }
+ h4 {
+ color: #000000;
+ font-size: 45px;
+ margin: 0;
+ font-weight: 500;
+ margin-top: 9px;
+ }
+ }
+}
+
+.footer-widget {
+ @media #{$sm-layout} {
+ margin-top: 15px;
+ }
+ h3 {
+ &.ft-title {
+ color: #000000;
+ font-size: 18px;
+ font-weight: 500;
+ margin-bottom: 24px;
+ @media #{$sm-layout} {
+ margin-bottom: 12px;
+ }
+ }
+ }
+ .content {
+ p {
+ color: #2e2e2d;
+ font-size: 14px;
+ line-height: 24px;
+ letter-spacing: 1px;
+ font-weight: 400;
+ }
+ .address {
+ p {
+ &:first-child{
+ margin-bottom: 6px;
+ }
+ a {
+ color: #2e2e2d;
+ font-size: 14px;
+ line-height: 24px;
+ display: inline-block;
+ position: relative;
+ &::after {
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width .6s cubic-bezier(.25, .8, .25, 1) 0s;
+ transition: width .6s cubic-bezier(.25, .8, .25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &:hover {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+ }
+ }
+ &.address-align-between {
+ display: flex;
+ justify-content: space-between;
+ }
+ }
+}
+
+.footer-widget {
+ ul {
+ &.quick-link {
+ padding: 0;
+ list-style: none;
+ display: flex;
+ margin: 0 -10px;
+ li {
+ margin: 0 10px;
+ a {
+ color: #2e2e2d;
+ font-weight: 400;
+ font-size: 14px;
+ text-transform: capitalize;
+ letter-spacing: 1px;
+ transition: 0.3s ease-in-out;
+ display: inline-block;
+ position: relative;
+ &::after {
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width .6s cubic-bezier(.25, .8, .25, 1) 0s;
+ transition: width .6s cubic-bezier(.25, .8, .25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &:hover {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+
+/* =====================
+ Copyright Area
+==========================*/
+
+.copyright {
+ padding: 40px 250px;
+ border-top: 1px solid #ebebeb;
+ .copyright-inner {
+ p {
+ margin: 0;
+ color: #000000;
+ font-size: 14px;
+ letter-spacing: 1px;
+ font-weight: 400;
+ }
+ }
+}
+
+.copyright-right {
+ .social-icon {
+ position: relative;
+ overflow: hidden;
+ a {
+ width: 36px;
+ display: inline-block;
+ text-align: center;
+ border-radius: 100%;
+ font-size: 14px;
+ color: #717171;
+ font-weight: 400;
+ -webkit-transition: all .3s;
+ -moz-transition: all .3s;
+ -ms-transition: all .3s;
+ -o-transition: all .3s;
+ transition: all .3s;
+ position: relative;
+ line-height: 23px;
+ &::before {
+ content: attr(data-hover);
+ position: absolute;
+ top: 100%;
+ color: #000;
+ -webkit-transform: translate3d(0, 0, 0);
+ -moz-transform: translate3d(0, 0, 0);
+ -ms-transform: translate3d(0, 0, 0);
+ -o-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+ &:hover {
+ -webkit-transform: translateY(-100%);
+ -moz-transform: translateY(-100%);
+ -ms-transform: translateY(-100%);
+ -o-transform: translateY(-100%);
+ transform: translateY(-100%);
+ }
+ }
+ }
+}
+
+.footer-wrapper {
+ position: relative;
+}
+
+
+/* Splite Slider */
+
+.split-address {
+ .address {
+ p {
+ color: #2e2e2d;
+ font-size: 14px;
+ line-height: 24px;
+ letter-spacing: 1px;
+ font-weight: 400;
+ margin: 0;
+ a {
+ color: #2e2e2d;
+ font-size: 14px;
+ line-height: 24px;
+ display: inline-block;
+ position: relative;
+ &::after {
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ &:hover {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+ }
+ }
+}
+
+
+/* Scroll Up */
+
+.scrolltotop {
+ height: 35px;
+ position: relative;
+ float: right;
+ right: -10px;
+ top: 13px;
+ width: 35px;
+ cursor: pointer;
+ opacity: 0.3;
+ -webkit-transition: all 0.2s ease-in-out;
+ -moz-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ -ms-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+}
+
+.scrolltotop:hover {
+ top: 8px;
+ opacity: 1;
+}
+
+.arrow-top {
+ border-bottom: 2px solid #000;
+ border-left: 2px solid #000;
+ height: 10px;
+ transform: rotate(135deg);
+ width: 10px;
+ position: absolute;
+ left: 13.5px;
+ top: 2px;
+}
+
+.arrow-top-line {
+ background-color: #000;
+ height: 35px;
+ left: 50%;
+ position: absolute;
+ top: 3px;
+ width: 2px;
+ -webkit-transition: height 0.2s ease-in-out;
+ -moz-transition: height 0.2s ease-in-out;
+ -o-transition: height 0.2s ease-in-out;
+ -ms-transition: height 0.2s ease-in-out;
+ transition: height 0.2s ease-in-out;
+}
+
+.scrolltotop:hover .arrow-top-line {
+ height: 32px;
+}
+
+footer#contact.rn-left-box-footer {
+ width: calc(100% - 135px);
+ margin-left: 135px;
+}
\ No newline at end of file
diff --git a/src/assets/scss/template/_header.scss b/src/assets/scss/template/_header.scss
new file mode 100644
index 0000000..1bbc388
--- /dev/null
+++ b/src/assets/scss/template/_header.scss
@@ -0,0 +1,609 @@
+/*===================
+ * Header
+=======================*/
+
+.rn-header {
+ // padding: 0 90px;
+ position: relative;
+ z-index: 999;
+ transition: 0.5s;
+
+ &.header-transparent {
+ width: 100%;
+ top: 70px;
+ z-index: 9999;
+ }
+
+ &.rn-header--withmenu {
+ &.header-transparent {
+ width: 100%;
+ top: 30px;
+ z-index: 9999;
+ }
+ }
+}
+
+.text-white .mainmenu-wrap .menu-horizontal li a {
+ color: #ffffff;
+}
+
+.text-white .menu-horizontal li a::after {
+ background: #ffffff;
+}
+
+.text-white .mainmenu-wrap .purchase-btn button,
+.text-white .mainmenu-wrap .purchase-btn a {
+ border: 1px solid #ffffff;
+ color: #ffffff;
+}
+
+
+/*.menu-section{
+ opacity: 0;
+}*/
+
+.menu-section {
+ background-color: #000;
+ height: 100vh;
+ padding-top: 120px;
+ position: absolute;
+ top: -70px;
+ width: 50%;
+ pointer-events: all;
+ right: 0;
+ z-index: 99;
+}
+
+
+nav ul.menu {
+ margin: 0;
+ padding: 0;
+ list-style: none;
+ margin: 2em auto;
+ text-transform: uppercase;
+ font-size: 12px;
+ font-weight: 200;
+ text-align: left;
+ padding: 0 146px;
+}
+
+nav ul.menu a {
+ -moz-transition-duration: 0.5s;
+ -o-transition-duration: 0.5s;
+ -webkit-transition-duration: 0.5s;
+ transition-duration: 0.5s;
+ text-decoration: none;
+ color: #fff !important;
+ line-height: 44px;
+ width: 100%;
+ font-weight: 300;
+ font-size: 27px;
+}
+
+nav ul.menu li {
+ margin: 0;
+ display: block;
+}
+
+nav {
+ .menu {
+ li {
+ a {
+ position: relative;
+ -webkit-transition: color 0ms ease .35s;
+ transition: color 0ms ease .35s;
+ line-height: 70px;
+ font-size: 30px;
+
+ .menu-text {
+ color: rgba(255, 255, 255, 0.8);
+ font-size: 30px;
+ line-height: 70px;
+ font-weight: 500;
+ display: flex;
+ align-items: center;
+ justify-content: flex-start;
+ transition: 0.3s;
+ }
+
+ &:hover .menu-text {
+ color: rgba(255, 255, 255, 1);
+ }
+
+ .menu-arrow {
+ display: flex;
+ position: relative;
+ overflow: hidden;
+ width: 60px;
+ align-items: center;
+ height: 25px;
+ line-height: 0;
+ transition: width .5s cubic-bezier(.50, 0, .20, 1.00);
+ margin-left: 15px;
+ }
+
+ .menu-arrow-icon {
+ position: absolute;
+ right: 0;
+ width: 0;
+ transition: width .5s cubic-bezier(.50, 0, .20, 1.00);
+
+ svg {
+ transition: width .5s cubic-bezier(.50, 0, .20, 1.00);
+ width: 100% !important;
+ }
+ }
+
+ &:hover .menu-arrow-icon {
+ right: auto;
+ left: 0;
+ width: 100%;
+ }
+ }
+ }
+ }
+}
+
+.menu-toggle a span.open {
+ margin-top: 1px;
+ position: relative;
+ display: inline-block;
+}
+
+.menu-toggle.on span.close_menu i {
+ padding-left: 17px;
+ margin-top: 5px;
+ display: inline-block;
+}
+
+
+/* =======================
+ menu-horizontal
+===========================*/
+
+.rn-header--5 {
+ padding: 70px 80px;
+}
+
+.mainmenu-wrap {
+ display: flex;
+ justify-content: flex-end;
+ align-items: center;
+
+ .menu-horizontal {
+ display: flex;
+ justify-content: flex-end;
+ margin: 0 -17px;
+
+ li {
+ margin: 0 17px;
+
+ a {
+ color: #000000;
+ font-size: 14px;
+ line-height: 24px;
+ text-transform: uppercase;
+ font-weight: 500;
+ }
+ }
+ }
+
+ .purchase-btn {
+ padding-left: 23px;
+
+ button,
+ a {
+ display: inline-block;
+ padding: 0 26px;
+ height: 40px;
+ line-height: 39px;
+ border: 1px solid #000000;
+ border-radius: 3px;
+ color: #000000;
+ font-size: 14px;
+ font-weight: 500;
+ text-transform: uppercase;
+ transition: 0.4s ease-in-out;
+
+ &:hover {
+ color: #ffffff;
+ background: #000000;
+ border: 1px solid #000000;
+ }
+ }
+ }
+}
+
+
+/* ======================
+Hesder Static With Menu
+===========================*/
+
+.rn-header--withmenu {
+ // padding: 35px 80px;
+ position: relative;
+}
+
+.menu-horizontal {
+ li {
+ a {
+ display: inline-block;
+ position: relative;
+
+ &::after {
+ width: 0;
+ height: 1px;
+ bottom: 0;
+ position: absolute;
+ left: auto;
+ right: 0;
+ z-index: 1;
+ -webkit-transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ transition: width 0.6s cubic-bezier(0.25, 0.8, 0.25, 1) 0s;
+ background: #000000;
+ content: "";
+ }
+ }
+
+ &:hover {
+ a {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+ }
+}
+
+.bm-header.rn-header {
+ padding-left: 7.5px;
+ padding-right: 7.5px;
+}
+
+div#menu-toggle {
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+}
+
+.menu-toggle-inner {
+ align-items: center;
+ display: flex;
+ cursor: pointer;
+}
+
+.menu-toggle span.menu-text {
+ color: #2e2e2d;
+ font-size: 18px;
+ font-weight: 500;
+ text-transform: uppercase;
+ -webkit-transition: all 0.8s cubic-bezier(0.645, 0.045, 0.355, 1);
+ transition: all 0.8s cubic-bezier(0.645, 0.045, 0.355, 1);
+
+ @media (max-width: 767px) {
+ font-size: 16px;
+ }
+}
+
+.menu-text-wrap {
+ position: relative;
+ overflow: hidden;
+ width: 60px;
+ height: 30px;
+ text-align: center;
+
+ @media (max-width: 767px) {
+ width: 50px;
+ height: 23px;
+ }
+
+}
+
+span.menu-text.close-text,
+span.menu-text.open-text,
+.v-navigation-drawer--open span.menu-text.close-text {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ width: 100%;
+ text-align: center;
+ height: 100%;
+}
+
+span.menu-text.open-text {
+ transform: translateY(-100%);
+}
+
+.open span.menu-text.open-text {
+ transform: translateY(-200%);
+}
+
+.v-navigation-drawer--open .open span.menu-text.close-text {
+ transform: translateY(-100%);
+}
+
+.hamburger-wrap {
+ display: inline-block;
+ padding-left: 15px;
+}
+
+.hamburger-wrap span {
+ width: 30px;
+ height: 2px;
+ top: 0;
+ left: 0;
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 4px;
+ margin-bottom: 4px;
+ display: block;
+ background: #e6e6e6;
+}
+
+#menu-toggle .hamburger-wrap #hamburger span {
+ transition: .5s;
+}
+
+#menu-toggle .hamburger-wrap #hamburger {
+ width: 30px;
+}
+
+.v-navigation-drawer--open .menu-toggle.open span.menu-text {
+ color: #fff;
+}
+
+.v-navigation-drawer--open #menu-toggle.open .hamburger-wrap #hamburger span {
+ background: #fff;
+}
+
+.menu-toggle-inner:hover .hamburger-wrap #hamburger span:nth-child(2) {
+ width: 70%;
+}
+
+#menu-toggle.open .hamburger-wrap #hamburger span:nth-child(1),
+#menu-toggle.open .hamburger-wrap #hamburger span:nth-child(3) {
+ width: 0%;
+}
+
+#menu-toggle.open .hamburger-wrap #hamburger span:nth-child(2) {
+ width: 70%;
+}
+
+.color-white .menu-toggle span.menu-text {
+ color: #fff;
+}
+
+.color-white .hamburger-wrap span {
+ background: #fff;
+}
+
+header.header.rn-header.header-padding-sm {
+ padding-left: 45px;
+ padding-right: 45px;
+ top: 45px;
+}
+
+
+/* ------------------------
+ Custom Animation 01
+----------------------------*/
+
+@-webkit-keyframes headerSlideDown {
+ 0% {
+ margin-top: -100px
+ }
+
+ to {
+ margin-top: 0
+ }
+}
+
+// vuetify js
+.v-toolbar:not(.tab-toolbar) {
+ .v-btn.v-btn.v-size--default:not(.v-btn--icon) {
+ padding: 0;
+ min-width: 0;
+ margin: 0 17px;
+ border: none;
+ }
+
+ .v-btn--text {
+ text-transform: uppercase;
+ letter-spacing: 0;
+ text-indent: 0;
+ transition: 0.3s;
+ }
+
+ .v-toolbar__items {
+ align-items: center;
+ }
+
+ .v-btn:not(.v-btn--icon) {
+ &::before {
+ display: none;
+ }
+ }
+
+ .v-btn.v-btn--icon {
+ border: none;
+ }
+}
+
+.theme--light.v-app-bar.v-toolbar.v-sheet.header-flat {
+ background: #fff;
+
+ @media #{$sm-layout} {
+ height: 80px !important;
+ }
+}
+
+header.header.header-flat {
+ padding: 0 85px;
+
+ @media #{$lg-layout} {
+ padding: 0;
+ }
+
+ @media #{$md-layout} {
+ padding: 0;
+ }
+
+ @media #{$sm-layout} {
+ padding: 0;
+ }
+}
+
+.v-toolbar:not(.tab-toolbar) .v-btn.v-btn.v-size--default:not(.btn-move) {
+ @media #{$sm-layout} {
+ margin: 0;
+ }
+}
+
+.theme--dark.v-navigation-drawer {
+ background-color: #000;
+}
+
+.header-one-page-nav {
+ transition: 0.5s;
+
+ .v-toolbar__content {
+ height: 100% !important;
+ padding: 0 15px;
+ background-color: red;
+
+ @media #{$sm-layout} {
+ padding: 0 0;
+ }
+ }
+
+ .theme--dark.v-app-bar.v-toolbar.v-sheet {
+ background-color: transparent;
+ }
+
+ .v-btn {
+ &::after {
+ position: absolute;
+ content: "";
+ left: auto;
+ right: 0;
+ width: 0;
+ height: 1px;
+ background: #fff;
+ -webkit-transition: 0.3s;
+ -o-transition: 0.3s;
+ transition: 0.3s;
+ bottom: 0;
+ }
+
+ &.v-btn--active,
+ &:hover {
+ &::after {
+ width: 100%;
+ left: 0;
+ right: auto;
+ }
+ }
+ }
+
+ .logo {
+ img {
+ transition: 0.5s;
+ }
+ }
+
+ &.v-app-bar--is-scrolled {
+ background: #fff !important;
+ -webkit-animation: headerSlideDown .95s ease forwards;
+ animation: headerSlideDown .95s ease forwards;
+ box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.1) !important;
+ height: 70px !important;
+ top: 0 !important;
+
+ &.v-toolbar:not(.tab-toolbar) .theme--dark.v-btn {
+ color: $heading-color;
+
+ &::after {
+ background: #000;
+ }
+ }
+
+ .logo-light {
+ display: none;
+ }
+
+ .logo-dark {
+ display: block;
+ }
+
+ .feather-menu {
+ color: $heading-color;
+ }
+
+ &.text-white .mainmenu-wrap .purchase-btn a {
+ border: 1px solid #000;
+ color: #000;
+
+ &:hover {
+ color: #fff;
+ }
+ }
+ }
+
+ &.header-one-page-nav-two {
+ &.transparent.v-toolbar:not(.tab-toolbar) .theme--dark.v-btn {
+ color: $body-color;
+ }
+ }
+
+ &.v-toolbar:not(.tab-toolbar) .v-btn.v-btn.v-size--default:not(.btn-move) {
+ @media only screen and (min-width: 960px) and (max-width: 1200px) {
+ font-size: 14px;
+ margin: 0 10px;
+ }
+ }
+
+ .logo img {
+ @media #{$lg-layout} {
+ max-width: 80%;
+ }
+ }
+
+ .logo-dark {
+ display: none;
+ height: 50px;
+ max-width: 100% !important;
+ }
+}
+
+.menu-toggle.open {
+ position: absolute;
+ top: 65px;
+ right: 85px;
+}
+
+// .rn-header.rn-header--withmenu.header-transparent.v-app-bar--is-scrolled {
+// top: 0;
+// }
+
+.v-toolbar__content,
+.v-toolbar__extension {
+ height: 100% !important;
+ background: linear-gradient(90deg, #90a8e6, #363fb3, #90a8e6);
+ padding: 0 90px;
+ box-shadow: 5px 5px 13px rgba(0, 0, 0, 0.3);
+
+}
+
+@media (max-width: 767px) {
+
+ .v-toolbar__content,
+ .v-toolbar__extension {
+ padding: 0px;
+ }
+}
+
+.v-app-bar__nav-icon.v-btn--icon.v-size--default .v-icon {
+ font-size: 29px;
+}
\ No newline at end of file
diff --git a/src/assets/scss/template/_multiscroll-home.scss b/src/assets/scss/template/_multiscroll-home.scss
new file mode 100644
index 0000000..99874c8
--- /dev/null
+++ b/src/assets/scss/template/_multiscroll-home.scss
@@ -0,0 +1,38 @@
+
+ .hooper .hooper-pagination.is-vertical {
+ right: 56px;
+ @media only screen and (max-width: 575px){
+ right: 0;
+ }
+ }
+ .hooper-pagination.is-vertical .hooper-indicator {
+ position: relative;
+ cursor: pointer;
+ height: 20px;
+ width: 20px;
+ border: 1px solid transparent;
+ border-radius: 50%;
+ transition: all .1s ease-in-out;
+ &::after {
+ content: "";
+ position: absolute;
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ background: rgba(0, 0, 0, 0.15);
+ left: 7px;
+ top: 7px;
+ transition: all 0.5s;
+ }
+ &:hover {
+ &::after {
+ background: #000;
+ }
+ }
+ }
+ .hooper-pagination.is-vertical .hooper-indicator.is-active {
+ border-color: #000;
+ &::after {
+ background: #000;
+ }
+ }
diff --git a/src/assets/scss/template/_navigation-drawer.scss b/src/assets/scss/template/_navigation-drawer.scss
new file mode 100644
index 0000000..8f5c68c
--- /dev/null
+++ b/src/assets/scss/template/_navigation-drawer.scss
@@ -0,0 +1,162 @@
+.custom-navigation-drawer {
+ z-index: 999999;
+ transition-duration: 0.35s;
+ transition-timing-function: ease-in-out;
+
+ .v-list {
+ margin: 2em 0;
+ padding: 0 146px;
+
+ @media only screen and (max-width: 1199px) {
+ padding: 0 30px;
+ }
+
+ .v-list-item {
+ padding: 0;
+ min-height: 70px;
+
+ @media only screen and (max-width: 1599px) {
+ min-height: 50px;
+ }
+
+ @media only screen and (max-width: 767px) {
+ min-height: 40px;
+ }
+
+ &.v-list-item--active {
+ .v-list-item__title {
+ color: #fff;
+
+ &::before {
+ width: 100%;
+ }
+ }
+ }
+
+ .v-list-item__content {
+ padding: 10px 0;
+ }
+ }
+
+ .v-list-item__title {
+ text-transform: uppercase;
+ transition: color 0ms ease .35s;
+ color: rgba(255, 255, 255, 0.8);
+ font-size: 30px;
+ font-weight: 500;
+ transition: 0.3s ease-in-out;
+ position: relative;
+ padding-bottom: 5px;
+
+ &::before {
+ content: "";
+ position: absolute;
+ left: 0;
+ bottom: -0px;
+ width: 0;
+ background: #fff;
+ height: 2px;
+ transition: 0.5s ease-in-out;
+ }
+
+ &:hover {
+ color: #fff;
+ transform: translateX(5px);
+ }
+
+ @media only screen and (max-width: 1599px) {
+ font-size: 18px;
+ }
+
+ @media only screen and (max-width: 767px) {
+ font-size: 14px;
+ }
+ }
+ }
+
+ .v-navigation-drawer__content {
+ background: #5c5abebd;
+ display: table;
+
+ .v-list,
+ .scrollactive-nav {
+ display: table-cell;
+ vertical-align: middle;
+ }
+
+ @media only screen and (min-width: 768px) and (max-width: 1199px) {
+ padding-top: 150px;
+ display: block;
+ }
+
+ @media only screen and (min-width: 280px) and (max-width:767px) {
+ padding-top: 100px;
+ display: block;
+ }
+
+
+ }
+}
+
+.menu-toggle.open {
+ @media only screen and (max-width: 1599px) {
+ top: 30px;
+ right: 30px;
+ }
+}
+
+.v-navigation-drawer--open {
+ .v-navigation-drawer__content {
+ .v-list {
+ .v-list-item:nth-child(1) {
+ animation: 600ms ease-in-out 0s normal none 1 running customThree;
+ }
+
+ .v-list-item:nth-child(2) {
+ animation: 700ms ease-in-out 0s normal none 1 running customThree;
+ }
+
+ .v-list-item:nth-child(3) {
+ animation: 800ms ease-in-out 0s normal none 1 running customThree;
+ }
+
+ .v-list-item:nth-child(4) {
+ animation: 900ms ease-in-out 0s normal none 1 running customThree;
+ }
+
+ .v-list-item:nth-child(5) {
+ animation: 1000ms ease-in-out 0s normal none 1 running customThree;
+ }
+
+ .v-list-item:nth-child(6) {
+ animation: 1100ms ease-in-out 0s normal none 1 running customThree;
+ }
+
+ .v-list-item:nth-child(7) {
+ animation: 1200ms ease-in-out 0s normal none 1 running customThree;
+ }
+
+ .v-list-item:nth-child(8) {
+ animation: 1300ms ease-in-out 0s normal none 1 running customThree;
+ }
+ }
+ }
+}
+
+@keyframes customThree {
+ from {
+ opacity: 0;
+ transform: translateX(-50px);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.customThree {
+ -webkit-animation-name: customThree;
+ animation-name: customThree;
+}
\ No newline at end of file
diff --git a/src/assets/scss/template/_portfolio-details.scss b/src/assets/scss/template/_portfolio-details.scss
new file mode 100644
index 0000000..a6391c3
--- /dev/null
+++ b/src/assets/scss/template/_portfolio-details.scss
@@ -0,0 +1,55 @@
+/* ====================
+ Portfolio Details
+===========================*/
+
+.rf-portfolio-details {
+ .container {
+ max-width: 1450px;
+ }
+}
+
+.rp-port-details-inner {
+ .content {
+ h3 {
+ color: #010101;
+ font-size: 35px;
+ line-height: 48px;
+ font-weight: 500;
+ margin-bottom: 37px;
+ }
+ p {
+ color: #0c0c0c;
+ font-size: 18px;
+ line-height: 32px;
+ font-weight: 300;
+ }
+ .port-info {
+ .port-meta {
+ margin-top: 48px;
+ span {
+ color: #020202;
+ font-size: 18px;
+ font-weight: 400;
+ }
+ p {
+ margin: 0;
+ color: #727276;
+ font-size: 16px;
+ font-weight: 300;
+ }
+ }
+ }
+ }
+}
+
+// service details
+.rf-service-details {
+ .heading-title {
+ font-weight: 500;
+ }
+ ul,
+ ol {
+ list-style: none;
+ margin-bottom: 30px;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/template/_preview.scss b/src/assets/scss/template/_preview.scss
new file mode 100644
index 0000000..158dc47
--- /dev/null
+++ b/src/assets/scss/template/_preview.scss
@@ -0,0 +1,307 @@
+/**************************************
+ Template Styles
+ ***************************************/
+
+
+/**
+ * Header
+ */
+
+header.header {
+ // padding: 20px 85px;
+}
+
+.root-demo {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+
+ @media only screen and (max-width: 991px) {
+ margin-bottom: 70px;
+ }
+
+ @media only screen and (max-width: 767px) {
+ margin-bottom: 30px;
+ }
+}
+
+header.header .logo {
+ max-width: 190px;
+}
+
+.purchase-button a {
+ font-size: 16px;
+ display: inline-block;
+ height: 50px;
+ line-height: 50px;
+ padding: 0 30px;
+ background-color: #000;
+ border: 1px solid #000;
+ border-radius: 3px;
+ text-transform: uppercase;
+ color: #fff !important;
+ font-family: "Poppins", sans-serif;
+
+ &:hover {
+ background: transparent;
+ color: #000 !important;
+ }
+}
+
+
+/**
+ * Navigation
+ */
+
+
+/**
+ * Banner
+ */
+
+.banner-wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+}
+
+.banner-content h1 {}
+
+.banner-content p {
+ width: 65%;
+ margin: auto;
+ font-family: "Poppins", sans-serif;
+ font-size: 20px;
+ line-height: 35px;
+ margin-top: 25px;
+}
+
+.banner-content {
+ padding-top: 20px;
+ width: 70%;
+ margin: auto;
+}
+
+.banner-image-inner {
+ position: relative;
+}
+
+.banner-image {
+ width: 55%;
+ margin: auto;
+}
+
+img.laptop {
+ left: -10%;
+ position: relative;
+}
+
+img.tablet {
+ position: absolute;
+ right: -5%;
+ bottom: 0;
+ max-width: 40%;
+}
+
+img.phone {
+ position: absolute;
+ right: 25%;
+ bottom: 0;
+ max-width: 22%;
+}
+
+
+/**
+ * Demos
+ */
+
+.title-wrapper {
+ padding: 25px 0;
+}
+
+.title-wrapper h2 {
+ font-size: 45px;
+ text-transform: uppercase;
+}
+
+.title-wrapper p {
+ font-size: 18px;
+ font-family: "Poppins", sans-serif;
+}
+
+.demo-item a {
+ display: block;
+}
+
+.demo-item {
+ padding: 25px;
+ padding-bottom: 0;
+ border-radius: 6px;
+ margin: 40px 0;
+}
+
+.demo-item a span {
+ display: block;
+ text-align: center;
+ padding: 20px 0;
+ color: #000;
+ font-size: 18px;
+ font-weight: 500;
+ transition: 0.3s ease-in-out;
+ letter-spacing: .20px;
+}
+
+.demo-item {
+ transition: all 0.4s ease-in-out 0s;
+
+ &:hover {
+ transform: translateY(-10px);
+ }
+}
+
+.demo-item a:hover span {
+ color: #000;
+}
+
+
+/**
+ * Footer
+ */
+
+
+/*# sourceMappingURL=style.css.map */
+
+.title-wrapper h1 {
+ color: #000;
+}
+
+.title-wrapper p {
+ color: #333;
+}
+
+.slide--5 {
+ padding: 120px 0;
+ padding-bottom: 140px;
+}
+
+.slide--5 .content h1 {
+ color: #000000;
+ font-size: 60px;
+ font-weight: 500;
+ margin-bottom: 65px;
+ font-family: "Poppins", sans-serif;
+}
+
+.slide--5 .content p {
+ color: #000000;
+ font-size: 18px;
+ line-height: 30px;
+ font-weight: 300;
+ padding: 0 5%;
+ margin-bottom: 76px;
+ font-family: "Poppins", sans-serif;
+}
+
+.slide--5 {
+ .content {
+ a {
+ display: inline-block;
+ padding: 0 75px;
+ height: 70px;
+ line-height: 70px;
+ border-radius: 43px;
+ font-size: 18px;
+ font-weight: 500;
+ text-transform: uppercase;
+ transition: 0.4s ease-in-out;
+ background: #000;
+ color: #fff !important;
+ border: 1px solid #000;
+
+ &:hover {
+ background: transparent !important;
+ color: #000 !important;
+ }
+ }
+ }
+}
+
+.demo-preview-btn {
+ position: fixed;
+ right: 0;
+ bottom: auto;
+ transform: rotate(90deg) translateY(-20px);
+ top: 200px;
+ z-index: 999999;
+}
+
+.demo-preview-btn a {
+ display: inline-block;
+ padding: 10px 20px;
+ text-transform: uppercase;
+ font-size: 14px;
+ font-weight: 500;
+ color: #fff;
+ background: #000f11;
+}
+
+.demo-item a {
+ display: block;
+ position: relative;
+}
+
+.sticker {
+ position: absolute;
+ right: -35px;
+ top: -20px;
+ background: #d61a6f;
+ background: -moz-linear-gradient(45deg, #d61a6f 0%, #f57722 50%, #ffc20f 100%);
+ background: -webkit-linear-gradient(45deg, #d61a6f 0%, #f57722 50%, #ffc20f 100%);
+ background: linear-gradient(45deg, #d61a6f 0%, #f57722 50%, #ffc20f 100%);
+ padding: 10px 20px 12px;
+ color: #fff;
+ border-radius: 4px;
+ font-size: 18px;
+ line-height: 1;
+}
+
+.demo-wrapper {
+ padding: 110px;
+}
+
+@media (max-width: 767px) {
+ .demo-wrapper {
+ padding: 30px 0;
+ margin-top: 80px;
+ }
+
+ .demo-item {
+ padding: 30px;
+ margin: 20px 0;
+ }
+
+ header.header {
+ padding: 20px 15px;
+ }
+
+ .banner-content {
+ width: 100%;
+ }
+
+ .banner-content h1 {
+ font-size: 22px;
+ line-height: 35px;
+ }
+
+ .purchase-button a {
+ height: auto;
+ line-height: 1.3;
+ padding: 10px 10px;
+ text-align: center;
+ font-size: 14px;
+ }
+
+ .banner-image {
+ width: 90%;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/template/_responsive.scss b/src/assets/scss/template/_responsive.scss
new file mode 100644
index 0000000..683c132
--- /dev/null
+++ b/src/assets/scss/template/_responsive.scss
@@ -0,0 +1,1839 @@
+/* ====================
+Responsive Css
+==========================*/
+
+@media #{$laptop-device} {
+ .slider-container .slide-content.txt {
+ padding: 0 100px;
+ }
+
+ .slider-container .slide-content .txt-wrapper h2 {
+ font-size: 62px;
+ margin-bottom: 10px;
+ color: #003280;
+ }
+
+ .rn-plr {
+ padding-left: 100px;
+ padding-right: 100px;
+ }
+
+ .single-skill {
+ width: 400px;
+ }
+
+ .footer {
+ padding: 0 100px;
+ }
+
+ .copyright {
+ padding: 40px 100px;
+ }
+
+ .number-wrapper .number {
+ font-size: 137px;
+ margin-left: -39px;
+ }
+
+ .portfolio {
+ margin-top: 10px;
+ }
+
+ .story-style--3.story-content {
+ padding: 100px;
+ }
+
+ .box-layout {
+ padding: 60px;
+ padding-top: 0;
+ }
+
+ nav .menu li a .menu-text {
+ font-size: 25px;
+ line-height: 48px;
+ }
+
+ .static-breadcaump {
+ padding: 120px 0 170px 0;
+ }
+}
+
+@media #{$lg-layout} {
+ .slider-container .slide-content.txt {
+ padding: 0 50px;
+ z-index: 99;
+ }
+
+ .rn-plr {
+ padding-left: 50px;
+ padding-right: 50px;
+ }
+
+ .rn-ptb-100 {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .single-skill {
+ width: 374px;
+ }
+
+ .footer {
+ padding: 0 50px;
+ }
+
+ .copyright {
+ padding: 40px 50px;
+ }
+
+ .section-ptb-xl {
+ padding-top: 100px;
+ padding-bottom: 100px;
+ }
+
+ .footer-top {
+ padding-top: 60px;
+ }
+
+ .footer-wrapper.ptb--100 {
+ padding: 50px 0;
+ }
+
+ nav ul.menu {
+ margin: 3em auto;
+ padding: 0 79px;
+ }
+
+ nav ul.menu a {
+ line-height: 38px;
+ font-size: 22px;
+ }
+
+ .slider-container .slide-content .txt-wrapper h2 {
+ font-size: 61px;
+ margin-bottom: 31px;
+ }
+
+ .slider-container .slide-content .txt-wrapper span.copy {
+ font-size: 63px;
+ margin-bottom: 19px;
+ }
+
+ .rn-header {
+ padding: 0 55px;
+ }
+
+ .number-wrapper .number {
+ font-size: 10rem;
+ }
+
+ .footer-widget.footer-left {
+ padding-right: 15px;
+ }
+
+ .portfolio {
+ margin-top: 10px;
+ }
+
+ .portfolio {
+ height: 400px;
+ }
+
+ .header-transparent {
+ top: 40px;
+ }
+
+ .section-title-2 h2 {
+ font-size: 45px;
+ }
+
+ /* Spilit Slider */
+ .myContainer {
+ height: auto;
+ }
+
+ .ms-right .ms-section {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .ms-right .ms-section:nth-child(even) {
+ background: #ffffff;
+ }
+
+ .slipt-content-inner h2.section-title {
+ font-size: 40px;
+ margin-bottom: 14px;
+ }
+
+ .slipt-content-inner .award-content ul.rn-award-list li {
+ margin-top: 26px;
+ }
+
+ .header-transparent.splite-header {
+ position: inherit;
+ padding: 25px 38px !important;
+ top: 0;
+ }
+
+ .slipt-content-inner .award-content ul.rn-award-list li {
+ margin-top: 20px;
+ }
+
+ .slipt-content-inner.slider .content h2 {
+ font-size: 44px;
+ margin-bottom: 29px;
+ }
+
+ .slipt-content-inner.slider .content span {
+ font-size: 53px;
+ margin-bottom: 21px;
+ }
+
+ .slipt-content-inner.slider {
+ padding: 0 50px;
+ }
+
+ .slipt-content-inner.award-content ul.rn-award-list li {
+ margin-top: 20px;
+ }
+
+ .slipt-content-inner .service {
+ margin-top: 15px;
+ }
+
+ /* End Slipt Slider */
+ .box-layout {
+ padding: 50px;
+ padding-top: 0;
+ }
+
+ .slider.slider--3 {
+ padding: 100px 40px;
+ }
+
+ .slider--3 .content h1 {
+ font-size: 47px;
+ margin-bottom: 26px;
+ }
+
+ .slider--3 .content h3 {
+ font-size: 54px;
+ line-height: 88px;
+ }
+
+ .story-style--3.story-content {
+ padding: 100px 50px;
+ }
+
+ .mainmenu-wrap .menu-horizontal li {
+ margin: 0 12px;
+ }
+
+ .rn-header--withmenu {
+ padding: 35px 36px;
+ }
+
+ .slide--5 .content p {
+ margin-bottom: 46px;
+ }
+
+ .slide--5 .content h1 {
+ font-size: 48px;
+ margin-bottom: 34px;
+ }
+
+ .fullscreen-slider .content h2 {
+ color: #000000;
+ font-size: 76px;
+ }
+
+ .paralx-slider .content h2 {
+ font-size: 75px;
+ margin-bottom: 23px;
+ }
+
+ .contact-wrapper {
+ padding: 5px 50px;
+ }
+
+ .contact-address {
+ padding-left: 40px;
+ }
+
+ .rp-port-details-inner .content h3 {
+ font-size: 32px;
+ margin-bottom: 9px;
+ }
+
+ .rp-port-details-inner .content p {
+ font-size: 18px;
+ line-height: 30px;
+ }
+
+ .rp-port-details-inner .content .port-info .port-meta {
+ margin-top: 20px;
+ }
+
+ .search-popup .searchinner {
+ padding: 0 32px;
+ }
+
+ .rn-hil-portfolio div:nth-child(3n+2) {
+ margin-top: 20px;
+ }
+
+ .static-breadcaump {
+ padding: 120px 0 170px 0;
+ }
+}
+
+@media #{$md-layout} {
+ .slider-container .slide-content.txt {
+ padding: 0 50px;
+ z-index: 99;
+ }
+
+ .rn-plr {
+ padding-left: 50px;
+ padding-right: 50px;
+ }
+
+ .rn-ptb-100 {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .single-skill {
+ width: 280px;
+ }
+
+ .footer {
+ padding: 0 20px;
+ }
+
+ .copyright {
+ padding: 40px 20px;
+ }
+
+ .footer-top {
+ padding-top: 100px;
+ }
+
+ h2.section-title {
+ font-size: 30px;
+ }
+
+ .story-content .story-btn a {
+ font-size: 14px;
+ }
+
+ .slider-container .slide-content .txt-wrapper h2 {
+ font-size: 40px;
+ margin-bottom: 23px;
+ }
+
+ .slider-container .slide-content .txt-wrapper span.copy {
+ font-size: 38px;
+ margin-bottom: 19px;
+ }
+
+ .portfolio {
+ height: 470px;
+ }
+
+ .footer-widget.footer-left {
+ padding-right: 30px;
+ }
+
+ .footer-widget ul.quick-link {
+ display: block;
+ margin: 0;
+ }
+
+ .footer-widget.footer-right.quicklink {
+ left: 27px;
+ }
+
+ .footer-widget .content.address-align-between {
+ display: block;
+ }
+
+ .service,
+ .award-content ul.rn-award-list li,
+ .rn-blog {
+ margin-top: 25px;
+ }
+
+ .footer-widget.footer-right.contact {
+ margin-left: -82px;
+ }
+
+ .rn-blog h2 a span {
+ display: block;
+ line-height: 37px;
+ }
+
+ .portfolio {
+ margin-top: 10px;
+ }
+
+ .rn-header {
+ padding: 0 30px;
+ }
+
+ nav ul.menu {
+ margin: 0em auto;
+ padding: 0 30px;
+ }
+
+ nav .menu li a .menu-text {
+ font-size: 23px;
+ line-height: 48px;
+ }
+
+ .slider-container .slide-content .txt-wrapper p.excerpt {
+ font-size: 14px;
+ line-height: 26px;
+ }
+
+ ul.social-icon.icon-position {
+ bottom: 118px;
+ }
+
+ .nav-wrapper {
+ width: 7rem;
+ padding: 0 20px;
+ }
+
+ .number-wrapper .number {
+ margin-left: -1rem;
+ }
+
+ .story-content .content p {
+ font-size: 14px;
+ line-height: 26px;
+ }
+
+ .section-title-2 h2 {
+ font-size: 40px;
+ }
+
+ .section-title-2 p {
+ font-size: 16px;
+ }
+
+ /* Spilit Slider */
+ .myContainer {
+ height: auto;
+ }
+
+ .ms-right .ms-section {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .ms-right .ms-section:nth-child(even) {
+ background: #ffffff;
+ }
+
+ .slipt-content-inner h2.section-title {
+ font-size: 30px;
+ margin-bottom: 14px;
+ }
+
+ .slipt-content-inner .award-content ul.rn-award-list li {
+ margin-top: 26px;
+ }
+
+ .header-transparent.splite-header {
+ position: inherit;
+ padding: 25px 38px !important;
+ top: 0;
+ }
+
+ .slipt-content-inner .award-content ul.rn-award-list li {
+ margin-top: 20px;
+ }
+
+ .slipt-content-inner.slider .content h2 {
+ font-size: 30px;
+ margin-bottom: 15px;
+ }
+
+ .slipt-content-inner.slider .content span {
+ font-size: 53px;
+ margin-bottom: 21px;
+ }
+
+ .slipt-content-inner.slider {
+ padding: 0 50px;
+ }
+
+ .slipt-content-inner.award-content ul.rn-award-list li {
+ margin-top: 20px;
+ }
+
+ .slipt-content-inner .service {
+ margin-top: 15px;
+ }
+
+ .slipt-content-inner .service:last-child {
+ display: none;
+ }
+
+ .slipt-content-inner.award-content ul.rn-award-list li:last-child {
+ display: none;
+ }
+
+ .slipt-content-inner.rn-plr {
+ padding: 0 25px;
+ }
+
+ .slipt-content-inner.slider .content p {
+ font-size: 14px;
+ line-height: 26px;
+ }
+
+ .slipt-content-inner .blog {
+ margin-top: 19px;
+ }
+
+ #multiscroll-nav.right {
+ display: none;
+ }
+
+ .split-address .address:last-child {
+ display: none;
+ }
+
+ /* Mobile Menu */
+ .mainmenu-wrap.formobile-menu {
+ margin-right: 78px;
+ }
+
+ .mean-container .mean-bar {
+ top: -55px;
+ position: absolute;
+ }
+
+ .mean-container .mean-nav {
+ margin-top: 75px;
+ }
+
+ .rn-header--withmenu {
+ padding: 21px 40px;
+ padding-top: 23px;
+ }
+
+ .box-layout {
+ padding: 40px;
+ padding-top: 0;
+ }
+
+ .slider.slider--3 {
+ padding: 100px 40px;
+ }
+
+ .slider--3 .content h1 {
+ font-size: 47px;
+ margin-bottom: 26px;
+ }
+
+ .slider--3 .content h3 {
+ font-size: 54px;
+ line-height: 88px;
+ }
+
+ .story-style--3.story-content {
+ padding: 100px 50px;
+ }
+
+ .slider--3 .content p br {
+ display: none;
+ }
+
+ .slide--5 .content p {
+ font-size: 16px;
+ line-height: 28px;
+ padding: 0;
+ margin-bottom: 40px;
+ }
+
+ .slide--5 .content h1 {
+ font-size: 50px;
+ margin-bottom: 28px;
+ }
+
+ .slide--5 {
+ padding: 91px 0;
+ padding-bottom: 114px;
+ }
+
+ .fullscreen-slider .content h2 {
+ color: #000000;
+ font-size: 50px;
+ }
+
+ .fullscreen-slider .content p {
+ font-size: 18px;
+ line-height: 30px;
+ }
+
+ .rn-header.header-transparent {
+ top: 40px;
+ }
+
+ .rn-header.header-transparent .header-wrapper .row {
+ align-items: center;
+ }
+
+ .paralx-slider .content h2 {
+ font-size: 50px;
+ margin-bottom: 23px;
+ }
+
+ .paralx-slider .content p br {
+ display: none;
+ }
+
+ .paralx-slider .content p {
+ font-size: 18px;
+ line-height: 30px;
+ }
+
+ .slider--8 .content p br {
+ display: none;
+ }
+
+ .slider--8 .content p {
+ font-size: 19px;
+ line-height: 30px;
+ padding: 0 10%;
+ }
+
+ .slider--8 .content h2 {
+ font-size: 80px;
+ }
+
+ .bradcaump_inner h2.bradcaump-title {
+ font-size: 43px;
+ line-height: 33px;
+ }
+
+ .contact-wrapper {
+ padding: 5px 30px;
+ }
+
+ .contact-address {
+ padding-left: 0;
+ }
+
+ .form-wrapper textarea {
+ min-height: 154px;
+ }
+
+ #googleMap {
+ height: 400px;
+ }
+
+ .static-breadcaump {
+ padding: 148px 0 180px 0;
+ }
+
+ .bradcaump_inner p {
+ font-size: 20px;
+ line-height: 34px;
+ padding: 0 5%;
+ margin-top: 30px;
+ }
+
+ .port-single-thumb img {
+ width: 100%;
+ }
+
+ .rp-port-details-inner {
+ padding-top: 34px;
+ }
+
+ .rf-service-details {
+ .mb--80 {
+ margin-bottom: 0;
+ }
+
+ .pr-md-15 {
+ padding-right: 15px !important;
+ }
+ }
+
+ .rp-port-details-inner .content h3 {
+ font-size: 25px;
+ margin-bottom: 9px;
+ }
+
+ .rp-port-details-inner .content p {
+ font-size: 18px;
+ line-height: 30px;
+ }
+
+ .rp-port-details-inner .content .port-info .port-meta {
+ margin-top: 20px;
+ }
+
+ .rp_portfolio_menu-new button {
+ margin: 0 9px;
+ font-size: 15px;
+ }
+
+ .rp_portfolio_menu-new {
+ margin-left: -34px;
+ }
+
+ .search-popup .searchinner {
+ padding: 0 32px;
+ }
+
+ .rn-hil-portfolio div:nth-child(3n+2) {
+ margin-top: 20px;
+ }
+
+ .footer-top {
+ padding-top: 60px;
+ }
+
+ .footer-wrapper.ptb--100 {
+ padding: 50px 0;
+ }
+
+ .menu-section {
+ top: -40px;
+ }
+
+ .footer-widget ul.quick-link li {
+ margin: 0;
+ }
+
+ header.header.rn-header.header-padding-sm {
+ padding-left: 0;
+ padding-right: 0;
+ top: 20px;
+ }
+
+ .text-left.section-ptb-xl {
+ padding-top: 55px;
+ padding-bottom: 55px;
+ }
+
+ .rn-blog-area {
+ flex-wrap: wrap;
+ }
+
+ .rn-blog-right.w-50,
+ .rn-blog-left.w-50 {
+ width: 100% !important;
+ order: 2;
+ }
+
+ .rn-blog-right.w-50 {
+ height: 475px;
+ order: 1;
+ }
+}
+
+@media #{$sm-layout} {
+
+ .rn-blog-right.w-50,
+ .rn-blog-left.w-50 {
+ order: 2;
+ }
+
+ .rn-blog-right.w-50 {
+ order: 1;
+ }
+
+ .theme--dark.v-navigation-drawer {
+ width: 320px !important;
+ }
+
+ .portfolio {
+ height: 450px;
+ }
+
+ .rn-plr {
+ padding-left: 40px;
+ padding-right: 40px;
+ }
+
+ .rn-ptb-100 {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .rn-story-left.w-50.rn-story-bg-wrapper,
+ .w-50.rn-service-bg-wrapper,
+ .w-50.rn-skill-bg-wrapper,
+ .w-50.rn-story-bg-wrappe,
+ .rn-award-left.w-50.rn-images-bg-wrapper,
+ .rn-blog-right.w-50.rn-blog-wrapper {
+ width: 100% !important;
+ height: 375px;
+ }
+
+ .rn-story-area,
+ .rn-skill-area,
+ .rn-service-area,
+ .rn-award-area,
+ .rn-blog-area {
+ flex-wrap: wrap;
+ }
+
+ .rn-story-right.w-50,
+ .rn-award-right.w-50,
+ .rn-service-right.w-50,
+ .rn-blog-left.w-50,
+ .rn-award-left.w-50,
+ .rn-blog-right.w-50 {
+ width: 100% !important;
+ }
+
+ .single-skill {
+ width: 463px;
+ }
+
+ .rn-award-left.w-50,
+ .rn-blog-right.w-50 {
+ height: 375px;
+ }
+
+ h2.section-title {
+ font-size: 40px;
+ }
+
+ .rn-award-area {
+ .rn-award-left.w-50 {
+ order: 2;
+ }
+ }
+
+ .rn-skill-right.w-50 {
+ width: 100%;
+ }
+
+ .rn-skill {
+ width: 100%;
+ }
+
+ .service {
+ margin-top: 25px;
+ }
+
+ .section-title-2 h2 {
+ font-size: 40px;
+ }
+
+ .section-title-2 p {
+ font-size: 16px;
+ }
+
+ .award-content ul.rn-award-list li {
+ margin-top: 25px;
+ }
+
+ .rn-blog h2 {
+ font-size: 16px;
+ line-height: 29px;
+ }
+
+ .footer {
+ padding: 0 30px;
+ }
+
+ .footer-top {
+ padding-top: 60px;
+ }
+
+ .footer-top .content h4 {
+ font-size: 37px;
+ }
+
+ .footer-widget.footer-left {
+ padding-right: 20px;
+ margin-bottom: 40px;
+ }
+
+ .footer-widget.footer-right.quicklink {
+ margin-top: 40px;
+ }
+
+ .copyright {
+ padding: 30px 30px;
+ }
+
+ .copyright .copyright-inner p {
+ text-align: center;
+ }
+
+ .footer-widget .content.address-align-between {
+ display: block;
+ }
+
+ .slider-container .slide-content.txt {
+ padding: 0 29px;
+ }
+
+ .slider-container .slide-content {
+ width: 50%;
+ }
+
+ .slider-container .slide-content .txt-wrapper {
+ padding: 30px;
+ }
+
+ .slider-container .slide-content .txt-wrapper h2 {
+ font-size: 31px;
+ margin-bottom: 19px;
+ }
+
+ .slider-container .slide-content .txt-wrapper span.copy {
+ font-size: 32px;
+ margin-bottom: 17px;
+ }
+
+ .slider-container .slide-content .txt-wrapper p.excerpt {
+ font-size: 14px;
+ line-height: 26px;
+ }
+
+ .number-wrapper .number {
+ font-size: 110px;
+ margin-left: 0;
+ font-weight: 500;
+ }
+
+ nav ul.menu {
+ padding: 0 30px;
+ margin: 0em auto;
+ }
+
+ nav .menu li {
+ margin: 10px 20px;
+ }
+
+ nav .menu a {
+ line-height: 37px;
+ font-size: 18px;
+ }
+
+ .nav-wrapper .nav-up::before,
+ .nav-wrapper .nav-down::before {
+ display: block;
+ border: 1px solid transparent;
+ }
+
+ .nav-wrapper .nav-line {
+ display: none;
+ }
+
+ .nav-wrapper {
+ position: absolute;
+ height: 100%;
+ width: 100px;
+ padding: 0 20px;
+ top: auto;
+ right: 0;
+ text-align: center;
+ z-index: 3;
+ bottom: 0;
+ }
+
+ ul.social-icon li a {
+ width: 29px;
+ height: 29px;
+ }
+
+ .rn-header {
+ padding: 0 13px;
+ }
+
+ .header-transparent {
+ top: 40px;
+ }
+
+ nav .menu li a .menu-text {
+ font-size: 20px;
+ line-height: 46px;
+ letter-spacing: 3px;
+ }
+
+ .slider-container .slide-content.txt {
+ padding: 0;
+ }
+
+ .portfolio {
+ margin-top: 30px;
+ }
+
+ .home-one-skill,
+ .home-one-blog,
+ .home-8-award {
+ background: #efefef;
+
+ }
+
+ .section-title-2 p {
+ margin: 0;
+ }
+
+ .rn-blog {
+ margin-top: 30px;
+ }
+
+ .footer-wrapper {
+ padding: 32px 0 50px;
+ }
+
+ .copyright {
+ padding: 30px 0;
+ }
+
+ .copyright .copyright-inner p {
+ font-size: 13px;
+ }
+
+ .story-content .content p {
+ font-size: 16px;
+ line-height: 26px;
+ }
+
+ .progress {
+ background-color: #ddd;
+ }
+
+ .portfolio .content h4 {
+ font-size: 20px;
+ }
+
+ /* Spilit Slider */
+ .myContainer {
+ height: auto;
+ }
+
+ .ms-right .ms-section {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .ms-right .ms-section:nth-child(even) {
+ background: #ffffff;
+ }
+
+ .slipt-content-inner h2.section-title {
+ font-size: 30px;
+ margin-bottom: 14px;
+ }
+
+ .slipt-content-inner .award-content ul.rn-award-list li {
+ margin-top: 26px;
+ }
+
+ .header-transparent.splite-header {
+ position: inherit;
+ padding: 25px 38px !important;
+ top: 0;
+ }
+
+ .slipt-content-inner .award-content ul.rn-award-list li {
+ margin-top: 20px;
+ }
+
+ .slipt-content-inner.slider .content h2 {
+ font-size: 28px;
+ margin-bottom: 17px;
+ }
+
+ .slipt-content-inner.slider .content span {
+ font-size: 42px;
+ margin-bottom: 14px;
+ }
+
+ .slipt-content-inner.slider {
+ padding: 0 50px;
+ }
+
+ .slipt-content-inner.award-content ul.rn-award-list li {
+ margin-top: 12px;
+ }
+
+ .slipt-content-inner .service {
+ margin-top: 15px;
+ }
+
+ .slipt-content-inner .service p {}
+
+ .slipt-content-inner.award-content ul.rn-award-list li:last-child {
+ display: none;
+ }
+
+ .slipt-content-inner.rn-plr {
+ padding-left: 25px;
+ padding-right: 25px;
+ }
+
+ .slipt-content-inner.slider .content p {
+ font-size: 14px;
+ line-height: 26px;
+ }
+
+ .slipt-content-inner .blog {
+ margin-top: 19px;
+ }
+
+ #multiscroll-nav.right {
+ right: 30px;
+ }
+
+ .slipt-content-inner .story-content .content p {
+ font-size: 14px;
+ }
+
+ .slipt-content-inner.award-content ul.rn-award-list li a {
+ font-size: 16px;
+ }
+
+ .slipt-content-inner .rn-blog h2 {
+ font-size: 16px;
+ line-height: 26px;
+ margin-bottom: 15px;
+ }
+
+ .myContainer {
+ height: auto;
+ }
+
+ .ms-right .ms-section {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .ms-right .ms-section:nth-child(even) {
+ background: #ffffff;
+ }
+
+ #multiscroll-nav.right {
+ right: inherit;
+ bottom: 7px;
+ z-index: 2;
+ text-align: center;
+ width: 100%;
+ }
+
+ #multiscroll-nav.right ul {
+ display: flex;
+ justify-content: center;
+ }
+
+ #multiscroll-nav li {
+ margin: 7px 3px;
+ }
+
+ #multiscroll-nav.right {
+ display: none;
+ }
+
+ .split-address .address+.address {
+ display: none;
+ }
+
+ // End Splite Slider
+ /* Mobile Menu */
+ .mainmenu-wrap.formobile-menu {
+ margin-right: 78px;
+ }
+
+ .mean-container .mean-bar {
+ top: -55px;
+ position: absolute;
+ }
+
+ .mean-container .mean-nav {
+ margin-top: 75px;
+ }
+
+ .rn-header--withmenu {
+ padding: 21px 40px;
+ padding-top: 23px;
+ }
+
+ .box-layout {
+ padding: 0 15px;
+ padding-top: 0;
+ }
+
+ .slider.slider--3 {
+ padding: 100px 40px;
+ }
+
+ .slider--3 .content h1 {
+ font-size: 38px;
+ margin-bottom: 26px;
+ }
+
+ .slider--3 .content h3 {
+ font-size: 48px;
+ line-height: 79px;
+ }
+
+ .story-style--3.story-content {
+ padding: 60px 30px;
+ }
+
+ .slider--3 .content p br {
+ display: none;
+ }
+
+ .rp_portfolio_menu.rp_portfolio_menu3 button {
+ margin: 0 9px;
+ }
+
+ .slide--5 .content p {
+ font-size: 14px;
+ line-height: 28px;
+ padding: 0;
+ margin-bottom: 30px;
+ }
+
+ .slide--5 .content h1 {
+ font-size: 30px;
+ margin-bottom: 28px;
+ line-height: 35px;
+ }
+
+ .slide--5 {
+ padding: 91px 0;
+ padding-bottom: 114px;
+ }
+
+ .slide--5 .content a {
+ padding: 0 30px;
+ height: 48px;
+ line-height: 46px;
+ border-radius: 70px;
+ font-size: 14px;
+ }
+
+ .rp_portfolio_menu5 button {
+ margin: 0 9px;
+ }
+
+ .fullscreen-slider .content h2 {
+ color: #000000;
+ font-size: 50px;
+ }
+
+ .fullscreen-slider .content p {
+ font-size: 18px;
+ line-height: 30px;
+ }
+
+ .rn-header.header-transparent {
+ top: 20px;
+ }
+
+ .rn-header.header-transparent .header-wrapper .row {
+ align-items: center;
+ }
+
+ .fullscreen-slider .content p br {
+ display: none;
+ }
+
+ .swiper-container-vertical>.swiper-pagination-bullets {
+ right: 30px;
+ }
+
+ .paralx-slider .content h2 {
+ font-size: 50px;
+ margin-bottom: 23px;
+ }
+
+ .paralx-slider .content p br {
+ display: none;
+ }
+
+ .paralx-slider .content p {
+ font-size: 18px;
+ line-height: 30px;
+ }
+
+ .slider--8 .content p br {
+ display: none;
+ }
+
+ .slider--8 .content p {
+ font-size: 14px;
+ line-height: 28px;
+ padding: 0 10%;
+ font-weight: 300;
+ }
+
+ .slider--8 .content h2 {
+ font-size: 80px;
+ }
+
+ .slider-activation-with-slick .slider--8.fullscreen {
+ padding-top: 130px;
+ padding-bottom: 113px;
+ }
+
+ .slider-activation-with-slick .slick-dots {
+ bottom: 30px;
+ }
+
+ .slider--8 .content h2 {
+ font-size: 47px;
+ }
+
+ .slider-activation-with-slick .slick-arrow {
+ left: 0;
+ }
+
+ .slider-activation-with-slick .rf-slide-next.slick-arrow {
+ left: auto;
+ right: 0;
+ }
+
+ .bradcaump_inner h2.bradcaump-title {
+ font-size: 30px;
+ line-height: 33px;
+ }
+
+ .bradcaump_inner ul.blog-meta {
+ margin-top: 23px;
+ flex-wrap: wrap;
+ }
+
+ .parallaxContainer {
+ padding: 100px 0 84px;
+ }
+
+ .bradcaump_inner ul.blog-meta li {
+ font-size: 14px;
+ }
+
+ .bradcaump_inner ul.blog-meta li.separator {
+ margin: 0 10px;
+ font-size: 23px;
+ }
+
+ .contact-wrapper {
+ padding: 5px 50px;
+ }
+
+ .form-wrapper {
+ padding: 30px 20px;
+ margin-top: 0;
+ top: 0;
+ margin-bottom: 0;
+ box-shadow: inherit;
+ padding-bottom: 45px;
+ }
+
+ .contact-address {
+ padding-left: 0;
+ }
+
+ .form-wrapper textarea {
+ min-height: 154px;
+ }
+
+ #googleMap {
+ height: 400px;
+ }
+
+ .contact-address {
+ padding-bottom: 60px;
+ }
+
+ .static-breadcaump {
+ padding: 100px 0 100px 0;
+ }
+
+ .bradcaump_inner p {
+ font-size: 16px;
+ line-height: 28px;
+ padding: 0;
+ margin-top: 8px;
+ }
+
+ .port-single-thumb img {
+ width: 100%;
+ }
+
+ .rp-port-details-inner {
+ padding-top: 34px;
+ }
+
+ .rp-port-details-inner .content h3 {
+ font-size: 25px;
+ margin-bottom: 9px;
+ }
+
+ .rp-port-details-inner .content p {
+ font-size: 16px;
+ line-height: 28px;
+ }
+
+ .rp-port-details-inner .content .port-info .port-meta {
+ margin-top: 20px;
+ }
+
+ .rp_portfolio_menu-new {
+ margin-left: 0;
+ padding-bottom: 10px;
+ padding-top: 34px;
+ }
+
+ .new-header {
+ padding-bottom: 20px;
+ }
+
+ .rp_portfolio_menu-new button {
+ margin-bottom: 10px;
+ }
+
+ .search-popup .searchinner {
+ padding: 0 40px;
+ }
+
+ .sidebar--content {
+ width: 70px;
+ }
+
+ .sidebar--page--content {
+ width: calc(100% - 70px);
+ margin-left: 70px;
+ padding: 0 7.5px;
+ }
+
+ footer#contact.rn-left-box-footer {
+ width: calc(100% - 85px);
+ margin-left: 85px;
+ }
+
+ ul.social-icon.hover-icon {
+ left: 26px;
+ }
+
+ .sidebar-social-icon ul.social-icon.hover-icon {
+ left: 26px;
+ }
+
+ .contact-wrapper {
+ padding: 5px 30px;
+ }
+
+ .form-wrapper {
+ padding: 30px 0px;
+ }
+
+ .contact-address h2 {
+ font-size: 20px;
+ }
+
+ header.header.rn-header.header-padding-sm {
+ padding-left: 0;
+ padding-right: 0;
+ top: 20px;
+ }
+
+ .rf-service-details {
+ .mb--80 {
+ margin-bottom: 0;
+ }
+ }
+
+ .default-home-slider .slider-container .slide-content.txt {
+ position: absolute;
+ padding: 0;
+ height: 100%;
+ // height: 700px;
+ }
+
+ .slider-container .slide-content .txt-wrapper {
+ background: rgba(255, 255, 255, 0.9);
+ }
+
+ .default-home-slider .txt-wrapper {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+
+ .slider-container .slide-content {
+ width: 100%;
+ }
+
+ .default-home-slider .slide-content {
+ flex: 0 0 100%;
+ max-width: 100%;
+ }
+}
+
+@media #{$large-mobile} {
+ .footer-widget.footer-left {
+ padding-right: 10px;
+ }
+
+ .footer-widget .content.address-align-between {
+ display: block;
+ }
+
+ .slider-container .slide-content .txt-wrapper h2 {
+ font-size: 34px;
+ }
+
+ .slider-container .slide-content .txt-wrapper h2 {
+ font-size: 40px;
+ }
+
+ nav ul.menu {
+ padding: 0 16px 0 25px;
+ margin: 0em auto;
+ }
+
+ .single-skill {
+ width: 400px;
+ margin-top: 24px;
+
+ p {
+ line-height: 20px;
+ }
+ }
+
+ .section-title-2 h2,
+ h2.section-title,
+ .footer-top .content h4 {
+ font-size: 30px;
+ }
+
+ .rn-plr {
+ padding: 50px 25px;
+ }
+
+ .rn-service-right .text-left.rn-plr,
+ .blog-content .text-left.rn-plr {
+ padding: 55px 25px 35px;
+ }
+
+ .menu-section {
+ width: 80%;
+ top: -20px;
+ }
+
+ .menu-section {
+ width: 80%;
+ top: -20px;
+ }
+
+ .footer-wrapper {
+ padding: 32px 0 50px;
+ }
+
+ .rn-header--withmenu {
+ padding: 21px 24px;
+ padding-top: 23px;
+ }
+
+ .rn-header--withmenu .logo {
+ text-align: center;
+ }
+
+ .mainmenu-wrap.formobile-menu {
+ margin-right: 0;
+ justify-content: flex-start;
+ }
+
+ .mainmenu-wrap .purchase-btn {
+ padding-left: 0;
+ }
+
+ .slider.slider--3 {
+ padding: 100px 20px;
+ }
+
+ .slider--3 .content h1 {
+ font-size: 34px;
+ margin-bottom: 23px;
+ }
+
+ .slider--3 .content h3 {
+ font-size: 40px;
+ line-height: 63px;
+ }
+
+ .slider--3 .content p {
+ line-height: 28px;
+ font-size: 16px;
+ }
+
+ .slide--5 {
+ padding: 55px 0;
+ padding-bottom: 83px;
+ }
+
+ .paralx-slider .content h2 {
+ font-size: 36px;
+ margin-bottom: 16px;
+ }
+
+ .paralx-slider .content p {
+ font-size: 14px;
+ line-height: 26px;
+ }
+
+ .rn-header.rn-header--withmenu.header-transparent {
+ top: 20px;
+ }
+
+ .slider--8 .content p {
+ line-height: 26px;
+ padding: 0;
+ }
+
+ .blog-details-wrapper .dropcaps-inner p,
+ .blog-details-wrapper .content p {
+ font-size: 14px;
+ line-height: 28px;
+ margin-bottom: 20px;
+ }
+
+ .bradcaump_inner h2.bradcaump-title {
+ font-size: 30px;
+ line-height: 42px;
+ }
+
+ .parallaxContainer {
+ padding: 75px 0 59px;
+ }
+
+ .blog-details-wrapper .content .bl-feature ul.feature-blog-list {
+ display: block !important;
+ text-align: center;
+ }
+
+ .blog-details-wrapper .content .bl-feature ul.feature-blog-list li {
+ margin-bottom: 30px;
+ }
+
+ .bradcaump_inner h2.bradcaump-title {
+ font-size: 28px;
+ }
+
+ .search-popup .searchinner {
+ padding: 0 10px;
+ }
+
+ .search-popup button {
+ font-size: 14px;
+ }
+
+ .search-popup .searchinner .searchform input {
+ font-size: 12px;
+ padding-right: 13px;
+ }
+
+ .service h4 {
+ font-size: 14px;
+ }
+
+ .story-content .content p {
+ font-size: 14px;
+ line-height: 24px;
+ }
+
+ .rn-hil-portfolio div:nth-child(3n+2) {
+ margin-top: 0;
+ }
+
+ .section-title-2 h2,
+ h2.section-title,
+ .footer-top .content h4 {
+ font-size: 20px;
+ }
+
+ .award-content ul.rn-award-list li a {
+ font-size: 14px;
+ }
+
+ .footer {
+ padding: 0 15px;
+ }
+
+ .story-content .story-btn a {
+ font-size: 12px;
+ height: 30px;
+ line-height: 30px;
+ }
+
+ .swiper-container .fullscreen {
+ width: auto;
+ }
+
+ header.header.rn-header.header-padding-sm {
+ padding-left: 0;
+ padding-right: 0;
+ top: 20px;
+ }
+}
+
+@media #{$small-mobile} {
+ h2.section-title {
+ font-size: 20px;
+ margin-bottom: 20px;
+ }
+
+ .story-content .story-btn a {
+ font-size: 12px;
+ height: 30px;
+ line-height: 30px;
+ }
+
+ .service h4 {
+ font-size: 14px;
+ }
+
+ .story-content .content p {
+ font-size: 14px;
+ line-height: 24px;
+ }
+
+ .footer-widget.footer-left {
+ padding-right: 2px;
+ }
+
+ .single-skill {
+ max-width: 100%;
+ }
+
+ .number-wrapper,
+ .nav-wrapper {
+ display: none;
+ }
+
+ .slider-container .slide-content {
+ width: 100%;
+ }
+
+ .slider-container .slide.active .slide-content.txt {
+ z-index: 22;
+ position: absolute;
+ z-index: 2;
+ }
+
+ .slider-container .slide:nth-child(odd) .img {
+ margin-left: 0;
+ }
+
+ .slider-container .slide-content .txt-wrapper {
+ background: rgba(255, 255, 255, 0.9);
+ }
+
+ nav .menu li a .menu-text {
+ font-size: 14px;
+ line-height: 34px;
+ letter-spacing: 1px;
+ }
+
+ // Splite Slider
+ .slipt-content-inner .rn-blog p {
+ display: none;
+ }
+
+ .slipt-content-inner .rn-blog h2 {
+ font-size: 14px;
+ line-height: 23px;
+ }
+
+ .slipt-content-inner .rn-blog {
+ margin-top: 6px;
+ }
+
+ .slipt-content-inner.award-content ul.rn-award-list li a,
+ .slipt-content-inner.award-content ul.rn-award-list li {
+ font-size: 14px;
+ line-height: 24px;
+ }
+
+ .slipt-content-inner .service h4 {
+ font-size: 15px;
+ margin-bottom: 0;
+ line-height: 27px;
+ }
+
+ .slipt-content-inner.rn-plr {
+ padding: 0 19px;
+ }
+
+ .slipt-content-inner h2.section-title {
+ font-size: 24px;
+ }
+
+ .slipt-content-inner .story-content .story-btn a {
+ padding: 0 9px;
+ font-size: 14px;
+ }
+
+ .myContainer {
+ height: auto;
+ }
+
+ .ms-right .ms-section {
+ padding-top: 50px;
+ padding-bottom: 50px;
+ }
+
+ .ms-right .ms-section:nth-child(even) {
+ background: #ffffff;
+ }
+
+ .fullscreen-slider .content h2 {
+ font-size: 27px;
+ }
+
+ .fullscreen-slider .content p {
+ font-size: 14px;
+ line-height: 28px;
+ }
+
+ .service h4 {
+ font-size: 14px;
+ }
+
+ .story-content .content p {
+ font-size: 14px;
+ line-height: 24px;
+ }
+
+ .rn-hil-portfolio div:nth-child(3n+2) {
+ margin-top: 0;
+ }
+
+ .section-title-2 h2,
+ h2.section-title,
+ .footer-top .content h4 {
+ font-size: 20px;
+ }
+
+ .award-content ul.rn-award-list li a {
+ font-size: 14px;
+ }
+
+ .footer {
+ padding: 0 15px;
+ }
+
+ header.header.rn-header.header-padding-sm {
+ padding-left: 0;
+ padding-right: 0;
+ top: 20px;
+ }
+}
\ No newline at end of file
diff --git a/src/components/DownloadClient.vue b/src/components/DownloadClient.vue
new file mode 100644
index 0000000..7a6692d
--- /dev/null
+++ b/src/components/DownloadClient.vue
@@ -0,0 +1,61 @@
+
+
+
+ 下载客户端
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/components/about/About.vue b/src/components/about/About.vue
new file mode 100644
index 0000000..18fc145
--- /dev/null
+++ b/src/components/about/About.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+ Refreshingly Unique
+ Company About.
+
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration of passages all are in
+ some form.
+
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration of passages all are in
+ some form.
+
+
+ Get Connected
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/awards/Awards.vue b/src/components/awards/Awards.vue
new file mode 100644
index 0000000..5a1f35b
--- /dev/null
+++ b/src/components/awards/Awards.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/footer/Footer.vue b/src/components/footer/Footer.vue
new file mode 100644
index 0000000..5322b2f
--- /dev/null
+++ b/src/components/footer/Footer.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/components/footer/FooterTwo.vue b/src/components/footer/FooterTwo.vue
new file mode 100644
index 0000000..cc23901
--- /dev/null
+++ b/src/components/footer/FooterTwo.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+ ©{{ new Date().getFullYear() }}
+ RainBow . All Rights Reserved.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/header/HeaderFive.vue b/src/components/header/HeaderFive.vue
new file mode 100644
index 0000000..4805511
--- /dev/null
+++ b/src/components/header/HeaderFive.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/header/HeaderFour.vue b/src/components/header/HeaderFour.vue
new file mode 100644
index 0000000..0102bb6
--- /dev/null
+++ b/src/components/header/HeaderFour.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/header/HeaderMultiPageRoute.vue b/src/components/header/HeaderMultiPageRoute.vue
new file mode 100644
index 0000000..908818e
--- /dev/null
+++ b/src/components/header/HeaderMultiPageRoute.vue
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/header/HeaderOne.vue b/src/components/header/HeaderOne.vue
new file mode 100644
index 0000000..e244934
--- /dev/null
+++ b/src/components/header/HeaderOne.vue
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+ 登录后台管理
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/header/HeaderThree.vue b/src/components/header/HeaderThree.vue
new file mode 100644
index 0000000..9237a5a
--- /dev/null
+++ b/src/components/header/HeaderThree.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/header/HeaderTwo.vue b/src/components/header/HeaderTwo.vue
new file mode 100644
index 0000000..0fb4d70
--- /dev/null
+++ b/src/components/header/HeaderTwo.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/multiscroll/Awards.vue b/src/components/multiscroll/Awards.vue
new file mode 100644
index 0000000..9c8c11a
--- /dev/null
+++ b/src/components/multiscroll/Awards.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
diff --git a/src/components/multiscroll/Banner.vue b/src/components/multiscroll/Banner.vue
new file mode 100644
index 0000000..eb1a2ad
--- /dev/null
+++ b/src/components/multiscroll/Banner.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
{{ heroContent.name }}!
+
{{ heroContent.title }}
+
+ {{ heroContent.desc }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/multiscroll/Blog.vue b/src/components/multiscroll/Blog.vue
new file mode 100644
index 0000000..c8d111e
--- /dev/null
+++ b/src/components/multiscroll/Blog.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
Latest News
+
+
+
+
+
+ {{ blog.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/multiscroll/Contact.vue b/src/components/multiscroll/Contact.vue
new file mode 100644
index 0000000..441f087
--- /dev/null
+++ b/src/components/multiscroll/Contact.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
diff --git a/src/components/multiscroll/Services.vue b/src/components/multiscroll/Services.vue
new file mode 100644
index 0000000..5a7d551
--- /dev/null
+++ b/src/components/multiscroll/Services.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
Services
+
+
+
+
+ {{
+ service.title
+ }}
+
+
+ {{ service.desc }}
+
+
+ {{ service.customService }}
+
+
+ Please
+ Contact us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/multiscroll/Story.vue b/src/components/multiscroll/Story.vue
new file mode 100644
index 0000000..8f65a0a
--- /dev/null
+++ b/src/components/multiscroll/Story.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
Our Story
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration in some form.
+
+
+ Vassages of Lorem Ipsum available the majority have suffered
+ alteration.
+
+
+ SEE OUR PORTFOLIO
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/news/News.vue b/src/components/news/News.vue
new file mode 100644
index 0000000..718afb0
--- /dev/null
+++ b/src/components/news/News.vue
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
Latest News
+
+
+
+
+ There are many variations -
+ March 16, 2021
+
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration in majority some form.
+
+
+
+
+
+
+
+ The Lorem Ipsum generators -
+ March 16, 2021
+
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority.
+
+
+
+
+
+
+
+ The Lorem Ipsum generators -
+ March 16, 2021
+
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration in some passages of
+ form.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/portfolio/Portfolio.vue b/src/components/portfolio/Portfolio.vue
new file mode 100644
index 0000000..2405623
--- /dev/null
+++ b/src/components/portfolio/Portfolio.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
{{ content.title }}
+ {{ content.desc }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/portfolio/PortfolioFive.vue b/src/components/portfolio/PortfolioFive.vue
new file mode 100644
index 0000000..fb36c44
--- /dev/null
+++ b/src/components/portfolio/PortfolioFive.vue
@@ -0,0 +1,356 @@
+
+
+
+
+ {{
+ item.name
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.title
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/portfolio/PortfolioFour.vue b/src/components/portfolio/PortfolioFour.vue
new file mode 100644
index 0000000..247104f
--- /dev/null
+++ b/src/components/portfolio/PortfolioFour.vue
@@ -0,0 +1,202 @@
+
+
+
+
+
diff --git a/src/components/portfolio/PortfolioSix.vue b/src/components/portfolio/PortfolioSix.vue
new file mode 100644
index 0000000..306ec02
--- /dev/null
+++ b/src/components/portfolio/PortfolioSix.vue
@@ -0,0 +1,251 @@
+
+
+
+ {{
+ item.name
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.title
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/portfolio/PortfolioThree.vue b/src/components/portfolio/PortfolioThree.vue
new file mode 100644
index 0000000..9a2ad42
--- /dev/null
+++ b/src/components/portfolio/PortfolioThree.vue
@@ -0,0 +1,201 @@
+
+
+
+ {{
+ item.name
+ }}
+
+
+
+
+
+
+
+
+
+
{{ item.title }}
+ {{ item.desc }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/portfolio/PortfolioTwo.vue b/src/components/portfolio/PortfolioTwo.vue
new file mode 100644
index 0000000..2f72c45
--- /dev/null
+++ b/src/components/portfolio/PortfolioTwo.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
{{ content.title }}
+ {{ content.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/service/Service.vue b/src/components/service/Service.vue
new file mode 100644
index 0000000..0cb6d4a
--- /dev/null
+++ b/src/components/service/Service.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
核心功能
+
+
+
+
+
+ 数据爬取
+
+
支持全球范围TikTok主播数据爬取,多维度筛选(金币数、粉丝数、直播间人数等)。
+
+
+
+
+
+
+
+ 数据可视化
+
+
查看近七天主播数据图表,掌握主播成长趋势。
+
+
+
+
+
+
+
+ 后台管理
+
+
+
+ 支持公司、代理、员工多级账号管理,高效分配任务,提升团队协作效率。
+
+
+
+
+
+
+
+
+ 是否需要定制服务?
+
+
+
+
+ 请 联系我们
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/skill/Skills.vue b/src/components/skill/Skills.vue
new file mode 100644
index 0000000..d5c94e1
--- /dev/null
+++ b/src/components/skill/Skills.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
diff --git a/src/components/slider/SliderFour.vue b/src/components/slider/SliderFour.vue
new file mode 100644
index 0000000..fcffa61
--- /dev/null
+++ b/src/components/slider/SliderFour.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
{{ slider.subTitle }}
+
{{ slider.title }}
+
+ {{ slider.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/slider/SliderOne.vue b/src/components/slider/SliderOne.vue
new file mode 100644
index 0000000..4e8f29e
--- /dev/null
+++ b/src/components/slider/SliderOne.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
{{ slider.title }}
+
+ {{ slider.desc }}
+
+
+ Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/slider/SliderThree.vue b/src/components/slider/SliderThree.vue
new file mode 100644
index 0000000..63d2bb0
--- /dev/null
+++ b/src/components/slider/SliderThree.vue
@@ -0,0 +1,253 @@
+
+
+
+
+
+
+
+
{{ slider.info }}
+
{{ slider.title }}
+
{{ slider.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/slider/SliderTwo.vue b/src/components/slider/SliderTwo.vue
new file mode 100644
index 0000000..709f774
--- /dev/null
+++ b/src/components/slider/SliderTwo.vue
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
{{ slider.title }}
+
+ {{ slider.desc }}
+
+
+ Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/social/Social.vue b/src/components/social/Social.vue
new file mode 100644
index 0000000..b30e7cd
--- /dev/null
+++ b/src/components/social/Social.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
diff --git a/src/components/tabs/Tabs.vue b/src/components/tabs/Tabs.vue
new file mode 100644
index 0000000..0c00c82
--- /dev/null
+++ b/src/components/tabs/Tabs.vue
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+ {{ item.content }}
+
+
+
+
+
+
+
+
diff --git a/src/main.js b/src/main.js
new file mode 100644
index 0000000..7f16c52
--- /dev/null
+++ b/src/main.js
@@ -0,0 +1,21 @@
+import Vue from 'vue'
+import App from './App.vue'
+import vuetify from './plugins/vuetify';
+import ElementUI from 'element-ui';
+import 'element-ui/lib/theme-chalk/index.css';
+import router from './router/router';
+import VueScrollactive from 'vue-scrollactive';
+import "vue-slick-carousel/dist/vue-slick-carousel.css";
+import "vue-slick-carousel/dist/vue-slick-carousel-theme.css";
+import "hooper/dist/hooper.css";
+import './assets/scss/style.scss'
+
+Vue.config.productionTip = false
+Vue.use(VueScrollactive);
+Vue.use(ElementUI);
+
+new Vue({
+ vuetify,
+ router,
+ render: h => h(App),
+}).$mount('#app')
\ No newline at end of file
diff --git a/src/plugins/vuetify.js b/src/plugins/vuetify.js
new file mode 100644
index 0000000..b41dd0d
--- /dev/null
+++ b/src/plugins/vuetify.js
@@ -0,0 +1,7 @@
+import Vue from 'vue';
+import Vuetify from 'vuetify/lib';
+import '@mdi/font/css/materialdesignicons.css';
+
+Vue.use(Vuetify);
+
+export default new Vuetify({});
\ No newline at end of file
diff --git a/src/router/router.js b/src/router/router.js
new file mode 100644
index 0000000..cae011d
--- /dev/null
+++ b/src/router/router.js
@@ -0,0 +1,211 @@
+import Vue from 'vue'
+import VueRouter from 'vue-router'
+import goTo from 'vuetify/es5/services/goto'
+import Missing from '../views/404.vue'
+// import Demo from '../views/Demo.vue'
+
+Vue.use(VueRouter)
+
+const routes = [
+ // {
+ // path: '/',
+ // component: Demo,
+ // meta: {
+ // title: 'Rainfo || Creative Minimal Portfolio'
+ // }
+ // },
+ {
+ path: '/',
+ name: 'MainDemo',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/MainDemo.vue')
+ },
+ {
+ path: '/freelancer',
+ name: 'Freelancer',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/Freelancer.vue')
+ },
+ {
+ path: '/agency',
+ name: 'Agency',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/Agency.vue')
+ },
+ {
+ path: '/minimal-agency',
+ name: 'MinimalAgency',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/MinimalAgency.vue')
+ },
+ {
+ path: '/creative-portfolio',
+ name: 'CreativePortfolio',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/CreativePortfolio.vue')
+ },
+ {
+ path: '/designer-portfolio',
+ name: 'DesignerPortfolio',
+ meta: {
+ title: 'YOLO助手'
+ },
+
+ component: () =>
+ import('../views/all-home-version/DesignerPortfolio.vue')
+ },
+ {
+ path: '/vertical-portfolio',
+ name: 'VerticalPortfolio',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/VerticalPortfolio.vue')
+ },
+ {
+ path: '/multiscroll-portfolio',
+ name: 'MultiScrollPortfolio',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/MultiScrollPortfolio.vue')
+ },
+ {
+ path: '/parallax-home',
+ name: 'ParallaxHome',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/all-home-version/ParallaxHome.vue')
+ },
+ {
+ path: '/portfolio-details',
+ name: 'PortfolioDetails',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/PortfolioDetails.vue')
+ },
+ {
+ path: '/service-details',
+ name: 'ServiceDetails',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/ServiceDetails.vue')
+ },
+ {
+ path: '/blog-details',
+ name: 'BlogDetails',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/BlogDetails.vue')
+ },
+ {
+ path: '/contact',
+ name: 'Contact',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/Contact.vue')
+ },
+ {
+ path: '/about-us',
+ name: 'AboutUs',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/AboutUs.vue')
+ },
+ {
+ path: '/awards',
+ name: 'Awards',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/Awards.vue')
+ },
+ {
+ path: '/blog',
+ name: 'Blog',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/Blog.vue')
+ },
+ {
+ path: '/portfolio',
+ name: 'Portfolio',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/Portfolio.vue')
+ },
+ {
+ path: '/service',
+ name: 'Service',
+ meta: {
+ title: 'YOLO助手'
+ },
+ component: () =>
+ import('../views/Service.vue')
+ },
+ {
+ path: '*',
+ component: Missing,
+ meta: {
+ title: '404'
+ },
+ }
+]
+
+const router = new VueRouter({
+ mode: 'history',
+ routes,
+ scrollBehavior: (to, from, savedPosition) => {
+ let scrollTo = 0
+
+ if (to.hash) {
+ scrollTo = to.hash
+ } else if (savedPosition) {
+ scrollTo = savedPosition.y
+ }
+
+ return goTo(scrollTo)
+ },
+})
+
+router.beforeEach((to, from, next) => {
+ document.title = to.meta.title
+ next()
+})
+
+
+export default router
\ No newline at end of file
diff --git a/src/views/404.vue b/src/views/404.vue
new file mode 100644
index 0000000..ba92b32
--- /dev/null
+++ b/src/views/404.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
404!
+
Page not found
+
The page you were looking for could not be found.
+
+ Back To Homepage
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/AboutUs.vue b/src/views/AboutUs.vue
new file mode 100644
index 0000000..6bbb6cf
--- /dev/null
+++ b/src/views/AboutUs.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ About Us
+
+
Fresh From The Press Discription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Awards.vue b/src/views/Awards.vue
new file mode 100644
index 0000000..c372ab2
--- /dev/null
+++ b/src/views/Awards.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Awards
+
+
Fresh From The Press Discription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Blog.vue b/src/views/Blog.vue
new file mode 100644
index 0000000..c99ab12
--- /dev/null
+++ b/src/views/Blog.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Blog
+
+
Fresh From The Press Discription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/BlogDetails.vue b/src/views/BlogDetails.vue
new file mode 100644
index 0000000..61a5919
--- /dev/null
+++ b/src/views/BlogDetails.vue
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WEBSITE DEVELOPMENT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ There are many variations of passages of Lorem Ipsum
+ available, but the majority have suffered alteration in some
+ form, by injected humour, looked up one of the more obscure Latin words, consectetur,
+ from a Lorem Ipsum passage, and going through the cites of the
+ word in classical literature, or randomised words which don't look
+ even slightly believable. If you are going to use a passage of
+ Lorem Ipsum.
+
+
+
+
+ Contrary to popular belief, Lorem Ipsum is not simply random
+ text. It has roots in a piece of classical Latin literature
+ from 45 BC, making it over 2000 years old. Richard McClintock,
+ a Latin professor at Hampden-Sydney College in Virginia,
+ looked up one of the more obscure Latin words, consectetur,
+ from a Lorem Ipsum passage, and going through the cites of the
+ word in classical literature,
+
+
+
+ Neque porro quisquam est qui dolorem ipsum quia dolor sit
+ amet,looked up one of the more obscure Latin words, consectetur,
+ from a Lorem Ipsum passage looked up one of the more obscure Latin words
+
+
+
+ There are many variations of passages of Lorem Ipsum
+ available, but the majority have suffered alteration in some
+ form, by injected humour, looked up one of the more obscure Latin words, consectetur,
+ from a Lorem Ipsum passage, and going through the cites of the
+ word in classical literature, or randomised words which don't look
+ even slightly believable. If you are going to use a passage of
+ Lorem Ipsum.
+
+
+ Discovered the undoubtable source. Lorem Ipsum comes from
+ sections 1.10.32 and 1.10.33 of "de Finibus Bonorum et
+ Malorum" (The Extremes of Good and Evil) by Cicero, written in
+ 45 BC. This book is a treatise on the theory of ethics, very
+ popular during the Renaissance. The first line of Lorem Ipsum,
+ "Lorem ipsum dolor sit amet..", comes from a line in section
+ 1.10.32.
+
+
+
+
+
+ Contrary to popular belief, Lorem Ipsum is not simply random
+ text. It has roots in a piece of classical Latin literature
+ from 45 BC, making it over 2000 years old. Richard McClintock,
+ a Latin professor at Hampden-Sydney College in Virginia,
+ looked up one of the more obscure Latin words, consectetur,
+ from a Lorem Ipsum passage, and going through the cites of the
+ word in classical literature,
+
+
+ Contrary to popular belief, Lorem Ipsum is not simply random
+ text. It has roots in a piece of classical Latin literature
+ from 45 BC, making it over 2000 years old. Richard McClintock,
+ a Latin professor at Hampden-Sydney College in Virginia,
+ looked up one of the more obscure Latin words, consectetur,
+ from a Lorem Ipsum passage, and going through the cites of the
+ word in classical literature,The point of using Lorem Ipsum is that it has a more-or-less
+ normal distribution of letters, as opposed to using 'Content
+ here content.
+
+
+ It is a long established fact that a reader will be distracted
+ by the readable content of a page when looking at its layout.
+ The point of using Lorem Ipsum is that it has a more-or-less
+ normal distribution of letters, as opposed to using 'Content
+ here, content here alo.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Contact.vue b/src/views/Contact.vue
new file mode 100644
index 0000000..9bc0569
--- /dev/null
+++ b/src/views/Contact.vue
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contact Us
+
+ Communication can make hard work to easy. We are ready 24
+ hours to help you. If you want, you can send me message
+ without any hesitation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Demo.vue b/src/views/Demo.vue
new file mode 100644
index 0000000..8c75a1f
--- /dev/null
+++ b/src/views/Demo.vue
@@ -0,0 +1,752 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ Rainfo - Minimal Creative Portfolio for
+ Freelancers & Agencies.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Home Demos
+
+ Choose one of styles or cutomize easily your site following your
+ ideas
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Inner Pages
+
+ Choose one of styles or cutomize easily your site following your
+ ideas
+
+
+
+
+
+
+
+
+ {{
+ item.title
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Our Rainfo Features
+
Awesome Feature
+
+
+
+
+
+
+
+
+
+
+
{{ features.title }}
+
+ {{ features.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check out our FAQ section to see if we can help.
+
Do you have any Question
+
+
+
+
+
+
+
+
+
+ What is Rainfo ? How does it work?
+
+
+ Welcome to Rainfo Vue Minimal Creative Portfolio Template
+ Built With VueJS. NO jQuery!. It works too much faster
+ loading speed and you can works too much
+ comfortability.Rainfo create your website so much faster
+ and Well Documented Codes for your customization.
+
+
+
+
+
+
+ How can I run Rainfo vue template?
+
+
+
+ You can run vue easily. First You'll need to have node and
+ npm on your machine. So Please open your command prompt
+ then check your node -v and yarn -v for version. Goes To
+ Your your command prompt: then First:
+ yarn install
+
+
+ At Last: yarn run serve . By the following
+ way you can be run your project easily.
+
+
+
+
+
+
+ How can I change my demo page instead of splash page?
+
+
+
+
+ You can be presenting any home page instead of splash
+ page. http://localhost:8000 you can showing any page as
+ your you are like. First you have to go to
+ index.js from router folder
+ then:
+
+
+ First Step (replace your choose demo page): Example:
+ import Demo form '../views/Demo.vue' Instead of
+ '../views/all-home-version/MainDemo.vue'
+
+
+ Example:
+ http://prntscr.com/118n4fb
+
+
+
+
+
+
+
+ How can I get the customer support?
+
+
+
+ After purchasing the product need you any support you can
+ be share with us with sending mail to
+ rainbowit10@gmail.com .
+
+
+
+
+
+
+ Can I get update regularly and For how long do I get
+ updates?
+
+
+
+ Yes, We will get update the Trydo. And you can get it any
+ time. Next time we will comes with more feature. You can
+ be get update for unlimited times. Our dedicated team
+ works for update.
+
+
+
+
+
+
+ Can I change any component as I like?
+
+
+
+ Yes, You can change any component as you like. And By the
+ way you can build your website which you are choose.
+
+
+
+
+
+
+ Can I build a complete project with this template?
+
+
+
+ Yes, Why not. You can build a project and complete website
+ as you are like. More component are available include in
+ this templete. And you can be use it following
+ documentation.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Portfolio.vue b/src/views/Portfolio.vue
new file mode 100644
index 0000000..591eb14
--- /dev/null
+++ b/src/views/Portfolio.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Portfolio
+
+
Fresh From The Press Discription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Our Portfolio
+
My work will prove my quality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/PortfolioDetails.vue b/src/views/PortfolioDetails.vue
new file mode 100644
index 0000000..e783110
--- /dev/null
+++ b/src/views/PortfolioDetails.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Mr. Jharuin joly
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Branding Portfolio Details.
+
+ Etia reprimi no pri, vix no reque dolore di sentiet, vel at
+ wisi mazim feugiat. Ne ali quam apeirian mel, an ese choro
+ regione virtute per. iusto oporter and. Ius vitae parte repudi
+ andae, sed an harum simul dolor, pro reque graec.
+
+
+ Ne ali quam apeirian mel, an ese choro regione virtute per.
+ Etia reprimi no pri, vix no reque dolore di sentiet, vel at
+ wisi mazim feugiat.iusto oporter and. Ius vitae parte repudi
+ andae, sed an harum simul dolor, pro reque graec.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Service.vue b/src/views/Service.vue
new file mode 100644
index 0000000..98ef04d
--- /dev/null
+++ b/src/views/Service.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Services
+
+
Fresh From The Press Discription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/ServiceDetails.vue b/src/views/ServiceDetails.vue
new file mode 100644
index 0000000..e24efa4
--- /dev/null
+++ b/src/views/ServiceDetails.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ WEBSITE DEVELOPMENT
+
+
Fresh From The Press Discription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Etia reprimi no pri, vix no reque dolore di sentiet, vel at
+ wisi mazim feugiat. Ne ali quam apeirian mel, an ese choro
+ regione virtute per. iusto oporter and. Ius vitae parte repudi
+ andae, sed an harum simul dolor, pro reque graec.
+
+
+ Etia reprimi no pri, vix no reque dolore di sentiet, vel at
+ wisi mazim feugiat. Ne ali quam apeirian mel, an ese choro
+ regione virtute per. iusto oporter and.
+
+
+
Proceess of metel
+
+ Yet this above sewed flirted opened ouch
+ Goldfinch realistic sporadic ingenuous
+
+ Abominable this abidin far successfully then like piquan
+
+ Risus commodo viverra
+ Lorem ipsum dolor sit amet, consectetur adipiscing
+
+
+
+
+
+
+
+
+
+
+
+ Etia reprimi no pri, vix no reque dolore di sentiet, vel at
+ wisi mazim feugiat. Ne ali quam apeirian mel, an ese choro
+ regione virtute per. iusto oporter and. Ius vitae parte repudi
+ andae, sed an harum simul dolor.
+
+
+
Our Working Progress
+
+ Yet this above sewed flirted opened ouch
+ Goldfinch realistic sporadic ingenuous
+
+ Abominable this abidin far successfully then like piquan
+
+
+
+
+ Etia reprimi no pri, vix no reque dolore di sentiet, vel at
+ wisi mazim feugiat. Ne ali quam apeirian mel, an ese choro
+ regione virtute per. iusto oporter and.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/Agency.vue b/src/views/all-home-version/Agency.vue
new file mode 100644
index 0000000..3e1a646
--- /dev/null
+++ b/src/views/all-home-version/Agency.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
Our Portfolio
+
My work will prove my quality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/CreativePortfolio.vue b/src/views/all-home-version/CreativePortfolio.vue
new file mode 100644
index 0000000..f050dd3
--- /dev/null
+++ b/src/views/all-home-version/CreativePortfolio.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
Quality is our beauty.
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration in some form, by
+ injected humour, or randomised words which don't look even
+ slightly believable. If you are going to use a passage of Lorem
+ Ipsum, you need to be sure there.
+
+
Explore More
+
+
+
+
+
+
+
+
+
+
+
+
+
Our Portfolio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/DesignerPortfolio.vue b/src/views/all-home-version/DesignerPortfolio.vue
new file mode 100644
index 0000000..95e5102
--- /dev/null
+++ b/src/views/all-home-version/DesignerPortfolio.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/Freelancer.vue b/src/views/all-home-version/Freelancer.vue
new file mode 100644
index 0000000..e764f1b
--- /dev/null
+++ b/src/views/all-home-version/Freelancer.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
Our Portfolio
+
My work will prove my quality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/MainDemo.vue b/src/views/all-home-version/MainDemo.vue
new file mode 100644
index 0000000..8337a0d
--- /dev/null
+++ b/src/views/all-home-version/MainDemo.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
简介
+
+ YOLO助手是一款专为TikTok主播经纪公司打造的高效管理工具。通过强大的数据爬取和筛选功能,您可以轻松获取全球TikTok主播的详细信息,包括金币数、粉丝数、直播间人数等关键数据
+
+
+ 支持多维度筛选和历史数据查询。无论是寻找潜力主播还是优化签约策略,YOLO助手都能为您提供精准支持。
+
+
+ 查看功能
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/MinimalAgency.vue b/src/views/all-home-version/MinimalAgency.vue
new file mode 100644
index 0000000..4d22160
--- /dev/null
+++ b/src/views/all-home-version/MinimalAgency.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
New Project
+
My work will prove my quality
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/MultiScrollPortfolio.vue b/src/views/all-home-version/MultiScrollPortfolio.vue
new file mode 100644
index 0000000..f55c561
--- /dev/null
+++ b/src/views/all-home-version/MultiScrollPortfolio.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/ParallaxHome.vue b/src/views/all-home-version/ParallaxHome.vue
new file mode 100644
index 0000000..e236cdb
--- /dev/null
+++ b/src/views/all-home-version/ParallaxHome.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
+
+
+
Development
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration.
+
+
Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
UX Research
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration.
+
+
Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Visual Design
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration.
+
+
Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Marketing
+
+ There are many variations of passages of Lorem Ipsum available,
+ but the majority have suffered alteration.
+
+
Contact Us
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/all-home-version/VerticalPortfolio.vue b/src/views/all-home-version/VerticalPortfolio.vue
new file mode 100644
index 0000000..a692956
--- /dev/null
+++ b/src/views/all-home-version/VerticalPortfolio.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ slider.title }}
+
+ {{ slider.desc }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+