commit 62506c830a9364dc0a688bba03ccf719616796c3 Author: phil Date: Sat Oct 19 11:53:15 2024 +0200 first commit diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..105c00f --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.angular/cache +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..2851af6 --- /dev/null +++ b/Containerfile @@ -0,0 +1,7 @@ +FROM docker.io/library/nginx:alpine +MAINTAINER philo email phil.dev@philome.mooo.com + +EXPOSE 80 + +COPY nginx.conf /etc/nginx/nginx.conf +COPY treetrail-app/dist/treetrail/browser /usr/share/nginx/html \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d692ad1 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Front-end for *Tree Trail*, a fun and pedagogic tool to discover the trails and trees around. \ No newline at end of file diff --git a/angular.json b/angular.json new file mode 100644 index 0000000..8fc383d --- /dev/null +++ b/angular.json @@ -0,0 +1,143 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "treetrail": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + }, + "@schematics/angular:application": { + "strict": true + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:application", + "options": { + "outputPath": { + "base": "dist/treetrail" + }, + "index": "src/index.html", + "polyfills": [ + "src/polyfills.ts" + ], + "tsConfig": "tsconfig.app.json", + "inlineStyleLanguage": "scss", + "assets": [ + { + "glob": "**/*", + "input": "src/assets/", + "output": "/assets/" + }, + { + "glob": "favicon.ico", + "input": "src/", + "output": "/" + }, + { + "glob": "**/*", + "input": "src/data/", + "output": "/data/" + }, + { + "glob": "manifest.webmanifest", + "input": "src/", + "output": "/" + } + ], + "styles": [ + "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", + "./node_modules/maplibre-gl/dist/maplibre-gl.css", + "src/styles.scss" + ], + "scripts": [], + "serviceWorker": "ngsw-config.json", + "allowedCommonJsDependencies": [ + "js-untar", + "maplibre-gl" + ], + "browser": "src/main.ts" + }, + "configurations": { + "production": { + "budgets": [ + { + "type": "initial", + "maximumWarning": "3mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "2kb", + "maximumError": "4kb" + } + ], + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "outputHashing": "all" + }, + "development": { + "optimization": false, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true + } + }, + "defaultConfiguration": "production" + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "configurations": { + "production": { + "buildTarget": "treetrail:build:production" + }, + "development": { + "buildTarget": "treetrail:build:development" + } + }, + "defaultConfiguration": "development" + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "buildTarget": "treetrail:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "inlineStyleLanguage": "scss", + "assets": [ + "src/favicon.ico", + "src/assets", + "src/manifest.webmanifest" + ], + "styles": [ + "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css", + "src/styles.scss" + ], + "scripts": [] + } + } + } + } + }, + "cli": { + "analytics": false, + "packageManager": "pnpm" + } +} diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..0559781 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/treetrail'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/ngsw-config.json b/ngsw-config.json new file mode 100644 index 0000000..33aa921 --- /dev/null +++ b/ngsw-config.json @@ -0,0 +1,90 @@ +{ + "$schema": "./node_modules/@angular/service-worker/config/schema.json", + "index": "/index.html", + "assetGroups": [ + { + "name": "app", + "installMode": "prefetch", + "resources": { + "files": [ + "/favicon.ico", + "/index.html", + "/manifest.webmanifest", + "/*.css", + "/*.js" + ] + } + }, + { + "name": "assets", + "installMode": "lazy", + "updateMode": "prefetch", + "resources": { + "files": [ + "/assets/**", + "/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)" + ] + } + } + ], + "dataGroups": [ + { + "name": "api", + "urls": [ + "/v1/**" + ], + "cacheConfig": { + "strategy": "freshness", + "maxSize": 1000, + "maxAge": "7d", + "timeout": "0u" + } + }, + { + "name": "tiles", + "urls": [ + "/tiles/**" + ], + "cacheConfig": { + "strategy": "performance", + "maxSize": 5000, + "maxAge": "14d" + } + }, + { + "name": "plantekey", + "urls": [ + "/plantekey/**" + ], + "cacheConfig": { + "strategy": "performance", + "maxSize": 1000, + "maxAge": "7d" + } + }, + { + "name": "cache", + "urls": [ + "/static/cache/**" + ], + "cacheConfig": { + "strategy": "freshness", + "maxSize": 10000, + "maxAge": "7d", + "timeout": "0u" + } + }, + { + "name": "attachments", + "urls": [ + "/attachment/**" + ], + "cacheConfig": { + "strategy": "freshness", + "maxSize": 10000, + "maxAge": "180d", + "timeout": "0u" + } + } + ] +} diff --git a/openapi-ts.config.ts b/openapi-ts.config.ts new file mode 100644 index 0000000..22c3ba5 --- /dev/null +++ b/openapi-ts.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from '@hey-api/openapi-ts'; + +export default defineConfig({ + input: 'http://127.0.0.1:5002/v1/openapi.json', + output: 'src/app/openapi', + client: 'angular', +}); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..55c3ef2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,14714 @@ +{ + "name": "treetrail", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "treetrail", + "version": "0.0.0", + "dependencies": { + "@angular/animations": "^18.2.6", + "@angular/cdk": "^18.2.6", + "@angular/common": "^18.2.6", + "@angular/compiler": "^18.2.6", + "@angular/core": "^18.2.6", + "@angular/forms": "^18.2.6", + "@angular/material": "18.2.6", + "@angular/platform-browser": "^18.2.6", + "@angular/platform-browser-dynamic": "^18.2.6", + "@angular/pwa": "^18.2.6", + "@angular/router": "^18.2.6", + "@angular/service-worker": "^18.2.6", + "@mapbox/point-geometry": "^0.1.0", + "@maplibre/ngx-maplibre-gl": "^17.4.3", + "@ng-web-apis/common": "^3.0.6", + "@ng-web-apis/geolocation": "3.0.6", + "@turf/bbox": "^6.5.0", + "@turf/bearing": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/nearest-point": "^6.5.0", + "js-untar": "^2.0.0", + "maplibre-gl": "^4.3.2", + "motion-sensors-polyfill": "^0.3.7", + "ngx-image-compress": "^15.1.6", + "ngx-indexed-db": "^17.1.0", + "rxjs": "~7.8.1", + "tslib": "^2.6.2", + "uuid": "^9.0.1", + "zone.js": "^0.14.10" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^18.2.6", + "@angular/cli": "^18.2.6", + "@angular/compiler-cli": "^18.2.6", + "@hey-api/openapi-ts": "^0.45.1", + "@types/geojson": "^7946.0.14", + "@types/jasmine": "~5.1.4", + "@types/motion-sensors-polyfill": "^0.3.4", + "@types/node": "^20.12.7", + "@types/uuid": "^9.0.8", + "fontnik": "^0.7.2", + "jasmine-core": "~5.1.2", + "karma": "~6.4.3", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.1", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "^2.1.0", + "typescript": "~5.4.5" + } + }, + "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, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1802.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.6.tgz", + "integrity": "sha512-oF7cPFdTLxeuvXkK/opSdIxZ1E4LrBbmuytQ/nCoAGOaKBWdqvwagRZ6jVhaI0Gwu48rkcV7Zhesg/ESNnROdw==", + "devOptional": true, + "dependencies": { + "@angular-devkit/core": "18.2.6", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-18.2.6.tgz", + "integrity": "sha512-u12cJZttgs5j7gICHWSmcaTCu0EFXEzKqI8nkYCwq2MtuJlAXiMQSXYuEP9OU3Go4vMAPtQh2kShyOWCX5b4EQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.6", + "@angular-devkit/build-webpack": "0.1802.6", + "@angular-devkit/core": "18.2.6", + "@angular/build": "18.2.6", + "@babel/core": "7.25.2", + "@babel/generator": "7.25.0", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-transform-async-generator-functions": "7.25.0", + "@babel/plugin-transform-async-to-generator": "7.24.7", + "@babel/plugin-transform-runtime": "7.24.7", + "@babel/preset-env": "7.25.3", + "@babel/runtime": "7.25.0", + "@discoveryjs/json-ext": "0.6.1", + "@ngtools/webpack": "18.2.6", + "@vitejs/plugin-basic-ssl": "1.1.0", + "ansi-colors": "4.1.3", + "autoprefixer": "10.4.20", + "babel-loader": "9.1.3", + "browserslist": "^4.21.5", + "copy-webpack-plugin": "12.0.2", + "critters": "0.0.24", + "css-loader": "7.1.2", + "esbuild-wasm": "0.23.0", + "fast-glob": "3.3.2", + "http-proxy-middleware": "3.0.0", + "https-proxy-agent": "7.0.5", + "istanbul-lib-instrument": "6.0.3", + "jsonc-parser": "3.3.1", + "karma-source-map-support": "1.4.0", + "less": "4.2.0", + "less-loader": "12.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.3.1", + "magic-string": "0.30.11", + "mini-css-extract-plugin": "2.9.0", + "mrmime": "2.0.0", + "open": "10.1.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "postcss": "8.4.41", + "postcss-loader": "8.1.1", + "resolve-url-loader": "5.0.0", + "rxjs": "7.8.1", + "sass": "1.77.6", + "sass-loader": "16.0.0", + "semver": "7.6.3", + "source-map-loader": "5.0.0", + "source-map-support": "0.5.21", + "terser": "5.31.6", + "tree-kill": "1.2.2", + "tslib": "2.6.3", + "vite": "5.4.6", + "watchpack": "2.4.1", + "webpack": "5.94.0", + "webpack-dev-middleware": "7.4.2", + "webpack-dev-server": "5.0.4", + "webpack-merge": "6.0.1", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.23.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "@web/test-runner": "^0.18.0", + "browser-sync": "^3.0.2", + "jest": "^29.5.0", + "jest-environment-jsdom": "^29.5.0", + "karma": "^6.3.0", + "ng-packagr": "^18.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "@web/test-runner": { + "optional": true + }, + "browser-sync": { + "optional": true + }, + "jest": { + "optional": true + }, + "jest-environment-jsdom": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/postcss": { + "version": "8.4.41", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz", + "integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1802.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1802.6.tgz", + "integrity": "sha512-JMLcXFaitJplwZMKkqhbYirINCRD6eOPZuIGaIOVynXYGWgvJkLT9t5C2wm9HqSLtp1K7NcYG2Y7PtTVR4krnQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1802.6", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^5.0.2" + } + }, + "node_modules/@angular-devkit/core": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.6.tgz", + "integrity": "sha512-la4CFvs5PcRWSkQ/H7TB5cPZirFVA9GoWk5LzIk8si6VjWBJRm8b3keKJoC9LlNeABRUIR5z0ocYkyQQUhdMfg==", + "dependencies": { + "ajv": "8.17.1", + "ajv-formats": "3.0.1", + "jsonc-parser": "3.3.1", + "picomatch": "4.0.2", + "rxjs": "7.8.1", + "source-map": "0.7.4" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/schematics": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.6.tgz", + "integrity": "sha512-uIttrQ2cQ2PWAFFVPeCoNR8xvs7tPJ2i8gzqsIwYdge107xDC6u9CqfgmBqPDSFpWj+IiC2Jwcm8Z4HYKU4+7A==", + "dependencies": { + "@angular-devkit/core": "18.2.6", + "jsonc-parser": "3.3.1", + "magic-string": "0.30.11", + "ora": "5.4.1", + "rxjs": "7.8.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-18.2.6.tgz", + "integrity": "sha512-vy9wy+Q9beiRxkEO8wNxFQ63AqAujGvk8AUHepxxIT7QNNc512TNKz8uH+feWDPO38Dm2obwYQHMGzs3WO7pUA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.6" + } + }, + "node_modules/@angular/build": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/build/-/build-18.2.6.tgz", + "integrity": "sha512-TQzX6Mi7uXFvmz7+OVl4Za7WawYPcx+B5Ewm6IY/DdMyB9P/Z4tbKb1LO+ynWUXYwm7avXo6XQQ4m5ArDY5F/A==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.3.0", + "@angular-devkit/architect": "0.1802.6", + "@babel/core": "7.25.2", + "@babel/helper-annotate-as-pure": "7.24.7", + "@babel/helper-split-export-declaration": "7.24.7", + "@babel/plugin-syntax-import-attributes": "7.24.7", + "@inquirer/confirm": "3.1.22", + "@vitejs/plugin-basic-ssl": "1.1.0", + "browserslist": "^4.23.0", + "critters": "0.0.24", + "esbuild": "0.23.0", + "fast-glob": "3.3.2", + "https-proxy-agent": "7.0.5", + "listr2": "8.2.4", + "lmdb": "3.0.13", + "magic-string": "0.30.11", + "mrmime": "2.0.0", + "parse5-html-rewriting-stream": "7.0.0", + "picomatch": "4.0.2", + "piscina": "4.6.1", + "rollup": "4.22.4", + "sass": "1.77.6", + "semver": "7.6.3", + "vite": "5.4.6", + "watchpack": "2.4.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "@angular/localize": "^18.0.0", + "@angular/platform-server": "^18.0.0", + "@angular/service-worker": "^18.0.0", + "less": "^4.2.0", + "postcss": "^8.4.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=5.4 <5.6" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/platform-server": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "less": { + "optional": true + }, + "postcss": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular/build/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/cdk": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-18.2.6.tgz", + "integrity": "sha512-Gfq/iv4zhlKYpdQkDaBRwxI71NHNUHM1Cs1XhnZ0/oFct5HXvSv1RHRGTKqBJLLACaAPzZKXJ/UglLoyO5CNiQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^7.1.2" + }, + "peerDependencies": { + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-18.2.6.tgz", + "integrity": "sha512-tdXsnV/w+Rgu8q0zFsLU5L9ImTVqrTol1vppHaQkJ/vuoHy+s8ZEbBqhVrO/ffosNb2xseUybGYvqMS4zkNQjg==", + "devOptional": true, + "dependencies": { + "@angular-devkit/architect": "0.1802.6", + "@angular-devkit/core": "18.2.6", + "@angular-devkit/schematics": "18.2.6", + "@inquirer/prompts": "5.3.8", + "@listr2/prompt-adapter-inquirer": "2.0.15", + "@schematics/angular": "18.2.6", + "@yarnpkg/lockfile": "1.1.0", + "ini": "4.1.3", + "jsonc-parser": "3.3.1", + "listr2": "8.2.4", + "npm-package-arg": "11.0.3", + "npm-pick-manifest": "9.1.0", + "pacote": "18.0.6", + "resolve": "1.22.8", + "semver": "7.6.3", + "symbol-observable": "4.0.0", + "yargs": "17.7.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "devOptional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@angular/common": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.6.tgz", + "integrity": "sha512-89793ow+wrI1c7C6kyMbnweLNIZHzXthosxAEjipRZGBrqBYjvTtkE45Fl+5yBa3JO7bAhyGkUnEoyvWtZIAEA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.6", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.6.tgz", + "integrity": "sha512-3tX2/Qw+bZ8XzKitviH8jzNGyY0uohhehhBB57OJOCc+yr4ojy/7SYFnun1lSsRnDztdCE461641X4iQLCQ94w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/core": "18.2.6" + }, + "peerDependenciesMeta": { + "@angular/core": { + "optional": true + } + } + }, + "node_modules/@angular/compiler-cli": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.6.tgz", + "integrity": "sha512-b5x9STfjNiNM/S0D+CnqRP9UOxPtSz1+RlCH5WdOMiW/p8j5p6dBix8YYgTe6Wg3OD7eItD2pnFQKgF/dWiopA==", + "dev": true, + "dependencies": { + "@babel/core": "7.25.2", + "@jridgewell/sourcemap-codec": "^1.4.14", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "reflect-metadata": "^0.2.0", + "semver": "^7.0.0", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/index.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/compiler": "18.2.6", + "typescript": ">=5.4 <5.6" + } + }, + "node_modules/@angular/core": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.6.tgz", + "integrity": "sha512-PjFad2j4YBwLVTw+0Te8CJCa/tV0W8caTHG8aOjj3ObdL6ihGI+FKnwerLc9RVzDFd14BOO4C6/+LbOQAh3Ltw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.14.10" + } + }, + "node_modules/@angular/forms": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.6.tgz", + "integrity": "sha512-quGkUqTxlBaLB8C/RnpfFG57fdmNF5RQ+368N89Ma++2lpIsVAHaGZZn4yOyo3wNYaM2jBxNqaYxOzZNUl5Tig==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "18.2.6", + "@angular/core": "18.2.6", + "@angular/platform-browser": "18.2.6", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/material": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-18.2.6.tgz", + "integrity": "sha512-ObxC/vomSb9QF3vIztuiInQzws+D6u09Dhfx6uNFjtyICqxEFpF7+Qx7QVDWrsuXOgxZTKgacK8f46iV8hWUfg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/animations": "^18.0.0 || ^19.0.0", + "@angular/cdk": "18.2.6", + "@angular/common": "^18.0.0 || ^19.0.0", + "@angular/core": "^18.0.0 || ^19.0.0", + "@angular/forms": "^18.0.0 || ^19.0.0", + "@angular/platform-browser": "^18.0.0 || ^19.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.6.tgz", + "integrity": "sha512-RA8UMiYNLga+QMwpKcDw1357gYPfPyY/rmLeezMak//BbsENFYQOJ4Z6DBOBNiPlHxmBsUJMGaKdlpQhfCROyQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/animations": "18.2.6", + "@angular/common": "18.2.6", + "@angular/core": "18.2.6" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-18.2.6.tgz", + "integrity": "sha512-kGBU3FNc+DF9r33hwHZqiWoZgQbCDdEIucU0NCLCIg0Hw6/Q9Hr2ndjxQI+WynCPg0JeBn34jpouvpeJer3YDQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "18.2.6", + "@angular/compiler": "18.2.6", + "@angular/core": "18.2.6", + "@angular/platform-browser": "18.2.6" + } + }, + "node_modules/@angular/pwa": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/pwa/-/pwa-18.2.6.tgz", + "integrity": "sha512-VJP6aIQW3IvuXvln5KvLgB7wf1PU55eVQ5171oSNU8hYSV12MHtuc6DP35f+Ed1lJMRPyI7+gTKOzDxKAGmUTw==", + "dependencies": { + "@angular-devkit/schematics": "18.2.6", + "@schematics/angular": "18.2.6", + "parse5-html-rewriting-stream": "7.0.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/cli": "^18.0.0" + }, + "peerDependenciesMeta": { + "@angular/cli": { + "optional": true + } + } + }, + "node_modules/@angular/router": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.6.tgz", + "integrity": "sha512-t57Sqja8unHhZlPr+4CWnQacuox2M4p2pMHps+31wt337qH6mKf4jqDmK0dE/MFdRyKjT2a2E/2NwtxXxcWNuw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "18.2.6", + "@angular/core": "18.2.6", + "@angular/platform-browser": "18.2.6", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/service-worker": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-18.2.6.tgz", + "integrity": "sha512-KNqRAunG0yj3jVA/YYKH9wbAe261gAIwKeQsJyeMHGR48H88tSKdcstttNZZ3S6wdhp7tcyUC526Fc4phXnSJw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "bin": { + "ngsw-config": "ngsw-config.js" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0" + }, + "peerDependencies": { + "@angular/common": "18.2.6", + "@angular/core": "18.2.6" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.6.1", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.1.tgz", + "integrity": "sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ==", + "dev": true, + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.4.tgz", + "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.2.tgz", + "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.0", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-module-transforms": "^7.25.2", + "@babel/helpers": "^7.25.0", + "@babel/parser": "^7.25.0", + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.2", + "@babel/types": "^7.25.2", + "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/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.0.tgz", + "integrity": "sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", + "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", + "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/traverse": "^7.25.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", + "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "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.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", + "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", + "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-wrap-function": "^7.25.0", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", + "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", + "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/traverse": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.6.tgz", + "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.6" + }, + "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.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", + "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", + "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "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.0", + "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.0.tgz", + "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "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.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", + "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.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, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "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, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", + "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "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, + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.0.tgz", + "integrity": "sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-remap-async-to-generator": "^7.25.0", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", + "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", + "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", + "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.25.0", + "@babel/traverse": "^7.25.4", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "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.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", + "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", + "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/traverse": "^7.25.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", + "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", + "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.25.0", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "@babel/traverse": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", + "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.25.4", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "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-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", + "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.25.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.3.tgz", + "integrity": "sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.25.2", + "@babel/helper-compilation-targets": "^7.25.2", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.0", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.25.0", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.25.0", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.25.1", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.25.2", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.25.0", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "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/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.0.tgz", + "integrity": "sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.0.tgz", + "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.25.0", + "@babel/types": "^7.25.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz", + "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.25.6", + "@babel/parser": "^7.25.6", + "@babel/template": "^7.25.0", + "@babel/types": "^7.25.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.6.tgz", + "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.25.6", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.1.tgz", + "integrity": "sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==", + "dev": true, + "engines": { + "node": ">=14.17.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@hey-api/openapi-ts": { + "version": "0.45.1", + "resolved": "https://registry.npmjs.org/@hey-api/openapi-ts/-/openapi-ts-0.45.1.tgz", + "integrity": "sha512-TT4YC9SshgruHnr/z47LD945hFhefuD6xSfdt9+fv/sU+shP0nPJhNdyt71oMGTAB9h6nsrjC8z84ZnoAGKHrg==", + "dev": true, + "dependencies": { + "@apidevtools/json-schema-ref-parser": "11.6.1", + "c12": "1.10.0", + "camelcase": "8.0.0", + "commander": "12.0.0", + "handlebars": "4.7.8" + }, + "bin": { + "openapi-ts": "bin/index.cjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "typescript": "^5.x" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-2.5.0.tgz", + "integrity": "sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-3.1.22.tgz", + "integrity": "sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.0.10", + "@inquirer/type": "^1.5.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-9.2.1.tgz", + "integrity": "sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==", + "devOptional": true, + "dependencies": { + "@inquirer/figures": "^1.0.6", + "@inquirer/type": "^2.0.0", + "@types/mute-stream": "^0.0.4", + "@types/node": "^22.5.5", + "@types/wrap-ansi": "^3.0.0", + "ansi-escapes": "^4.3.2", + "cli-width": "^4.1.0", + "mute-stream": "^1.0.0", + "signal-exit": "^4.1.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@inquirer/type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-2.0.0.tgz", + "integrity": "sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==", + "devOptional": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/core/node_modules/@types/node": { + "version": "22.7.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.3.tgz", + "integrity": "sha512-qXKfhXXqGTyBskvWEzJZPUxSslAiLaB6JGP1ic/XTH9ctGgzdgYguuLP1C601aRTSDNlLb0jbKqXjZ48GNraSA==", + "devOptional": true, + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@inquirer/core/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "devOptional": true + }, + "node_modules/@inquirer/editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-2.2.0.tgz", + "integrity": "sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "external-editor": "^3.1.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/expand": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-2.3.0.tgz", + "integrity": "sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.6.tgz", + "integrity": "sha512-yfZzps3Cso2UbM7WlxKwZQh2Hs6plrbjs1QnzQDZhK2DgyCo6D8AaHps9olkNcUFlcYERMqU3uJSp1gmy3s/qQ==", + "devOptional": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-2.3.0.tgz", + "integrity": "sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-1.1.0.tgz", + "integrity": "sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/password": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-2.2.0.tgz", + "integrity": "sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/prompts": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-5.3.8.tgz", + "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", + "devOptional": true, + "dependencies": { + "@inquirer/checkbox": "^2.4.7", + "@inquirer/confirm": "^3.1.22", + "@inquirer/editor": "^2.1.22", + "@inquirer/expand": "^2.1.22", + "@inquirer/input": "^2.2.9", + "@inquirer/number": "^1.0.10", + "@inquirer/password": "^2.1.22", + "@inquirer/rawlist": "^2.2.4", + "@inquirer/search": "^1.0.7", + "@inquirer/select": "^2.4.7" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/rawlist": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-2.3.0.tgz", + "integrity": "sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/search": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-1.1.0.tgz", + "integrity": "sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/select": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-2.5.0.tgz", + "integrity": "sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==", + "devOptional": true, + "dependencies": { + "@inquirer/core": "^9.1.0", + "@inquirer/figures": "^1.0.5", + "@inquirer/type": "^1.5.3", + "ansi-escapes": "^4.3.2", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-1.5.5.tgz", + "integrity": "sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==", + "devOptional": true, + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "devOptional": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "devOptional": true + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "devOptional": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "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, + "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, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "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==" + }, + "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, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true + }, + "node_modules/@jsonjoy.com/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/json-pack": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/json-pack/-/json-pack-1.1.0.tgz", + "integrity": "sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==", + "dev": true, + "dependencies": { + "@jsonjoy.com/base64": "^1.1.1", + "@jsonjoy.com/util": "^1.1.2", + "hyperdyperid": "^1.2.0", + "thingies": "^1.20.0" + }, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@jsonjoy.com/util": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsonjoy.com/util/-/util-1.3.0.tgz", + "integrity": "sha512-Cebt4Vk7k1xHy87kHY7KSPLT77A7Ev7IfOblyLZhtYEhrdQ6fX4EoLq3xOQ3O/DRMEh2ok5nyC180E+ABS8Wmw==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", + "dev": true + }, + "node_modules/@listr2/prompt-adapter-inquirer": { + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@listr2/prompt-adapter-inquirer/-/prompt-adapter-inquirer-2.0.15.tgz", + "integrity": "sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==", + "devOptional": true, + "dependencies": { + "@inquirer/type": "^1.5.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "@inquirer/prompts": ">= 3 < 6" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-3.0.13.tgz", + "integrity": "sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-3.0.13.tgz", + "integrity": "sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-3.0.13.tgz", + "integrity": "sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-3.0.13.tgz", + "integrity": "sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-3.0.13.tgz", + "integrity": "sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-3.0.13.tgz", + "integrity": "sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mapbox/geojson-rewind": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@mapbox/geojson-rewind/-/geojson-rewind-0.5.2.tgz", + "integrity": "sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==", + "dependencies": { + "get-stream": "^6.0.1", + "minimist": "^1.2.6" + }, + "bin": { + "geojson-rewind": "geojson-rewind" + } + }, + "node_modules/@mapbox/jsonlint-lines-primitives": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", + "integrity": "sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@mapbox/point-geometry": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/point-geometry/-/point-geometry-0.1.0.tgz", + "integrity": "sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==" + }, + "node_modules/@mapbox/tiny-sdf": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.6.tgz", + "integrity": "sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==" + }, + "node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, + "node_modules/@mapbox/vector-tile": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", + "integrity": "sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==", + "dependencies": { + "@mapbox/point-geometry": "~0.1.0" + } + }, + "node_modules/@mapbox/whoots-js": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mapbox/whoots-js/-/whoots-js-3.1.0.tgz", + "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@maplibre/maplibre-gl-style-spec": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@maplibre/maplibre-gl-style-spec/-/maplibre-gl-style-spec-20.3.0.tgz", + "integrity": "sha512-eSiQ3E5LUSxAOY9ABXGyfNhout2iEa6mUxKeaQ9nJ8NL1NuaQYU7zKqzx/LEYcXe1neT4uYAgM1wYZj3fTSXtA==", + "dependencies": { + "@mapbox/jsonlint-lines-primitives": "~2.0.2", + "@mapbox/unitbezier": "^0.0.1", + "json-stringify-pretty-compact": "^4.0.0", + "minimist": "^1.2.8", + "quickselect": "^2.0.0", + "rw": "^1.3.3", + "sort-object": "^3.0.3", + "tinyqueue": "^2.0.3" + }, + "bin": { + "gl-style-format": "dist/gl-style-format.mjs", + "gl-style-migrate": "dist/gl-style-migrate.mjs", + "gl-style-validate": "dist/gl-style-validate.mjs" + } + }, + "node_modules/@maplibre/ngx-maplibre-gl": { + "version": "17.4.3", + "resolved": "https://registry.npmjs.org/@maplibre/ngx-maplibre-gl/-/ngx-maplibre-gl-17.4.3.tgz", + "integrity": "sha512-u5kMH5mpORT7XspzT8g9f6iFK5sgjqSXzTLDxfPxTPQQXlHG/Njd7opbx0eXEkYOMXmRDSqe4SSIIrYHLzV0Lw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">= 17.0.0", + "@angular/core": ">= 17.0.0", + "maplibre-gl": ">= 3.6.0", + "rxjs": ">= 7.8.1" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@ng-web-apis/common": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@ng-web-apis/common/-/common-3.0.6.tgz", + "integrity": "sha512-ral+lzGpFS3aOCFB5DcHOI4lZhhp8GH4BnjSbngH2Xk8J0FKYdxRzvcPQVy7hS+TPUu0tW9uFVp6cC7odu3iyQ==", + "dependencies": { + "tslib": "^2.2.0" + }, + "peerDependencies": { + "@angular/common": ">=12.0.0", + "@angular/core": ">=12.0.0", + "rxjs": ">=6.4.0" + } + }, + "node_modules/@ng-web-apis/geolocation": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@ng-web-apis/geolocation/-/geolocation-3.0.6.tgz", + "integrity": "sha512-+D5lN8pEhoam75Vo/rAgYIqHZf07JE/5gVNSVMKSxk2t6q50nbiujekU3LY2BbSv/PSFeyjdrVh/FgV5TNaGOw==", + "dependencies": { + "tslib": "2.6.2" + }, + "peerDependencies": { + "@angular/common": ">=6.0.0", + "@angular/core": ">=6.0.0", + "@ng-web-apis/common": ">=1.0.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-18.2.6.tgz", + "integrity": "sha512-7HwOPE1EOgcHnpt4brSiT8G2CcXB50G0+CbCBaKGy4LYCG3Y3mrlzF5Fup9HvMJ6Tzqd62RqzpKKYBiGUT7hxg==", + "dev": true, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^18.0.0", + "typescript": ">=5.4 <5.6", + "webpack": "^5.54.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "devOptional": true, + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "devOptional": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "devOptional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.7.tgz", + "integrity": "sha512-WaOVvto604d5IpdCRV2KjQu8PzkfE96d50CQGKgywXh2GxXmDeUO5EWcBC4V57uFyrNqx83+MewuJh3WTR3xPA==", + "devOptional": true, + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/git/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "devOptional": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "devOptional": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "devOptional": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "devOptional": true, + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", + "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.2.0.tgz", + "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "devOptional": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/package-json/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "devOptional": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/package-json/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "devOptional": true, + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "devOptional": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/promise-spawn/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "devOptional": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", + "devOptional": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", + "devOptional": true, + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/run-script/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "devOptional": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/@npmcli/run-script/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "devOptional": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz", + "integrity": "sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz", + "integrity": "sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz", + "integrity": "sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz", + "integrity": "sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", + "integrity": "sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz", + "integrity": "sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz", + "integrity": "sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz", + "integrity": "sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz", + "integrity": "sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz", + "integrity": "sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz", + "integrity": "sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz", + "integrity": "sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz", + "integrity": "sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz", + "integrity": "sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz", + "integrity": "sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz", + "integrity": "sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@schematics/angular": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-18.2.6.tgz", + "integrity": "sha512-Y988EoOEQDLEyHu3414T6AeVUyx21AexBHQNbUNQkK8cxlxyB6m1eH1cx6vFgLRFUTsLVv+C6Ln/ICNTfLcG4A==", + "dependencies": { + "@angular-devkit/core": "18.2.6", + "@angular-devkit/schematics": "18.2.6", + "jsonc-parser": "3.3.1" + }, + "engines": { + "node": "^18.19.1 || ^20.11.1 || >=22.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sigstore/bundle": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "devOptional": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "devOptional": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "devOptional": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/sign": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", + "devOptional": true, + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", + "devOptional": true, + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", + "devOptional": true, + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "devOptional": true, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", + "devOptional": true, + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@turf/bbox": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-6.5.0.tgz", + "integrity": "sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==", + "dependencies": { + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/bearing": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/bearing/-/bearing-6.5.0.tgz", + "integrity": "sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==", + "dependencies": { + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/clone": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-6.5.0.tgz", + "integrity": "sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==", + "dependencies": { + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/distance": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/distance/-/distance-6.5.0.tgz", + "integrity": "sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==", + "dependencies": { + "@turf/helpers": "^6.5.0", + "@turf/invariant": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/helpers": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-6.5.0.tgz", + "integrity": "sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==", + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/invariant": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/invariant/-/invariant-6.5.0.tgz", + "integrity": "sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==", + "dependencies": { + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/length": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/length/-/length-6.5.0.tgz", + "integrity": "sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==", + "dependencies": { + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/meta": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-6.5.0.tgz", + "integrity": "sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==", + "dependencies": { + "@turf/helpers": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "node_modules/@turf/nearest-point": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@turf/nearest-point/-/nearest-point-6.5.0.tgz", + "integrity": "sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==", + "dependencies": { + "@turf/clone": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/helpers": "^6.5.0", + "@turf/meta": "^6.5.0" + }, + "funding": { + "url": "https://opencollective.com/turf" + } + }, + "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, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dev": true, + "dependencies": { + "@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, + "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, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dev": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz", + "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/express/node_modules/@types/express-serve-static-core": { + "version": "4.19.6", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.6.tgz", + "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/geojson": { + "version": "7946.0.14", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", + "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==" + }, + "node_modules/@types/geojson-vt": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/@types/geojson-vt/-/geojson-vt-3.2.5.tgz", + "integrity": "sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==", + "dependencies": { + "@types/geojson": "*" + } + }, + "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 + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-5.1.4.tgz", + "integrity": "sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/junit-report-builder": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/junit-report-builder/-/junit-report-builder-3.0.2.tgz", + "integrity": "sha512-R5M+SYhMbwBeQcNXYWNCZkl09vkVfAtcPIaCGdzIkkbeaTrVbGQ7HVgi4s+EmM/M1K4ZuWQH0jGcvMvNePfxYA==" + }, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.4.tgz", + "integrity": "sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.4.tgz", + "integrity": "sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==", + "dependencies": { + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" + } + }, + "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 + }, + "node_modules/@types/motion-sensors-polyfill": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@types/motion-sensors-polyfill/-/motion-sensors-polyfill-0.3.4.tgz", + "integrity": "sha512-xupJesaugjo8OwRFZNwqtSM3Ye0ITzbCGiiVQfnhrXnFuwdSHeU0046hhT+1vhKtwn1Nj+fibsZmCT6zLEpCIA==", + "dev": true + }, + "node_modules/@types/mute-stream": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/mute-stream/-/mute-stream-0.0.4.tgz", + "integrity": "sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==", + "devOptional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "20.13.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.13.0.tgz", + "integrity": "sha512-FM6AOb3khNkNIXPnHFDYaHerSv8uN22C91z098AnGccVu+Pcdhi+pNUFDi0iLmPIsVE0JBD0KVS7mzUYt4nRzQ==", + "devOptional": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/pbf": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.5.tgz", + "integrity": "sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==" + }, + "node_modules/@types/qs": { + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", + "dev": true + }, + "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 + }, + "node_modules/@types/retry": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", + "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", + "dev": true + }, + "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, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "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, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/supercluster": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/supercluster/-/supercluster-7.1.3.tgz", + "integrity": "sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==", + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "node_modules/@types/wrap-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz", + "integrity": "sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==", + "devOptional": true + }, + "node_modules/@types/ws": { + "version": "8.5.12", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", + "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@vitejs/plugin-basic-ssl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz", + "integrity": "sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==", + "dev": true, + "engines": { + "node": ">=14.6.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@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 + }, + "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 + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "devOptional": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.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, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/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, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "devOptional": true, + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "devOptional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "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==", + "devOptional": true, + "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" + ], + "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==", + "engines": { + "node": ">=8" + } + }, + "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, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "devOptional": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "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 + }, + "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, + "engines": { + "node": "*" + } + }, + "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==", + "devOptional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "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, + "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, + "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 + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "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 + }, + "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, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "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 + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/bytewise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", + "integrity": "sha512-rHuuseJ9iQ0na6UDhnrRVDh8YnWVlU6xM3VH6q/+yHDeUH2zIhUzP+2/h3LIrhLDBtTqzWpE3p3tP/boefskKQ==", + "dependencies": { + "bytewise-core": "^1.2.2", + "typewise": "^1.0.3" + } + }, + "node_modules/bytewise-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", + "integrity": "sha512-nZD//kc78OOxeYtRlVk8/zXqTB4gf/nlguL1ggWA8FuchMyOxcyHR4QPQZMUmA7czC+YnaBrPUCubqAWe50DaA==", + "dependencies": { + "typewise-core": "^1.2" + } + }, + "node_modules/c12": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/c12/-/c12-1.10.0.tgz", + "integrity": "sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==", + "dev": true, + "dependencies": { + "chokidar": "^3.6.0", + "confbox": "^0.1.3", + "defu": "^6.1.4", + "dotenv": "^16.4.5", + "giget": "^1.2.1", + "jiti": "^1.21.0", + "mlly": "^1.6.1", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "perfect-debounce": "^1.0.0", + "pkg-types": "^1.0.3", + "rc9": "^2.1.1" + } + }, + "node_modules/cacache": { + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.3.tgz", + "integrity": "sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg==", + "devOptional": true, + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "devOptional": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "devOptional": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001664", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001664.tgz", + "integrity": "sha512-AmE7k4dXiNKQipgn7a2xg558IRqPN3jMQY/rOsbxDhrd0tyChwbITBfiwtnqz8bi2M5mIWbxAYBvk7W7QBUS2g==", + "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" + } + ] + }, + "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, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "devOptional": true + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "devOptional": 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/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "devOptional": true, + "engines": { + "node": ">=10" + } + }, + "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, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/citty": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", + "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", + "dev": true, + "dependencies": { + "consola": "^3.2.3" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "devOptional": true, + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/cli-truncate/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "devOptional": true + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "devOptional": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "devOptional": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/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==", + "devOptional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cliui/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==", + "devOptional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cliui/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==", + "devOptional": true + }, + "node_modules/cliui/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==", + "devOptional": true, + "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/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "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, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "color-name": "1.1.3" + } + }, + "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 + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "devOptional": true + }, + "node_modules/commander": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", + "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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, + "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 + }, + "node_modules/compression/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 + }, + "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 + }, + "node_modules/confbox": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", + "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/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, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/consola": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", + "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "dev": true, + "engines": { + "node": "^14.18.0 || >=16.10.0" + } + }, + "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, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "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 + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-12.0.2.tgz", + "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", + "dev": true, + "dependencies": { + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.1", + "globby": "^14.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/core-js-compat": { + "version": "3.38.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz", + "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.3" + }, + "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 + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/critters": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz", + "integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^5.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.2", + "htmlparser2": "^8.0.2", + "postcss": "^8.4.23", + "postcss-media-query-parser": "^0.2.3" + } + }, + "node_modules/critters/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/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, + "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/critters/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/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 + }, + "node_modules/critters/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "devOptional": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-loader": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.27.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "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, + "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, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/d3-queue": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-3.0.7.tgz", + "integrity": "sha512-2rs+6pNFKkrJhqe1rg5znw7dKJ7KZr62j9aLZfhondkrnz6U7VRmJj1UGcbD8MRc46c7H8m4SWhab8EalBQrkw==", + "dev": true + }, + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "devOptional": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/default-gateway/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/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, + "engines": { + "node": ">=6" + } + }, + "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, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/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, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-gateway/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 + }, + "node_modules/default-gateway/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, + "engines": { + "node": ">=6" + } + }, + "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==", + "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, + "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-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true + }, + "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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "dev": true + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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 + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dev": true, + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "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" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/earcut": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/earcut/-/earcut-2.2.4.tgz", + "integrity": "sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "devOptional": true + }, + "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 + }, + "node_modules/electron-to-chromium": { + "version": "1.5.29", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.29.tgz", + "integrity": "sha512-PF8n2AlIhCKXQ+gTpiJi0VhcHDb69kYX4MtCiivctc2QD3XuNZ/XIOlbGzt7WAjjEev0TtaH6Cu3arZExm5DOw==", + "dev": true + }, + "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==", + "devOptional": true + }, + "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, + "engines": { + "node": ">= 4" + } + }, + "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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", + "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "devOptional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "devOptional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "devOptional": true + }, + "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, + "optional": true, + "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, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz", + "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", + "integrity": "sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "devOptional": true, + "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 + }, + "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, + "engines": { + "node": ">=0.8.0" + } + }, + "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, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.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, + "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, + "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, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "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, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/execspawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/execspawn/-/execspawn-1.0.1.tgz", + "integrity": "sha512-s2k06Jy9i8CUkYe0+DxRlvtkZoOkwwfhB+Xxo5HGUtrISVW2m98jO2tr67DGRFxZwkjQqloA3v/tNtjhBRBieg==", + "dev": true, + "dependencies": { + "util-extend": "^1.0.1" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "devOptional": true + }, + "node_modules/express": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", + "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "dev": true, + "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.6.0", + "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.10", + "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" + } + }, + "node_modules/express/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/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, + "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/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 + }, + "node_modules/express/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, + "engines": { + "node": ">= 0.8" + } + }, + "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 + }, + "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==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "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==", + "devOptional": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", + "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "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, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "devOptional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "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, + "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 + }, + "node_modules/finalhandler/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "dev": true, + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fontnik": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/fontnik/-/fontnik-0.7.2.tgz", + "integrity": "sha512-FaDkxlLSsKUYiJkGkQpMsIEdb1EVmpqXFy4Mz2vMhSPkxYMKYcyZYgzD2McKm/8QAWRB3Lx2G3RmhBF0l1Z1NQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "d3-queue": "^3.0.7", + "glob": "^7.1.6", + "minimist": "^1.2.5", + "node-addon-api": "^2.0.1", + "node-gyp-build": "^4.6.0", + "prebuildify": "^5.0.1" + }, + "bin": { + "build-glyphs": "bin/build-glyphs", + "font-inspect": "bin/font-inspect" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "devOptional": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "devOptional": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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 + }, + "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, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.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==", + "devOptional": true, + "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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/geojson-vt": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/geojson-vt/-/geojson-vt-3.2.1.tgz", + "integrity": "sha512-EvGQQi/zPrDA6zr6BnJD/YhwAkBP8nnJ9emh3EnHQKVMfg/MRVtPbMYdgVy/IaEmn4UfagD2a6fafPDL5hbtwg==" + }, + "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==", + "devOptional": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz", + "integrity": "sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==", + "devOptional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/giget": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/giget/-/giget-1.2.3.tgz", + "integrity": "sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==", + "dev": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "defu": "^6.1.4", + "node-fetch-native": "^1.6.3", + "nypm": "^0.3.8", + "ohash": "^1.1.3", + "pathe": "^1.1.2", + "tar": "^6.2.0" + }, + "bin": { + "giget": "dist/cli.mjs" + } + }, + "node_modules/gl-matrix": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.3.tgz", + "integrity": "sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==" + }, + "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, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "devOptional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "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==", + "devOptional": true + }, + "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 + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "devOptional": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "devOptional": true, + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "devOptional": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "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, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/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, + "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/hpack.js/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 + }, + "node_modules/hpack.js/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, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "devOptional": true + }, + "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 + }, + "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, + "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-errors/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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "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, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "devOptional": true, + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-3.0.0.tgz", + "integrity": "sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.10", + "debug": "^4.3.4", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.5" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "devOptional": true, + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/hyperdyperid": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/hyperdyperid/-/hyperdyperid-1.2.0.tgz", + "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", + "dev": true, + "engines": { + "node": ">=10.18" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "devOptional": true, + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", + "integrity": "sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/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, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "devOptional": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "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, + "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==" + }, + "node_modules/ini": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "devOptional": true, + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "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 + }, + "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==", + "devOptional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "devOptional": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "devOptional": true + }, + "node_modules/is-network-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", + "integrity": "sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==", + "dev": true, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "devOptional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "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, + "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==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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 + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz", + "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==", + "devOptional": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jasmine-core": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", + "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/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, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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 + }, + "node_modules/js-untar": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/js-untar/-/js-untar-2.0.0.tgz", + "integrity": "sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "devOptional": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", + "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/json-stringify-pretty-compact": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-4.0.0.tgz", + "integrity": "sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==" + }, + "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, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", + "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "devOptional": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/karma": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.3.tgz", + "integrity": "sha512-LuucC/RE92tJ8mlCwqEoRWXP38UMAqpnq98vktmS9SznSoUPPUJQbc91dHcxcunROvfQjdORVA/YFviH+Xci9Q==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.7.2", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", + "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", + "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.2.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.1", + "istanbul-reports": "^3.0.5", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.1.0.tgz", + "integrity": "sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0 || ^5.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-jasmine/node_modules/jasmine-core": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.6.1.tgz", + "integrity": "sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==", + "dev": true + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/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, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/karma/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, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/karma/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, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/karma/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 + }, + "node_modules/karma/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/karma/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, + "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/karma/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, + "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/karma/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, + "engines": { + "node": ">=10" + } + }, + "node_modules/kdbush": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/kdbush/-/kdbush-4.0.2.tgz", + "integrity": "sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.9.1.tgz", + "integrity": "sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==", + "dev": true, + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/less": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/less/-/less-4.2.0.tgz", + "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-12.2.0.tgz", + "integrity": "sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==", + "dev": true, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/less/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, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/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, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/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, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/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==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/listr2": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.2.4.tgz", + "integrity": "sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==", + "devOptional": true, + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/listr2/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/listr2/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/listr2/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "devOptional": true + }, + "node_modules/listr2/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "devOptional": true + }, + "node_modules/listr2/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/listr2/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/listr2/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/lmdb": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-3.0.13.tgz", + "integrity": "sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "msgpackr": "^1.10.2", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.2.2", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "3.0.13", + "@lmdb/lmdb-darwin-x64": "3.0.13", + "@lmdb/lmdb-linux-arm": "3.0.13", + "@lmdb/lmdb-linux-arm64": "3.0.13", + "@lmdb/lmdb-linux-x64": "3.0.13", + "@lmdb/lmdb-win32-x64": "3.0.13" + } + }, + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/log-symbols/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "devOptional": true, + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "devOptional": true, + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "devOptional": true, + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "devOptional": true + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "devOptional": true, + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "devOptional": true, + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "devOptional": true, + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "devOptional": true, + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/maplibre-gl": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-4.3.2.tgz", + "integrity": "sha512-/oXDsb9I+LkjweL/28aFMLDZoIcXKNEhYNAZDLA4xgTNkfvKQmV/r0KZdxEMcVthincJzdyc6Y4N8YwZtHKNnQ==", + "dependencies": { + "@mapbox/geojson-rewind": "^0.5.2", + "@mapbox/jsonlint-lines-primitives": "^2.0.2", + "@mapbox/point-geometry": "^0.1.0", + "@mapbox/tiny-sdf": "^2.0.6", + "@mapbox/unitbezier": "^0.0.1", + "@mapbox/vector-tile": "^1.3.1", + "@mapbox/whoots-js": "^3.1.0", + "@maplibre/maplibre-gl-style-spec": "^20.2.0", + "@types/geojson": "^7946.0.14", + "@types/geojson-vt": "3.2.5", + "@types/junit-report-builder": "^3.0.2", + "@types/mapbox__point-geometry": "^0.1.4", + "@types/mapbox__vector-tile": "^1.3.4", + "@types/pbf": "^3.0.5", + "@types/supercluster": "^7.1.3", + "earcut": "^2.2.4", + "geojson-vt": "^3.2.1", + "gl-matrix": "^3.4.3", + "global-prefix": "^3.0.0", + "kdbush": "^4.0.2", + "murmurhash-js": "^1.0.0", + "pbf": "^3.2.1", + "potpack": "^2.0.0", + "quickselect": "^2.0.0", + "supercluster": "^8.0.1", + "tinyqueue": "^2.0.3", + "vt-pbf": "^3.1.3" + }, + "engines": { + "node": ">=16.14.0", + "npm": ">=8.1.0" + }, + "funding": { + "url": "https://github.com/maplibre/maplibre-gl-js?sponsor=1" + } + }, + "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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-4.12.0.tgz", + "integrity": "sha512-74wDsex5tQDSClVkeK1vtxqYCAgCoXxx+K4NSHzgU/muYVYByFqa+0RnrPO9NM6naWm1+G9JmZ0p6QHhXmeYfA==", + "dev": true, + "dependencies": { + "@jsonjoy.com/json-pack": "^1.0.3", + "@jsonjoy.com/util": "^1.3.0", + "tree-dump": "^1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + } + }, + "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, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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 + }, + "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, + "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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "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, + "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, + "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, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "devOptional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "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 + }, + "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, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "devOptional": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "devOptional": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "devOptional": true, + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-flush/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "devOptional": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-json-stream/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "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, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/mlly": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.0.tgz", + "integrity": "sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "pathe": "^1.1.2", + "pkg-types": "^1.1.0", + "ufo": "^1.5.3" + } + }, + "node_modules/motion-sensors-polyfill": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/motion-sensors-polyfill/-/motion-sensors-polyfill-0.3.7.tgz", + "integrity": "sha512-1pooqMIrFwevDWpaFhtTY+kpCnCe7fde0FFrOkLgaCziWxDrAkj2FLywh1ll8CsvMTT2DWR9VyOyHekw/sEjoQ==" + }, + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "devOptional": true + }, + "node_modules/msgpackr": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.0.tgz", + "integrity": "sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==", + "dev": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dev": true, + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/murmurhash-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/murmurhash-js/-/murmurhash-js-1.0.0.tgz", + "integrity": "sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==" + }, + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/needle": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.3.1.tgz", + "integrity": "sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "devOptional": true, + "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 + }, + "node_modules/ngx-image-compress": { + "version": "15.1.6", + "resolved": "https://registry.npmjs.org/ngx-image-compress/-/ngx-image-compress-15.1.6.tgz", + "integrity": "sha512-kMoK06er6vLV7/3Ly3S8Eef4mADZHU2A+JeBAt56nOV7iAzz6GolT2cNq40XR5hFpthcnzHs7aIcl4Sr84xK6w==", + "dependencies": { + "tslib": "^2.5.0" + }, + "peerDependencies": { + "@angular/common": "x.x.x", + "@angular/core": "x.x.x" + } + }, + "node_modules/ngx-indexed-db": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/ngx-indexed-db/-/ngx-indexed-db-17.1.0.tgz", + "integrity": "sha512-owdZG0P0TyjY+cb301beg2i07XocJGQK1f2sX65ZD8yJYMefu++KA9sMf3uflD/gQIxl9LxBcFJw6CuTac9PpQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=10.0.6", + "@angular/core": ">=10.0.6" + } + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/nice-napi/node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-abi": { + "version": "3.63.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.63.0.tgz", + "integrity": "sha512-vAszCsOUrUxjGAmdnM/pq7gUgie0IRteCQMX6d4A534fQCR93EJU5qgzBvU6EkFfK27s0T3HEV3BOyJIr7OMYw==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==", + "dev": true + }, + "node_modules/node-fetch-native": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", + "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", + "dev": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.1.0.tgz", + "integrity": "sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA==", + "devOptional": true, + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "devOptional": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", + "devOptional": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "devOptional": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "devOptional": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "devOptional": true, + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "devOptional": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", + "integrity": "sha512-6rvCfeRW+OEZagAB4lMLSNuTNYZWLVtKccK79VSTf//yTY5VOCgcpH80O+bZK8Neps7pUnd5G+QlMg1yV/2iZQ==", + "devOptional": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "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==", + "devOptional": true, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "devOptional": true, + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "devOptional": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "devOptional": true, + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "devOptional": true, + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-pick-manifest": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "devOptional": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-17.0.1.tgz", + "integrity": "sha512-fLu9MTdZTlJAHUek/VLklE6EpIiP3VZpTiuN7OOMCt2Sd67NCpSEetMaxHHEZiZxllp8ZLsUpvbEszqTFEc+wA==", + "devOptional": true, + "dependencies": { + "@npmcli/redact": "^2.0.0", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nypm": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/nypm/-/nypm-0.3.8.tgz", + "integrity": "sha512-IGWlC6So2xv6V4cIDmoV0SwwWx7zLG086gyqkyumteH2fIgCAM4nDVFB2iDRszDvmdSVW9xb1N+2KjQ6C7d4og==", + "dev": true, + "dependencies": { + "citty": "^0.1.6", + "consola": "^3.2.3", + "execa": "^8.0.1", + "pathe": "^1.1.2", + "ufo": "^1.4.0" + }, + "bin": { + "nypm": "dist/cli.mjs" + }, + "engines": { + "node": "^14.16.0 || >=16.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "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 + }, + "node_modules/ohash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-1.1.3.tgz", + "integrity": "sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==", + "dev": true + }, + "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, + "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, + "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, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dev": true, + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/ora/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==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ordered-binary": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.2.tgz", + "integrity": "sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==", + "dev": true + }, + "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==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "devOptional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-6.2.0.tgz", + "integrity": "sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.2", + "is-network-error": "^1.0.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/pacote": { + "version": "18.0.6", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", + "devOptional": true, + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.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, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "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/parse-json/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 + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-7.0.0.tgz", + "integrity": "sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==", + "dependencies": { + "entities": "^4.3.0", + "parse5": "^7.0.0", + "parse5-sax-parser": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-7.0.0.tgz", + "integrity": "sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==", + "dependencies": { + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "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, + "engines": { + "node": ">= 0.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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "devOptional": true + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "devOptional": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "devOptional": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", + "dev": true + }, + "node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, + "node_modules/pbf": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/pbf/-/pbf-3.2.1.tgz", + "integrity": "sha512-ClrV7pNOn7rtmoQVF4TS1vyU0WhYRnP92fzbfF75jAIwpnzdJXf8iTd4CMEqO4yUenH6NDqLiwjqlh6QgZzgLQ==", + "dependencies": { + "ieee754": "^1.1.12", + "resolve-protobuf-schema": "^2.1.0" + }, + "bin": { + "pbf": "bin/pbf" + } + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true + }, + "node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "engines": { + "node": ">=12" + }, + "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, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/piscina": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.6.1.tgz", + "integrity": "sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==", + "dev": true, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-types": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz", + "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==", + "dev": true, + "dependencies": { + "confbox": "^0.1.7", + "mlly": "^1.7.0", + "pathe": "^1.1.2" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-loader": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-8.1.1.tgz", + "integrity": "sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^9.0.0", + "jiti": "^1.20.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "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, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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 + }, + "node_modules/potpack": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/potpack/-/potpack-2.0.0.tgz", + "integrity": "sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==" + }, + "node_modules/prebuildify": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-5.0.1.tgz", + "integrity": "sha512-vXpKLfIEsDCqMJWVIoSrUUBJQIuAk9uHAkLiGJuTdXdqKSJ10sHmWeuNCDkIoRFTV1BDGYMghHVmDFP8NfkA2Q==", + "dev": true, + "dependencies": { + "execspawn": "^1.0.1", + "minimist": "^1.2.5", + "mkdirp-classic": "^0.5.3", + "node-abi": "^3.3.0", + "npm-run-path": "^3.1.0", + "pump": "^3.0.0", + "tar-fs": "^2.1.0" + }, + "bin": { + "prebuildify": "bin.js" + } + }, + "node_modules/prebuildify/node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.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 + }, + "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==", + "devOptional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "devOptional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.6.0.tgz", + "integrity": "sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==" + }, + "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, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/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, + "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, + "optional": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "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, + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quickselect": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz", + "integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "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, + "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, + "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/rc9": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz", + "integrity": "sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==", + "dev": true, + "dependencies": { + "defu": "^6.1.4", + "destr": "^2.0.3" + } + }, + "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==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "devOptional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "devOptional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/reflect-metadata": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz", + "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", + "dev": true + }, + "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 + }, + "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, + "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 + }, + "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, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==", + "dev": true + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "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==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "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 + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "devOptional": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-protobuf-schema": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/resolve-protobuf-schema/-/resolve-protobuf-schema-2.1.0.tgz", + "integrity": "sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==", + "dependencies": { + "protocol-buffers-schema": "^3.3.1" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/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, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restore-cursor/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/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==" + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "devOptional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "devOptional": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.22.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.22.4.tgz", + "integrity": "sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.22.4", + "@rollup/rollup-android-arm64": "4.22.4", + "@rollup/rollup-darwin-arm64": "4.22.4", + "@rollup/rollup-darwin-x64": "4.22.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.22.4", + "@rollup/rollup-linux-arm-musleabihf": "4.22.4", + "@rollup/rollup-linux-arm64-gnu": "4.22.4", + "@rollup/rollup-linux-arm64-musl": "4.22.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.22.4", + "@rollup/rollup-linux-riscv64-gnu": "4.22.4", + "@rollup/rollup-linux-s390x-gnu": "4.22.4", + "@rollup/rollup-linux-x64-gnu": "4.22.4", + "@rollup/rollup-linux-x64-musl": "4.22.4", + "@rollup/rollup-win32-arm64-msvc": "4.22.4", + "@rollup/rollup-win32-ia32-msvc": "4.22.4", + "@rollup/rollup-win32-x64-msvc": "4.22.4", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==" + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "devOptional": true + }, + "node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-loader": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-16.0.0.tgz", + "integrity": "sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==", + "dev": true, + "dependencies": { + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.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 + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dev": true, + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "devOptional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "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, + "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, + "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 + }, + "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, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "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, + "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, + "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, + "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, + "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 + }, + "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 + }, + "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 + }, + "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, + "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/serve-static/node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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, + "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-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==", + "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/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "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, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "devOptional": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sigstore": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", + "devOptional": true, + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "devOptional": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "devOptional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", + "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "cors": "~2.8.5", + "debug": "~4.3.2", + "engine.io": "~6.5.2", + "socket.io-adapter": "~2.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.2.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", + "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "dev": true, + "dependencies": { + "debug": "~4.3.4", + "ws": "~8.11.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.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, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "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, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "devOptional": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz", + "integrity": "sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==", + "devOptional": true, + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.7.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/sort-asc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-asc/-/sort-asc-0.2.0.tgz", + "integrity": "sha512-umMGhjPeHAI6YjABoSTrFp2zaBtXBej1a0yKkuMUyjjqu6FJsTF+JYwCswWDg+zJfk/5npWUUbd33HH/WLzpaA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-desc": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/sort-desc/-/sort-desc-0.2.0.tgz", + "integrity": "sha512-NqZqyvL4VPW+RAxxXnB8gvE1kyikh8+pR+T+CXLksVRN9eiQqkQlPwqWYU0mF9Jm7UnctShlxLyAt1CaBOTL1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-object": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sort-object/-/sort-object-3.0.3.tgz", + "integrity": "sha512-nK7WOY8jik6zaG9CRwZTaD5O7ETWDLZYMM12pqY8htll+7dYeqGfEUPcUBHOpSJg2vJOrvFIY2Dl5cX2ih1hAQ==", + "dependencies": { + "bytewise": "^1.1.0", + "get-value": "^2.0.2", + "is-extendable": "^0.1.1", + "sort-asc": "^0.2.0", + "sort-desc": "^0.2.0", + "union-value": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-5.0.0.tgz", + "integrity": "sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==", + "dev": true, + "dependencies": { + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.72.1" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.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, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "devOptional": true, + "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==", + "devOptional": true + }, + "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==", + "devOptional": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "devOptional": true + }, + "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, + "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, + "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/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==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/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==", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/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==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "devOptional": true + }, + "node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "devOptional": true, + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, + "dependencies": { + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "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==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "devOptional": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supercluster": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/supercluster/-/supercluster-8.0.1.tgz", + "integrity": "sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==", + "dependencies": { + "kdbush": "^4.0.2" + } + }, + "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, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "devOptional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "devOptional": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "devOptional": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/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 + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "devOptional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "devOptional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true + }, + "node_modules/terser": { + "version": "5.31.6", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.6.tgz", + "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/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, + "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/terser-webpack-plugin/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, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/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, + "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/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 + }, + "node_modules/thingies": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/thingies/-/thingies-1.21.0.tgz", + "integrity": "sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==", + "dev": true, + "engines": { + "node": ">=10.18" + }, + "peerDependencies": { + "tslib": "^2" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "devOptional": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.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, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tree-dump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tree-dump/-/tree-dump-1.0.2.tgz", + "integrity": "sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==", + "dev": true, + "engines": { + "node": ">=10.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/streamich" + }, + "peerDependencies": { + "tslib": "2" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tuf-js": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "devOptional": true, + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.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==", + "devOptional": true, + "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, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha512-aXofE06xGhaQSPzt8hlTY+/YWQhm9P0jYUp1f2XtmW/3Bk0qzXcyFWAtPoo2uTGQj1ZwbDuSyuxicq+aDo8lCQ==", + "dependencies": { + "typewise-core": "^1.2.0" + } + }, + "node_modules/typewise-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", + "integrity": "sha512-2SCC/WLzj2SbUwzFOzqMCkz5amXLlxtJqDKTICqg30x+2DZxcfZN2MvQZmGfXWKNWaKK9pBPsvkcwv8bF/gxKg==" + }, + "node_modules/ua-parser-js": { + "version": "0.7.38", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.38.tgz", + "integrity": "sha512-fYmIy7fKTSFAhG3fuPlubeGaMoAd6r0rSnfEsO5nEY55i26KSLt9EH7PLQiiqPUhNqYIJvSkTy1oArIcXAbPbA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/ufo": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", + "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "devOptional": true + }, + "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, + "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, + "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, + "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, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "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/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "devOptional": true, + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "devOptional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "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, + "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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "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" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", + "dev": true + }, + "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, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/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==", + "devOptional": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "devOptional": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.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, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vite": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.6.tgz", + "integrity": "sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vt-pbf": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/vt-pbf/-/vt-pbf-3.1.3.tgz", + "integrity": "sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==", + "dependencies": { + "@mapbox/point-geometry": "0.1.0", + "@mapbox/vector-tile": "^1.3.1", + "pbf": "^3.2.1" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.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, + "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==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + }, + "node_modules/webpack": { + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-7.4.2.tgz", + "integrity": "sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^4.6.0", + "mime-types": "^2.1.31", + "on-finished": "^2.4.1", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.0.4.tgz", + "integrity": "sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.13", + "@types/connect-history-api-fallback": "^1.5.4", + "@types/express": "^4.17.21", + "@types/serve-index": "^1.9.4", + "@types/serve-static": "^1.15.5", + "@types/sockjs": "^0.3.36", + "@types/ws": "^8.5.10", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.2.1", + "chokidar": "^3.6.0", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.4.0", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.1.0", + "launch-editor": "^2.6.1", + "open": "^10.0.3", + "p-retry": "^6.2.0", + "rimraf": "^5.0.5", + "schema-utils": "^4.2.0", + "selfsigned": "^2.4.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^7.1.0", + "ws": "^8.16.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/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, + "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/webpack/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, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/webpack/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 + }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/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, + "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/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, + "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, + "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==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wildcard": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", + "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", + "dev": true + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "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==", + "devOptional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "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==", + "devOptional": true, + "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/wrap-ansi-cjs/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==", + "devOptional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "devOptional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/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==", + "devOptional": true + }, + "node_modules/wrap-ansi/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==", + "devOptional": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/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==", + "devOptional": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/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==", + "devOptional": true + }, + "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 + }, + "node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "devOptional": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "devOptional": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "devOptional": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", + "dev": true, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", + "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "devOptional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.14.10.tgz", + "integrity": "sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..60a1179 --- /dev/null +++ b/package.json @@ -0,0 +1,65 @@ +{ + "name": "treetrail", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "start": "ng serve --proxy-config proxy.conf.json --port 4201", + "build": "ng build", + "watch": "ng build --watch --configuration development", + "test": "ng test", + "openapi-ts": "openapi-ts" + }, + "private": true, + "dependencies": { + "@angular/animations": "^18.2.6", + "@angular/cdk": "^18.2.6", + "@angular/common": "^18.2.6", + "@angular/compiler": "^18.2.6", + "@angular/core": "^18.2.6", + "@angular/forms": "^18.2.6", + "@angular/material": "18.2.6", + "@angular/platform-browser": "^18.2.6", + "@angular/platform-browser-dynamic": "^18.2.6", + "@angular/pwa": "^18.2.6", + "@angular/router": "^18.2.6", + "@angular/service-worker": "^18.2.6", + "@mapbox/point-geometry": "^0.1.0", + "@maplibre/ngx-maplibre-gl": "^17.4.3", + "@ng-web-apis/common": "^3.0.6", + "@ng-web-apis/geolocation": "3.0.6", + "@turf/bbox": "^6.5.0", + "@turf/bearing": "^6.5.0", + "@turf/distance": "^6.5.0", + "@turf/length": "^6.5.0", + "@turf/nearest-point": "^6.5.0", + "js-untar": "^2.0.0", + "maplibre-gl": "^4.3.2", + "motion-sensors-polyfill": "^0.3.7", + "ngx-image-compress": "^15.1.6", + "ngx-indexed-db": "^17.1.0", + "rxjs": "~7.8.1", + "tslib": "^2.6.2", + "uuid": "^9.0.1", + "zone.js": "^0.14.10" + }, + "devDependencies": { + "@angular-devkit/build-angular": "^18.2.6", + "@angular/cli": "^18.2.6", + "@angular/compiler-cli": "^18.2.6", + "@hey-api/openapi-ts": "^0.45.1", + "@types/geojson": "^7946.0.14", + "@types/jasmine": "~5.1.4", + "@types/motion-sensors-polyfill": "^0.3.4", + "@types/node": "^20.12.7", + "@types/uuid": "^9.0.8", + "fontnik": "^0.7.2", + "jasmine-core": "~5.1.2", + "karma": "~6.4.3", + "karma-chrome-launcher": "~3.2.0", + "karma-coverage": "~2.2.1", + "karma-jasmine": "~5.1.0", + "karma-jasmine-html-reporter": "^2.1.0", + "typescript": "~5.4.5" + }, + "packageManager": "pnpm@9.12.2" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..8e2884b --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,9795 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@angular/animations': + specifier: ^18.2.6 + version: 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/cdk': + specifier: ^18.2.6 + version: 18.2.9(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/common': + specifier: ^18.2.6 + version: 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/compiler': + specifier: ^18.2.6 + version: 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/core': + specifier: ^18.2.6 + version: 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/forms': + specifier: ^18.2.6 + version: 18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1) + '@angular/material': + specifier: 18.2.6 + version: 18.2.6(2rcj6hyebgqlg7h4w3kxwhlkgi) + '@angular/platform-browser': + specifier: ^18.2.6 + version: 18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/platform-browser-dynamic': + specifier: ^18.2.6 + version: 18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))) + '@angular/pwa': + specifier: ^18.2.6 + version: 18.2.9(@angular/cli@18.2.9(chokidar@3.6.0))(chokidar@3.6.0) + '@angular/router': + specifier: ^18.2.6 + version: 18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1) + '@angular/service-worker': + specifier: ^18.2.6 + version: 18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + '@mapbox/point-geometry': + specifier: ^0.1.0 + version: 0.1.0 + '@maplibre/ngx-maplibre-gl': + specifier: ^17.4.3 + version: 17.4.3(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(maplibre-gl@4.7.1)(rxjs@7.8.1) + '@ng-web-apis/common': + specifier: ^3.0.6 + version: 3.2.3(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@ng-web-apis/geolocation': + specifier: 3.0.6 + version: 3.0.6(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@ng-web-apis/common@3.2.3(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)) + '@turf/bbox': + specifier: ^6.5.0 + version: 6.5.0 + '@turf/bearing': + specifier: ^6.5.0 + version: 6.5.0 + '@turf/distance': + specifier: ^6.5.0 + version: 6.5.0 + '@turf/length': + specifier: ^6.5.0 + version: 6.5.0 + '@turf/nearest-point': + specifier: ^6.5.0 + version: 6.5.0 + js-untar: + specifier: ^2.0.0 + version: 2.0.0 + maplibre-gl: + specifier: ^4.3.2 + version: 4.7.1 + motion-sensors-polyfill: + specifier: ^0.3.7 + version: 0.3.7 + ngx-image-compress: + specifier: ^15.1.6 + version: 15.1.6(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + ngx-indexed-db: + specifier: ^17.1.0 + version: 17.1.0(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + rxjs: + specifier: ~7.8.1 + version: 7.8.1 + tslib: + specifier: ^2.6.2 + version: 2.8.0 + uuid: + specifier: ^9.0.1 + version: 9.0.1 + zone.js: + specifier: ^0.14.10 + version: 0.14.10 + devDependencies: + '@angular-devkit/build-angular': + specifier: ^18.2.6 + version: 18.2.9(@angular/compiler-cli@18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(@angular/service-worker@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@types/node@20.16.12)(chokidar@3.6.0)(karma@6.4.4)(typescript@5.4.5) + '@angular/cli': + specifier: ^18.2.6 + version: 18.2.9(chokidar@3.6.0) + '@angular/compiler-cli': + specifier: ^18.2.6 + version: 18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5) + '@hey-api/openapi-ts': + specifier: ^0.45.1 + version: 0.45.1(typescript@5.4.5) + '@types/geojson': + specifier: ^7946.0.14 + version: 7946.0.14 + '@types/jasmine': + specifier: ~5.1.4 + version: 5.1.4 + '@types/motion-sensors-polyfill': + specifier: ^0.3.4 + version: 0.3.5 + '@types/node': + specifier: ^20.12.7 + version: 20.16.12 + '@types/uuid': + specifier: ^9.0.8 + version: 9.0.8 + fontnik: + specifier: ^0.7.2 + version: 0.7.2 + jasmine-core: + specifier: ~5.1.2 + version: 5.1.2 + karma: + specifier: ~6.4.3 + version: 6.4.4 + karma-chrome-launcher: + specifier: ~3.2.0 + version: 3.2.0 + karma-coverage: + specifier: ~2.2.1 + version: 2.2.1 + karma-jasmine: + specifier: ~5.1.0 + version: 5.1.0(karma@6.4.4) + karma-jasmine-html-reporter: + specifier: ^2.1.0 + version: 2.1.0(jasmine-core@5.1.2)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4) + typescript: + specifier: ~5.4.5 + version: 5.4.5 + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@angular-devkit/architect@0.1802.9': + resolution: {integrity: sha512-fubJf4WC/t3ITy+tyjI4/CKKwUP4XJTmV+Y0nyPcrkcthVyUcIpZB74NlUOvg6WECiPQuIc+CtoAaA9X5+RQ5Q==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular-devkit/build-angular@18.2.9': + resolution: {integrity: sha512-d4W6t9vBozFUmOP2VvihMcSg/zgr3AvJY6/b7OPuATlK+W3P6tmsqxGIQ6eKc1TxXeu3lWhi14mV2pPykfrwfA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^18.0.0 + '@angular/localize': ^18.0.0 + '@angular/platform-server': ^18.0.0 + '@angular/service-worker': ^18.0.0 + '@web/test-runner': ^0.18.0 + browser-sync: ^3.0.2 + jest: ^29.5.0 + jest-environment-jsdom: ^29.5.0 + karma: ^6.3.0 + ng-packagr: ^18.0.0 + protractor: ^7.0.0 + tailwindcss: ^2.0.0 || ^3.0.0 + typescript: '>=5.4 <5.6' + peerDependenciesMeta: + '@angular/localize': + optional: true + '@angular/platform-server': + optional: true + '@angular/service-worker': + optional: true + '@web/test-runner': + optional: true + browser-sync: + optional: true + jest: + optional: true + jest-environment-jsdom: + optional: true + karma: + optional: true + ng-packagr: + optional: true + protractor: + optional: true + tailwindcss: + optional: true + + '@angular-devkit/build-webpack@0.1802.9': + resolution: {integrity: sha512-p7xNGo5ZTV/Z0Rk+q2/E68QQLw9VT33kauDh6s010jIeBLrOwMo74JpzXMSFttQo5O4bLKP8IORzIM+0q7Uzjg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + webpack: ^5.30.0 + webpack-dev-server: ^5.0.2 + + '@angular-devkit/core@18.2.9': + resolution: {integrity: sha512-bsVt//5E0ua7FZfO0dCF/qGGY6KQD34/bNGyRu5B6HedimpdU2/0PGDptksU5v3yKEc9gNw0xC6mT0UsY/R9pA==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^3.5.2 + peerDependenciesMeta: + chokidar: + optional: true + + '@angular-devkit/schematics@18.2.9': + resolution: {integrity: sha512-aIY5/IomDOINGCtFYi77uo0acDpdQNNCighfBBUGEBNMQ1eE3oGNGpLAH/qWeuxJndgmxrdKsvws9DdT46kLig==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@angular/animations@18.2.8': + resolution: {integrity: sha512-dMSn2hg70siv3lhP+vqhMbgc923xw6XBUvnpCPEzhZqFHvPXfh/LubmsD5RtqHmjWebXtgVcgS+zg3Gq3jB2lg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/core': 18.2.8 + + '@angular/build@18.2.9': + resolution: {integrity: sha512-o1hOEM2e6ARy+ck2Pohl0d/RFgbbXTw6/hTLAj3CBKjtqAGStRaVF2UlJjhi+xOxlfsOPuJJc9IpzLBteku+Ag==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^18.0.0 + '@angular/localize': ^18.0.0 + '@angular/platform-server': ^18.0.0 + '@angular/service-worker': ^18.0.0 + less: ^4.2.0 + postcss: ^8.4.0 + tailwindcss: ^2.0.0 || ^3.0.0 + typescript: '>=5.4 <5.6' + peerDependenciesMeta: + '@angular/localize': + optional: true + '@angular/platform-server': + optional: true + '@angular/service-worker': + optional: true + less: + optional: true + postcss: + optional: true + tailwindcss: + optional: true + + '@angular/cdk@18.2.9': + resolution: {integrity: sha512-hV2dXpvy2TLwCsRtI/ZXkb2EoaJiellRr+kbcnKwO15LFoz3mTAOhKtsvu7yOyURkaPiI605qiIZrPP4zLL1qw==} + peerDependencies: + '@angular/common': ^18.0.0 || ^19.0.0 + '@angular/core': ^18.0.0 || ^19.0.0 + rxjs: ^6.5.3 || ^7.4.0 + + '@angular/cli@18.2.9': + resolution: {integrity: sha512-ejTIqwvPABwK7MtVmI2qWbEaMhhbHNsq0NPzl1hwLtkrLbjdDrEVv0Wy+gN0xqrT9NyCPl4AmNLz/xuYTzgU5g==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + + '@angular/common@18.2.8': + resolution: {integrity: sha512-TYsKtE5nVaIScWSLGSO34Skc+s3hB/BujSddnfQHoNFvPT/WR0dfmdlpVCTeLj+f50htFoMhW11tW99PbK+whQ==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/core': 18.2.8 + rxjs: ^6.5.3 || ^7.4.0 + + '@angular/compiler-cli@18.2.8': + resolution: {integrity: sha512-OksDE4LWQUCcIvMjtZF7eiDCdIMrcMMpC1+Q0PIYi7KmnqXFGs4/Y0NdJvtn/LrQznzz5WaKM3ZDVNZTRX4wmw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + hasBin: true + peerDependencies: + '@angular/compiler': 18.2.8 + typescript: '>=5.4 <5.6' + + '@angular/compiler@18.2.8': + resolution: {integrity: sha512-JRedHNfK1CCPVyeGQB5w3WBYqMA6X8Q240CkvjlGfn0pVXihf9DWk3nkSQJVgYxpvpHfxdgjaYZ5IpMzlkmkhw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/core': 18.2.8 + peerDependenciesMeta: + '@angular/core': + optional: true + + '@angular/core@18.2.8': + resolution: {integrity: sha512-NwIuX/Iby1jT6Iv1/s6S3wOFf8xfuQR3MPGvKhGgNtjXLbHG+TXceK9+QPZC0s9/Z8JR/hz+li34B79GrIKgUg==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + rxjs: ^6.5.3 || ^7.4.0 + zone.js: ~0.14.10 + + '@angular/forms@18.2.8': + resolution: {integrity: sha512-JCLki7KC6D5vF6dE6yGlBmW33khIgpHs8N9SzuiJtkQqNDTIQA8cPsGV6qpLpxflxASynQOX5lDkWYdQyfm77Q==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/common': 18.2.8 + '@angular/core': 18.2.8 + '@angular/platform-browser': 18.2.8 + rxjs: ^6.5.3 || ^7.4.0 + + '@angular/material@18.2.6': + resolution: {integrity: sha512-ObxC/vomSb9QF3vIztuiInQzws+D6u09Dhfx6uNFjtyICqxEFpF7+Qx7QVDWrsuXOgxZTKgacK8f46iV8hWUfg==} + peerDependencies: + '@angular/animations': ^18.0.0 || ^19.0.0 + '@angular/cdk': 18.2.6 + '@angular/common': ^18.0.0 || ^19.0.0 + '@angular/core': ^18.0.0 || ^19.0.0 + '@angular/forms': ^18.0.0 || ^19.0.0 + '@angular/platform-browser': ^18.0.0 || ^19.0.0 + rxjs: ^6.5.3 || ^7.4.0 + + '@angular/platform-browser-dynamic@18.2.8': + resolution: {integrity: sha512-poZoapDqyN/rxGKQ3C6esdPiPLMkSpP2v12hoEa12KHgfPk7T1e+a+NMyJjV8HeOY3WyvL7tGRhW0NPTajTkhw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/common': 18.2.8 + '@angular/compiler': 18.2.8 + '@angular/core': 18.2.8 + '@angular/platform-browser': 18.2.8 + + '@angular/platform-browser@18.2.8': + resolution: {integrity: sha512-EPai4ZPqSq3ilLJUC85kPi9wo5j5suQovwtgRyjM/75D9Qy4TV19g8hkVM5Co/zrltO8a2G6vDscCNI5BeGw2A==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/animations': 18.2.8 + '@angular/common': 18.2.8 + '@angular/core': 18.2.8 + peerDependenciesMeta: + '@angular/animations': + optional: true + + '@angular/pwa@18.2.9': + resolution: {integrity: sha512-cmU/fTp6wXPrSWvhBWKujVUd6zAPVHP2hwjhAoPA/gLACg3Z2/Im6P8OqeDi8dchMQYAtfmNZBGdyNVARjfwYw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/cli': ^18.0.0 + peerDependenciesMeta: + '@angular/cli': + optional: true + + '@angular/router@18.2.8': + resolution: {integrity: sha512-L+olYgxIiBq+tbfayVI0cv1yOuymsw33msnGC2l/vpc9sSVfqGzESFnB4yMVU3vHtE9v6v2Y6O+iV44/b79W/g==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + peerDependencies: + '@angular/common': 18.2.8 + '@angular/core': 18.2.8 + '@angular/platform-browser': 18.2.8 + rxjs: ^6.5.3 || ^7.4.0 + + '@angular/service-worker@18.2.8': + resolution: {integrity: sha512-LQktgS2Hn845ASWNyjde18V+CHkkPeCzORfh0ChYKiOmXYFtj/myEik5o/QI/G13Kaymy+vcuwQKiUuZjZiD1w==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} + hasBin: true + peerDependencies: + '@angular/common': 18.2.8 + '@angular/core': 18.2.8 + + '@apidevtools/json-schema-ref-parser@11.6.1': + resolution: {integrity: sha512-DxjgKBCoyReu4p5HMvpmgSOfRhhBcuf5V5soDDRgOTZMwsA4KSFzol1abFZgiCTE11L2kKGca5Md9GwDdXVBwQ==} + engines: {node: '>= 16'} + + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.25.8': + resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.25.2': + resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.25.8': + resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.0': + resolution: {integrity: sha512-3LEEcj3PVW8pW2R1SR1M89g/qrYk/m/mB/tLqn7dn4sbBUQyTqnlod+II2U4dqiGtUmkcnAmkMDralTFZttRiw==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.25.7': + resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.24.7': + resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.7': + resolution: {integrity: sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': + resolution: {integrity: sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.25.7': + resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.25.7': + resolution: {integrity: sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.25.7': + resolution: {integrity: sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.2': + resolution: {integrity: sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-member-expression-to-functions@7.25.7': + resolution: {integrity: sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.7': + resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.25.7': + resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.25.7': + resolution: {integrity: sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.25.7': + resolution: {integrity: sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.25.7': + resolution: {integrity: sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.25.7': + resolution: {integrity: sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-simple-access@7.25.7': + resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-skip-transparent-expression-wrappers@7.25.7': + resolution: {integrity: sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-split-export-declaration@7.24.7': + resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.7': + resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.25.7': + resolution: {integrity: sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.25.7': + resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} + engines: {node: '>=6.9.0'} + + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.25.8': + resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7': + resolution: {integrity: sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.7': + resolution: {integrity: sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.7': + resolution: {integrity: sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.7': + resolution: {integrity: sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.7': + resolution: {integrity: sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-async-generators@7.8.4': + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-properties@7.12.13': + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-class-static-block@7.14.5': + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-dynamic-import@7.8.3': + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-export-namespace-from@7.8.3': + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.25.7': + resolution: {integrity: sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.24.7': + resolution: {integrity: sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.25.7': + resolution: {integrity: sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-meta@7.10.4': + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-json-strings@7.8.3': + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-numeric-separator@7.10.4': + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-object-rest-spread@7.8.3': + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3': + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-optional-chaining@7.8.3': + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-private-property-in-object@7.14.5': + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-top-level-await@7.14.5': + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.25.7': + resolution: {integrity: sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.25.0': + resolution: {integrity: sha512-uaIi2FdqzjpAMvVqvB51S42oC2JEVgh0LDsGfZVDysWE8LrJtQC2jvKmOqEYThKyB7bDEb7BP1GYWDm7tABA0Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.24.7': + resolution: {integrity: sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.25.7': + resolution: {integrity: sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.25.7': + resolution: {integrity: sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.25.7': + resolution: {integrity: sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.25.8': + resolution: {integrity: sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.25.7': + resolution: {integrity: sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.25.7': + resolution: {integrity: sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.25.7': + resolution: {integrity: sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.25.7': + resolution: {integrity: sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.25.7': + resolution: {integrity: sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.7': + resolution: {integrity: sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.25.8': + resolution: {integrity: sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.25.7': + resolution: {integrity: sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.25.8': + resolution: {integrity: sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.25.7': + resolution: {integrity: sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.25.7': + resolution: {integrity: sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.25.8': + resolution: {integrity: sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.25.7': + resolution: {integrity: sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.25.8': + resolution: {integrity: sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.25.7': + resolution: {integrity: sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.25.7': + resolution: {integrity: sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.25.7': + resolution: {integrity: sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.25.7': + resolution: {integrity: sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.25.7': + resolution: {integrity: sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.25.7': + resolution: {integrity: sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.25.7': + resolution: {integrity: sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.25.8': + resolution: {integrity: sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.25.8': + resolution: {integrity: sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.25.8': + resolution: {integrity: sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.25.7': + resolution: {integrity: sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.25.8': + resolution: {integrity: sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.25.8': + resolution: {integrity: sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.25.7': + resolution: {integrity: sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.25.7': + resolution: {integrity: sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.25.8': + resolution: {integrity: sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.25.7': + resolution: {integrity: sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.25.7': + resolution: {integrity: sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-reserved-words@7.25.7': + resolution: {integrity: sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-runtime@7.24.7': + resolution: {integrity: sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.25.7': + resolution: {integrity: sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.25.7': + resolution: {integrity: sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.25.7': + resolution: {integrity: sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.25.7': + resolution: {integrity: sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.25.7': + resolution: {integrity: sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.25.7': + resolution: {integrity: sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.25.7': + resolution: {integrity: sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.25.7': + resolution: {integrity: sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.25.7': + resolution: {integrity: sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.25.3': + resolution: {integrity: sha512-QsYW7UeAaXvLPX9tdVliMJE7MD7M6MLYVTovRTIwhoYQVFHR1rM4wO8wqAezYi3/BpSD+NzVCZ69R6smWiIi8g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/runtime@7.25.0': + resolution: {integrity: sha512-7dRy4DwXwtzBrPbZflqxnvfxLF8kdZXPkhymtDeFoFqE6ldzjQFgYTtYIFARcLEYDrqfBfYcZt1WqFxRoyC9Rw==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.25.7': + resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.25.7': + resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.25.8': + resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} + engines: {node: '>=6.9.0'} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@discoveryjs/json-ext@0.6.1': + resolution: {integrity: sha512-boghen8F0Q8D+0/Q1/1r6DUEieUJ8w2a1gIknExMSHBsJFOr2+0KUfHiVYBvucPwl3+RU5PFBK833FjFCh3BhA==} + engines: {node: '>=14.17.0'} + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.23.0': + resolution: {integrity: sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.23.0': + resolution: {integrity: sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.23.0': + resolution: {integrity: sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.23.0': + resolution: {integrity: sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.23.0': + resolution: {integrity: sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.23.0': + resolution: {integrity: sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.23.0': + resolution: {integrity: sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.23.0': + resolution: {integrity: sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.23.0': + resolution: {integrity: sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.23.0': + resolution: {integrity: sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.23.0': + resolution: {integrity: sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.23.0': + resolution: {integrity: sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.23.0': + resolution: {integrity: sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.23.0': + resolution: {integrity: sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.23.0': + resolution: {integrity: sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.23.0': + resolution: {integrity: sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.23.0': + resolution: {integrity: sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.23.0': + resolution: {integrity: sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.0': + resolution: {integrity: sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.23.0': + resolution: {integrity: sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.23.0': + resolution: {integrity: sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.23.0': + resolution: {integrity: sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.23.0': + resolution: {integrity: sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.23.0': + resolution: {integrity: sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@hey-api/openapi-ts@0.45.1': + resolution: {integrity: sha512-TT4YC9SshgruHnr/z47LD945hFhefuD6xSfdt9+fv/sU+shP0nPJhNdyt71oMGTAB9h6nsrjC8z84ZnoAGKHrg==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + typescript: ^5.x + + '@inquirer/checkbox@2.5.0': + resolution: {integrity: sha512-sMgdETOfi2dUHT8r7TT1BTKOwNvdDGFDXYWtQ2J69SvlYNntk9I/gJe7r5yvMwwsuKnYbuRs3pNhx4tgNck5aA==} + engines: {node: '>=18'} + + '@inquirer/confirm@3.1.22': + resolution: {integrity: sha512-gsAKIOWBm2Q87CDfs9fEo7wJT3fwWIJfnDGMn9Qy74gBnNFOACDNfhUzovubbJjWnKLGBln7/NcSmZwj5DuEXg==} + engines: {node: '>=18'} + + '@inquirer/confirm@3.2.0': + resolution: {integrity: sha512-oOIwPs0Dvq5220Z8lGL/6LHRTEr9TgLHmiI99Rj1PJ1p1czTys+olrgBqZk4E2qC0YTzeHprxSQmoHioVdJ7Lw==} + engines: {node: '>=18'} + + '@inquirer/core@9.2.1': + resolution: {integrity: sha512-F2VBt7W/mwqEU4bL0RnHNZmC/OxzNx9cOYxHqnXX3MP6ruYvZUZAW9imgN9+h/uBT/oP8Gh888J2OZSbjSeWcg==} + engines: {node: '>=18'} + + '@inquirer/editor@2.2.0': + resolution: {integrity: sha512-9KHOpJ+dIL5SZli8lJ6xdaYLPPzB8xB9GZItg39MBybzhxA16vxmszmQFrRwbOA918WA2rvu8xhDEg/p6LXKbw==} + engines: {node: '>=18'} + + '@inquirer/expand@2.3.0': + resolution: {integrity: sha512-qnJsUcOGCSG1e5DTOErmv2BPQqrtT6uzqn1vI/aYGiPKq+FgslGZmtdnXbhuI7IlT7OByDoEEqdnhUnVR2hhLw==} + engines: {node: '>=18'} + + '@inquirer/figures@1.0.7': + resolution: {integrity: sha512-m+Trk77mp54Zma6xLkLuY+mvanPxlE4A7yNKs2HBiyZ4UkVs28Mv5c/pgWrHeInx+USHeX/WEPzjrWrcJiQgjw==} + engines: {node: '>=18'} + + '@inquirer/input@2.3.0': + resolution: {integrity: sha512-XfnpCStx2xgh1LIRqPXrTNEEByqQWoxsWYzNRSEUxJ5c6EQlhMogJ3vHKu8aXuTacebtaZzMAHwEL0kAflKOBw==} + engines: {node: '>=18'} + + '@inquirer/number@1.1.0': + resolution: {integrity: sha512-ilUnia/GZUtfSZy3YEErXLJ2Sljo/mf9fiKc08n18DdwdmDbOzRcTv65H1jjDvlsAuvdFXf4Sa/aL7iw/NanVA==} + engines: {node: '>=18'} + + '@inquirer/password@2.2.0': + resolution: {integrity: sha512-5otqIpgsPYIshqhgtEwSspBQE40etouR8VIxzpJkv9i0dVHIpyhiivbkH9/dGiMLdyamT54YRdGJLfl8TFnLHg==} + engines: {node: '>=18'} + + '@inquirer/prompts@5.3.8': + resolution: {integrity: sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==} + engines: {node: '>=18'} + + '@inquirer/rawlist@2.3.0': + resolution: {integrity: sha512-zzfNuINhFF7OLAtGHfhwOW2TlYJyli7lOUoJUXw/uyklcwalV6WRXBXtFIicN8rTRK1XTiPWB4UY+YuW8dsnLQ==} + engines: {node: '>=18'} + + '@inquirer/search@1.1.0': + resolution: {integrity: sha512-h+/5LSj51dx7hp5xOn4QFnUaKeARwUCLs6mIhtkJ0JYPBLmEYjdHSYh7I6GrLg9LwpJ3xeX0FZgAG1q0QdCpVQ==} + engines: {node: '>=18'} + + '@inquirer/select@2.5.0': + resolution: {integrity: sha512-YmDobTItPP3WcEI86GvPo+T2sRHkxxOq/kXmsBjHS5BVXUgvgZ5AfJjkvQvZr03T81NnI3KrrRuMzeuYUQRFOA==} + engines: {node: '>=18'} + + '@inquirer/type@1.5.5': + resolution: {integrity: sha512-MzICLu4yS7V8AA61sANROZ9vT1H3ooca5dSmI1FjZkzq7o/koMsRfQSzRtFo+F3Ao4Sf1C0bpLKejpKB/+j6MA==} + engines: {node: '>=18'} + + '@inquirer/type@2.0.0': + resolution: {integrity: sha512-XvJRx+2KR3YXyYtPUUy+qd9i7p+GO9Ko6VIIpWlBrpWwXDv8WLFeHTxz35CfQFUiBMLXlGHhGzys7lqit9gWag==} + engines: {node: '>=18'} + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jridgewell/gen-mapping@0.3.5': + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jsdevtools/ono@7.1.3': + resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.1.0': + resolution: {integrity: sha512-zlQONA+msXPPwHWZMKFVS78ewFczIll5lXiVPwFPCZUsrOKdxc2AvxU1HoNBmMRhqDZUR9HkC3UOm+6pME6Xsg==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@leichtgewicht/ip-codec@2.0.5': + resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} + + '@listr2/prompt-adapter-inquirer@2.0.15': + resolution: {integrity: sha512-MZrGem/Ujjd4cPTLYDfCZK2iKKeiO/8OX13S6jqxldLs0Prf2aGqVlJ77nMBqMv7fzqgXEgjrNHLXcKR8l9lOg==} + engines: {node: '>=18.0.0'} + peerDependencies: + '@inquirer/prompts': '>= 3 < 6' + + '@lmdb/lmdb-darwin-arm64@3.0.13': + resolution: {integrity: sha512-uiKPB0Fv6WEEOZjruu9a6wnW/8jrjzlZbxXscMB8kuCJ1k6kHpcBnuvaAWcqhbI7rqX5GKziwWEdD+wi2gNLfA==} + cpu: [arm64] + os: [darwin] + + '@lmdb/lmdb-darwin-x64@3.0.13': + resolution: {integrity: sha512-bEVIIfK5mSQoG1R19qA+fJOvCB+0wVGGnXHT3smchBVahYBdlPn2OsZZKzlHWfb1E+PhLBmYfqB5zQXFP7hJig==} + cpu: [x64] + os: [darwin] + + '@lmdb/lmdb-linux-arm64@3.0.13': + resolution: {integrity: sha512-afbVrsMgZ9dUTNUchFpj5VkmJRxvht/u335jUJ7o23YTbNbnpmXif3VKQGCtnjSh+CZaqm6N3CPG8KO3zwyZ1Q==} + cpu: [arm64] + os: [linux] + + '@lmdb/lmdb-linux-arm@3.0.13': + resolution: {integrity: sha512-Yml1KlMzOnXj/tnW7yX8U78iAzTk39aILYvCPbqeewAq1kSzl+w59k/fiVkTBfvDi/oW/5YRxL+Fq+Y1Fr1r2Q==} + cpu: [arm] + os: [linux] + + '@lmdb/lmdb-linux-x64@3.0.13': + resolution: {integrity: sha512-vOtxu0xC0SLdQ2WRXg8Qgd8T32ak4SPqk5zjItRszrJk2BdeXqfGxBJbP7o4aOvSPSmSSv46Lr1EP4HXU8v7Kg==} + cpu: [x64] + os: [linux] + + '@lmdb/lmdb-win32-x64@3.0.13': + resolution: {integrity: sha512-UCrMJQY/gJnOl3XgbWRZZUvGGBuKy6i0YNSptgMzHBjs+QYDYR1Mt/RLTOPy4fzzves65O1EDmlL//OzEqoLlA==} + cpu: [x64] + os: [win32] + + '@mapbox/geojson-rewind@0.5.2': + resolution: {integrity: sha512-tJaT+RbYGJYStt7wI3cq4Nl4SXxG8W7JDG5DMJu97V25RnbNg3QtQtf+KD+VLjNpWKYsRvXDNmNrBgEETr1ifA==} + hasBin: true + + '@mapbox/jsonlint-lines-primitives@2.0.2': + resolution: {integrity: sha512-rY0o9A5ECsTQRVhv7tL/OyDpGAoUB4tTvLiW1DSzQGq4bvTPhNw1VpSNjDJc5GFZ2XuyOtSWSVN05qOtcD71qQ==} + engines: {node: '>= 0.6'} + + '@mapbox/point-geometry@0.1.0': + resolution: {integrity: sha512-6j56HdLTwWGO0fJPlrZtdU/B13q8Uwmo18Ck2GnGgN9PCFyKTZ3UbXeEdRFh18i9XQ92eH2VdtpJHpBD3aripQ==} + + '@mapbox/tiny-sdf@2.0.6': + resolution: {integrity: sha512-qMqa27TLw+ZQz5Jk+RcwZGH7BQf5G/TrutJhspsca/3SHwmgKQ1iq+d3Jxz5oysPVYTGP6aXxCo5Lk9Er6YBAA==} + + '@mapbox/unitbezier@0.0.1': + resolution: {integrity: sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==} + + '@mapbox/vector-tile@1.3.1': + resolution: {integrity: sha512-MCEddb8u44/xfQ3oD+Srl/tNcQoqTw3goGk2oLsrFxOTc3dUp+kAnby3PvAeeBYSMSjSPD1nd1AJA6W49WnoUw==} + + '@mapbox/whoots-js@3.1.0': + resolution: {integrity: sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==} + engines: {node: '>=6.0.0'} + + '@maplibre/maplibre-gl-style-spec@20.4.0': + resolution: {integrity: sha512-AzBy3095fTFPjDjmWpR2w6HVRAZJ6hQZUCwk5Plz6EyfnfuQW1odeW5i2Ai47Y6TBA2hQnC+azscjBSALpaWgw==} + hasBin: true + + '@maplibre/ngx-maplibre-gl@17.4.3': + resolution: {integrity: sha512-u5kMH5mpORT7XspzT8g9f6iFK5sgjqSXzTLDxfPxTPQQXlHG/Njd7opbx0eXEkYOMXmRDSqe4SSIIrYHLzV0Lw==} + peerDependencies: + '@angular/common': '>= 17.0.0' + '@angular/core': '>= 17.0.0' + maplibre-gl: '>= 3.6.0' + rxjs: '>= 7.8.1' + + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} + cpu: [arm64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} + cpu: [x64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} + cpu: [arm64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} + cpu: [arm] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} + cpu: [x64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} + cpu: [x64] + os: [win32] + + '@ng-web-apis/common@3.2.3': + resolution: {integrity: sha512-1ts2FkLRw6dE/uTuYFMf9VTbLJ9CS8dpfIXTpxFsPArs13mEuz0Yvpe0rl0tMAhfNoeN4e7V8wVSyqDNgfzgmw==} + peerDependencies: + '@angular/common': '>=12.0.0' + '@angular/core': '>=12.0.0' + rxjs: '>=6.4.0' + + '@ng-web-apis/geolocation@3.0.6': + resolution: {integrity: sha512-+D5lN8pEhoam75Vo/rAgYIqHZf07JE/5gVNSVMKSxk2t6q50nbiujekU3LY2BbSv/PSFeyjdrVh/FgV5TNaGOw==} + peerDependencies: + '@angular/common': '>=6.0.0' + '@angular/core': '>=6.0.0' + '@ng-web-apis/common': '>=1.0.0' + + '@ngtools/webpack@18.2.9': + resolution: {integrity: sha512-/apDvs4qevjSWoYw3h3/c/mILFrf2EgCJfBy9f3E7PEgi2tjifOIszBRrLQkVpeHAaFgEH8zKS2ol0hAmOl8sw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + '@angular/compiler-cli': ^18.0.0 + typescript: '>=5.4 <5.6' + webpack: ^5.54.0 + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/agent@2.2.2': + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/fs@3.1.1': + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/git@5.0.8': + resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/installed-package-contents@2.1.0': + resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + '@npmcli/node-gyp@3.0.0': + resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/package-json@5.2.1': + resolution: {integrity: sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/promise-spawn@7.0.2': + resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/redact@2.0.1': + resolution: {integrity: sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/run-script@8.1.0': + resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@rollup/rollup-android-arm-eabi@4.22.4': + resolution: {integrity: sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.22.4': + resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.22.4': + resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.22.4': + resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-linux-arm-gnueabihf@4.22.4': + resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.22.4': + resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.22.4': + resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.22.4': + resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': + resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.22.4': + resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.22.4': + resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.22.4': + resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.22.4': + resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.22.4': + resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.22.4': + resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.22.4': + resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + cpu: [x64] + os: [win32] + + '@schematics/angular@18.2.9': + resolution: {integrity: sha512-LlMHZQ6f8zrqSK24OBXi4u2MTNHNu9ZN6JXpbElq0bz/9QkUR2zy+Kk2wLpPxCwXYTZby7/xgHiTzXvG+zTdhw==} + engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + + '@sigstore/bundle@2.3.2': + resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/core@1.1.0': + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/protobuf-specs@0.3.2': + resolution: {integrity: sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/sign@2.3.2': + resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/tuf@2.3.4': + resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/verify@1.2.1': + resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sindresorhus/merge-streams@2.3.0': + resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} + engines: {node: '>=18'} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@tufjs/canonical-json@2.0.0': + resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@tufjs/models@2.0.1': + resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@turf/bbox@6.5.0': + resolution: {integrity: sha512-RBbLaao5hXTYyyg577iuMtDB8ehxMlUqHEJiMs8jT1GHkFhr6sYre3lmLsPeYEi/ZKj5TP5tt7fkzNdJ4GIVyw==} + + '@turf/bearing@6.5.0': + resolution: {integrity: sha512-dxINYhIEMzgDOztyMZc20I7ssYVNEpSv04VbMo5YPQsqa80KO3TFvbuCahMsCAW5z8Tncc8dwBlEFrmRjJG33A==} + + '@turf/clone@6.5.0': + resolution: {integrity: sha512-mzVtTFj/QycXOn6ig+annKrM6ZlimreKYz6f/GSERytOpgzodbQyOgkfwru100O1KQhhjSudKK4DsQ0oyi9cTw==} + + '@turf/distance@6.5.0': + resolution: {integrity: sha512-xzykSLfoURec5qvQJcfifw/1mJa+5UwByZZ5TZ8iaqjGYN0vomhV9aiSLeYdUGtYRESZ+DYC/OzY+4RclZYgMg==} + + '@turf/helpers@6.5.0': + resolution: {integrity: sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==} + + '@turf/invariant@6.5.0': + resolution: {integrity: sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==} + + '@turf/length@6.5.0': + resolution: {integrity: sha512-5pL5/pnw52fck3oRsHDcSGrj9HibvtlrZ0QNy2OcW8qBFDNgZ4jtl6U7eATVoyWPKBHszW3dWETW+iLV7UARig==} + + '@turf/meta@6.5.0': + resolution: {integrity: sha512-RrArvtsV0vdsCBegoBtOalgdSOfkBrTJ07VkpiCnq/491W67hnMWmDu7e6Ztw0C3WldRYTXkg3SumfdzZxLBHA==} + + '@turf/nearest-point@6.5.0': + resolution: {integrity: sha512-fguV09QxilZv/p94s8SMsXILIAMiaXI5PATq9d7YWijLxWUj6Q/r43kxyoi78Zmwwh1Zfqz9w+bCYUAxZ5+euA==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/bonjour@3.5.13': + resolution: {integrity: sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==} + + '@types/connect-history-api-fallback@1.5.4': + resolution: {integrity: sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/cookie@0.4.1': + resolution: {integrity: sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==} + + '@types/cors@2.8.17': + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + + '@types/estree@1.0.5': + resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + + '@types/express-serve-static-core@5.0.0': + resolution: {integrity: sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/geojson-vt@3.2.5': + resolution: {integrity: sha512-qDO7wqtprzlpe8FfQ//ClPV9xiuoh2nkIgiouIptON9w5jvD/fA4szvP9GBlDVdJ5dldAl0kX/sy3URbWwLx0g==} + + '@types/geojson@7946.0.14': + resolution: {integrity: sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/http-proxy@1.17.15': + resolution: {integrity: sha512-25g5atgiVNTIv0LBDTg1H74Hvayx0ajtJPLLcYE3whFv75J0pWNtOBzaXJQgDTmrX1bx5U9YC2w/n65BN1HwRQ==} + + '@types/jasmine@5.1.4': + resolution: {integrity: sha512-px7OMFO/ncXxixDe1zR13V1iycqWae0MxTaw62RpFlksUi5QuNWgQJFkTQjIOvrmutJbI7Fp2Y2N1F6D2R4G6w==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/mapbox__point-geometry@0.1.4': + resolution: {integrity: sha512-mUWlSxAmYLfwnRBmgYV86tgYmMIICX4kza8YnE/eIlywGe2XoOxlpVnXWwir92xRLjwyarqwpu2EJKD2pk0IUA==} + + '@types/mapbox__vector-tile@1.3.4': + resolution: {integrity: sha512-bpd8dRn9pr6xKvuEBQup8pwQfD4VUyqO/2deGjfpe6AwC8YRlyEipvefyRJUSiCJTZuCb8Pl1ciVV5ekqJ96Bg==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/motion-sensors-polyfill@0.3.5': + resolution: {integrity: sha512-AgOnxC7mLeuxJoItc/q0vQFpA3Zhj62QZcY1E/KafOuZmvwcwNQL7tjEjnWvYKQbicEzzmRm2F2Ty+EuBsnDVw==} + + '@types/mute-stream@0.0.4': + resolution: {integrity: sha512-CPM9nzrCPPJHQNA9keH9CVkVI+WR5kMa+7XEs5jcGQ0VoAGnLv242w8lIVgwAEfmE4oufJRaTc9PNLQl0ioAow==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@20.16.12': + resolution: {integrity: sha512-LfPFB0zOeCeCNQV3i+67rcoVvoN5n0NVuR2vLG0O5ySQMgchuZlC4lgz546ZOJyDtj5KIgOxy+lacOimfqZAIA==} + + '@types/node@22.7.6': + resolution: {integrity: sha512-/d7Rnj0/ExXDMcioS78/kf1lMzYk4BZV8MZGTBKzTGZ6/406ukkbYlIsZmMPhcR5KlkunDHQLrtAVmSq7r+mSw==} + + '@types/pbf@3.0.5': + resolution: {integrity: sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==} + + '@types/qs@6.9.16': + resolution: {integrity: sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/retry@0.12.2': + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-index@1.9.4': + resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/sockjs@0.3.36': + resolution: {integrity: sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==} + + '@types/supercluster@7.1.3': + resolution: {integrity: sha512-Z0pOY34GDFl3Q6hUFYf3HkTwKEE02e7QgtJppBt+beEAxnyOpJua+voGFvxINBHa06GwLFFym7gRPY2SiKIfIA==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/wrap-ansi@3.0.0': + resolution: {integrity: sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==} + + '@types/ws@8.5.12': + resolution: {integrity: sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==} + + '@vitejs/plugin-basic-ssl@1.1.0': + resolution: {integrity: sha512-wO4Dk/rm8u7RNhOf95ZzcEmC9rYOncYgvq4z3duaJrCgjN8BxAnDVyndanfcJZ0O6XZzHz6Q0hTimxTg8Y9g/A==} + engines: {node: '>=14.6.0'} + peerDependencies: + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + + '@webassemblyjs/ast@1.12.1': + resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==} + + '@webassemblyjs/floating-point-hex-parser@1.11.6': + resolution: {integrity: sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==} + + '@webassemblyjs/helper-api-error@1.11.6': + resolution: {integrity: sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==} + + '@webassemblyjs/helper-buffer@1.12.1': + resolution: {integrity: sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==} + + '@webassemblyjs/helper-numbers@1.11.6': + resolution: {integrity: sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==} + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': + resolution: {integrity: sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==} + + '@webassemblyjs/helper-wasm-section@1.12.1': + resolution: {integrity: sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==} + + '@webassemblyjs/ieee754@1.11.6': + resolution: {integrity: sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==} + + '@webassemblyjs/leb128@1.11.6': + resolution: {integrity: sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==} + + '@webassemblyjs/utf8@1.11.6': + resolution: {integrity: sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==} + + '@webassemblyjs/wasm-edit@1.12.1': + resolution: {integrity: sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==} + + '@webassemblyjs/wasm-gen@1.12.1': + resolution: {integrity: sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==} + + '@webassemblyjs/wasm-opt@1.12.1': + resolution: {integrity: sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==} + + '@webassemblyjs/wasm-parser@1.12.1': + resolution: {integrity: sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==} + + '@webassemblyjs/wast-printer@1.12.1': + resolution: {integrity: sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==} + + '@xtuc/ieee754@1.2.0': + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + + '@xtuc/long@4.2.2': + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + + '@yarnpkg/lockfile@1.1.0': + resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} + + abbrev@2.0.0: + resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-import-attributes@1.9.5: + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + peerDependencies: + acorn: ^8 + + acorn@8.13.0: + resolution: {integrity: sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==} + engines: {node: '>=0.4.0'} + hasBin: true + + adjust-sourcemap-loader@4.0.0: + resolution: {integrity: sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==} + engines: {node: '>=8.9'} + + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv-formats@2.1.1: + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-keywords@3.5.2: + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + peerDependencies: + ajv: ^6.9.1 + + ajv-keywords@5.1.0: + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + peerDependencies: + ajv: ^8.8.2 + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-escapes@7.0.0: + resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==} + engines: {node: '>=18'} + + ansi-html-community@0.0.8: + resolution: {integrity: sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==} + engines: {'0': node >= 0.8.0} + hasBin: true + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + + babel-loader@9.1.3: + resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} + engines: {node: '>= 14.15.0'} + peerDependencies: + '@babel/core': ^7.12.0 + webpack: '>=5' + + babel-plugin-polyfill-corejs2@0.4.11: + resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.2: + resolution: {integrity: sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + big.js@5.2.2: + resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + bonjour-service@1.2.1: + resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + + bytes@3.0.0: + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + c12@1.10.0: + resolution: {integrity: sha512-0SsG7UDhoRWcuSvKWHaXmu5uNjDCDN3nkQLRL4Q42IlFy+ze58FcCoI3uPwINXinkz7ZinbhEgyzYFw9u9ZV8g==} + + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} + + caniuse-lite@1.0.30001669: + resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chardet@0.7.0: + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chokidar@4.0.1: + resolution: {integrity: sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==} + engines: {node: '>= 14.16.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + chrome-trace-event@1.0.4: + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-cursor@5.0.0: + resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==} + engines: {node: '>=18'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-truncate@4.0.0: + resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} + engines: {node: '>=18'} + + cli-width@4.1.0: + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + commander@12.0.0: + resolution: {integrity: sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==} + engines: {node: '>=18'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + common-path-prefix@3.0.0: + resolution: {integrity: sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.7.4: + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + connect-history-api-fallback@2.0.0: + resolution: {integrity: sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==} + engines: {node: '>=0.8'} + + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + + consola@3.2.3: + resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==} + engines: {node: ^14.18.0 || >=16.10.0} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + copy-anything@2.0.6: + resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==} + + copy-webpack-plugin@12.0.2: + resolution: {integrity: sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.1.0 + + core-js-compat@3.38.1: + resolution: {integrity: sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + + critters@0.0.24: + resolution: {integrity: sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==} + + cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + + css-loader@7.1.2: + resolution: {integrity: sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + webpack: ^5.27.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + custom-event@1.0.1: + resolution: {integrity: sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==} + + d3-queue@3.0.7: + resolution: {integrity: sha512-2rs+6pNFKkrJhqe1rg5znw7dKJ7KZr62j9aLZfhondkrnz6U7VRmJj1UGcbD8MRc46c7H8m4SWhab8EalBQrkw==} + + date-format@4.0.14: + resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} + engines: {node: '>=4.0'} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + + default-gateway@6.0.3: + resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} + engines: {node: '>= 10'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + di@0.0.1: + resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} + + dns-packet@5.6.1: + resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} + engines: {node: '>=6'} + + dom-serialize@2.2.1: + resolution: {integrity: sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.1.0: + resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + earcut@3.0.0: + resolution: {integrity: sha512-41Fs7Q/PLq1SDbqjsgcY7GA42T0jvaCNGXgGtsNdvg+Yv8eIu06bxv4/PoREkZ9nMDNwnUSG9OFB9+yv8eKhDg==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-to-chromium@1.5.41: + resolution: {integrity: sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==} + + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + emojis-list@3.0.0: + resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} + engines: {node: '>= 4'} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + engine.io@6.6.2: + resolution: {integrity: sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==} + engines: {node: '>=10.2.0'} + + enhanced-resolve@5.17.1: + resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} + engines: {node: '>=10.13.0'} + + ent@2.2.1: + resolution: {integrity: sha512-QHuXVeZx9d+tIQAz/XztU0ZwZf2Agg9CcXcgE1rurqvdBeDBrpSwjl8/6XUqMg7tw2Y7uAdKb2sRv+bSEFqQ5A==} + engines: {node: '>= 0.4'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + errno@0.1.8: + resolution: {integrity: sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==} + hasBin: true + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-module-lexer@1.5.4: + resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + + esbuild-wasm@0.23.0: + resolution: {integrity: sha512-6jP8UmWy6R6TUUV8bMuC3ZyZ6lZKI56x0tkxyCIqWwRRJ/DgeQKneh/Oid5EoGoPFLrGNkz47ZEtWAYuiY/u9g==} + engines: {node: '>=18'} + hasBin: true + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.23.0: + resolution: {integrity: sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + + execspawn@1.0.1: + resolution: {integrity: sha512-s2k06Jy9i8CUkYe0+DxRlvtkZoOkwwfhB+Xxo5HGUtrISVW2m98jO2tr67DGRFxZwkjQqloA3v/tNtjhBRBieg==} + + exponential-backoff@3.1.1: + resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} + + express@4.21.1: + resolution: {integrity: sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==} + engines: {node: '>= 0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + external-editor@3.1.0: + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-uri@3.0.3: + resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + + fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + find-cache-dir@4.0.0: + resolution: {integrity: sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==} + engines: {node: '>=14.16'} + + find-up@6.3.0: + resolution: {integrity: sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + flat@5.0.2: + resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} + hasBin: true + + flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + fontnik@0.7.2: + resolution: {integrity: sha512-FaDkxlLSsKUYiJkGkQpMsIEdb1EVmpqXFy4Mz2vMhSPkxYMKYcyZYgzD2McKm/8QAWRB3Lx2G3RmhBF0l1Z1NQ==} + hasBin: true + + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} + engines: {node: '>=14'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + geojson-vt@4.0.2: + resolution: {integrity: sha512-AV9ROqlNqoZEIJGfm1ncNjEXfkz2hdFlZf0qkVfmkwdKa8vj7H16YUOT81rJw1rdFhyEDlN2Tds91p/glzbl5A==} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} + engines: {node: '>=18'} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + + giget@1.2.3: + resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==} + hasBin: true + + gl-matrix@3.4.3: + resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + global-prefix@4.0.0: + resolution: {integrity: sha512-w0Uf9Y9/nyHinEk5vMJKRie+wa4kR5hmDbEhGGds/kG1PwGLLHKRoNMeJOyCQjjBkANlnScqgzcFwGHgmgLkVA==} + engines: {node: '>=16'} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globby@14.0.2: + resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==} + engines: {node: '>=18'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + handle-thing@2.0.1: + resolution: {integrity: sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} + engines: {node: ^16.14.0 || >=18.0.0} + + hpack.js@2.1.6: + resolution: {integrity: sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==} + + html-entities@2.5.2: + resolution: {integrity: sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + htmlparser2@8.0.2: + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-deceiver@1.2.7: + resolution: {integrity: sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.8: + resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} + + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + + http-proxy-middleware@2.0.7: + resolution: {integrity: sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA==} + engines: {node: '>=12.0.0'} + peerDependencies: + '@types/express': ^4.17.13 + peerDependenciesMeta: + '@types/express': + optional: true + + http-proxy-middleware@3.0.0: + resolution: {integrity: sha512-36AV1fIaI2cWRzHo+rbcxhe3M3jUDCNzc4D5zRl57sEWRAxdXYtw7FSQKYY6PDKssiAKjLYypbssHk+xs/kMXw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + icss-utils@5.1.0: + resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore-walk@6.0.5: + resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-size@0.5.5: + resolution: {integrity: sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + immutable@4.3.7: + resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + + import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + inflight@1.0.6: + resolution: {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. + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + ipaddr.js@2.2.0: + resolution: {integrity: sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==} + engines: {node: '>= 10'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-fullwidth-code-point@4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + + is-fullwidth-code-point@5.0.0: + resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==} + engines: {node: '>=18'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-network-error@1.1.0: + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-plain-obj@3.0.0: + resolution: {integrity: sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==} + engines: {node: '>=10'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-stream@3.0.0: + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-what@3.14.1: + resolution: {integrity: sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==} + + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isbinaryfile@4.0.10: + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isexe@3.1.1: + resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} + engines: {node: '>=16'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} + + istanbul-lib-source-maps@4.0.1: + resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jasmine-core@4.6.1: + resolution: {integrity: sha512-VYz/BjjmC3klLJlLwA4Kw8ytk0zDSmbbDLNs794VnWmkcCB7I9aAL/D48VNQtmITyPvea2C3jdUMfc3kAoy0PQ==} + + jasmine-core@5.1.2: + resolution: {integrity: sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==} + + jest-worker@27.5.1: + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} + + jiti@1.21.6: + resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + hasBin: true + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-untar@2.0.0: + resolution: {integrity: sha512-7CsDLrYQMbLxDt2zl9uKaPZSdmJMvGGQ7wo9hoB3J+z/VcO2w63bXFgHVnjF1+S9wD3zAu8FBVj7EYWjTQ3Z7g==} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jsesc@2.5.2: + resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} + engines: {node: '>=4'} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-parse-even-better-errors@3.0.2: + resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-stringify-pretty-compact@4.0.0: + resolution: {integrity: sha512-3CNZ2DnrpByG9Nqj6Xo8vqbjT4F6N+tb4Gb28ESAZjYZ5yqvmc56J+/kuIwkaAMOyblTQhUW7PxMkUb8Q36N3Q==} + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonparse@1.3.1: + resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} + engines: {'0': node >= 0.2.0} + + karma-chrome-launcher@3.2.0: + resolution: {integrity: sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==} + + karma-coverage@2.2.1: + resolution: {integrity: sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==} + engines: {node: '>=10.0.0'} + + karma-jasmine-html-reporter@2.1.0: + resolution: {integrity: sha512-sPQE1+nlsn6Hwb5t+HHwyy0A1FNCVKuL1192b+XNauMYWThz2kweiBVW1DqloRpVvZIJkIoHVB7XRpK78n1xbQ==} + peerDependencies: + jasmine-core: ^4.0.0 || ^5.0.0 + karma: ^6.0.0 + karma-jasmine: ^5.0.0 + + karma-jasmine@5.1.0: + resolution: {integrity: sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==} + engines: {node: '>=12'} + peerDependencies: + karma: ^6.0.0 + + karma-source-map-support@1.4.0: + resolution: {integrity: sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==} + + karma@6.4.4: + resolution: {integrity: sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==} + engines: {node: '>= 10'} + hasBin: true + + kdbush@4.0.2: + resolution: {integrity: sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + launch-editor@2.9.1: + resolution: {integrity: sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==} + + less-loader@12.2.0: + resolution: {integrity: sha512-MYUxjSQSBUQmowc0l5nPieOYwMzGPUaTzB6inNW/bdPEG9zOL3eAAD1Qw5ZxSPk7we5dMojHwNODYMV1hq4EVg==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + less: ^3.5.0 || ^4.0.0 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + less@4.2.0: + resolution: {integrity: sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==} + engines: {node: '>=6'} + hasBin: true + + license-webpack-plugin@4.0.2: + resolution: {integrity: sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==} + peerDependencies: + webpack: '*' + peerDependenciesMeta: + webpack: + optional: true + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + listr2@8.2.4: + resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==} + engines: {node: '>=18.0.0'} + + lmdb@3.0.13: + resolution: {integrity: sha512-UGe+BbaSUQtAMZobTb4nHvFMrmvuAQKSeaqAX2meTEQjfsbpl5sxdHD8T72OnwD4GU9uwNhYXIVe4QGs8N9Zyw==} + hasBin: true + + loader-runner@4.3.0: + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} + + loader-utils@2.0.4: + resolution: {integrity: sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==} + engines: {node: '>=8.9.0'} + + loader-utils@3.3.1: + resolution: {integrity: sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==} + engines: {node: '>= 12.13.0'} + + locate-path@7.2.0: + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@6.1.0: + resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==} + engines: {node: '>=18'} + + log4js@6.9.1: + resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==} + engines: {node: '>=8.0'} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + magic-string@0.30.11: + resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-dir@4.0.0: + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} + + make-fetch-happen@13.0.1: + resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} + engines: {node: ^16.14.0 || >=18.0.0} + + maplibre-gl@4.7.1: + resolution: {integrity: sha512-lgL7XpIwsgICiL82ITplfS7IGwrB1OJIw/pCvprDp2dhmSSEBgmPzYRvwYYYvJGJD7fxUv1Tvpih4nZ6VrLuaA==} + engines: {node: '>=16.14.0', npm: '>=8.1.0'} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memfs@4.14.0: + resolution: {integrity: sha512-JUeY0F/fQZgIod31Ja1eJgiSxLn7BfQlCnqhwXFBzFHEw63OdLK7VJUJ7bnzNsWgCyoUP5tEp1VRY8rDaYzqOA==} + engines: {node: '>= 4.0.0'} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.53.0: + resolution: {integrity: sha512-oHlN/w+3MQ3rba9rqFr6V/ypF10LSkdwUysQL7GkXoTgIWeV+tcXGA852TBxH+gsh8UWoyhR1hKcoMJTuWflpg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-fn@4.0.0: + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} + + mimic-function@5.0.1: + resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==} + engines: {node: '>=18'} + + mini-css-extract-plugin@2.9.0: + resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} + engines: {node: '>= 12.13.0'} + peerDependencies: + webpack: ^5.0.0 + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@2.0.1: + resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} + engines: {node: '>=16 || 14 >=14.17'} + + minipass-fetch@3.0.5: + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.2: + resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==} + + motion-sensors-polyfill@0.3.7: + resolution: {integrity: sha512-1pooqMIrFwevDWpaFhtTY+kpCnCe7fde0FFrOkLgaCziWxDrAkj2FLywh1ll8CsvMTT2DWR9VyOyHekw/sEjoQ==} + + mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} + engines: {node: '>=10'} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + msgpackr-extract@3.0.3: + resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} + hasBin: true + + msgpackr@1.11.0: + resolution: {integrity: sha512-I8qXuuALqJe5laEBYoFykChhSXLikZmUhccjGsPuSJ/7uPip2TJ7lwdIQwWSAi0jGZDXv4WOP8Qg65QZRuXxXw==} + + multicast-dns@7.2.5: + resolution: {integrity: sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==} + hasBin: true + + murmurhash-js@1.0.0: + resolution: {integrity: sha512-TvmkNhkv8yct0SVBSy+o8wYzXjE4Zz3PCesbfs8HiCXXdcTuocApFv11UWlNFWKYsP2okqrhb7JNlSm9InBhIw==} + + mute-stream@1.0.0: + resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + nanoid@3.3.7: + resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + needle@3.3.1: + resolution: {integrity: sha512-6k0YULvhpw+RoLNiQCRKOl09Rv1dPLr8hHnVjHqdolKwDrdNyk+Hmrthi4lIGPPz3r39dLx0hsF5s40sZ3Us4Q==} + engines: {node: '>= 4.4.x'} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + ngx-image-compress@15.1.6: + resolution: {integrity: sha512-kMoK06er6vLV7/3Ly3S8Eef4mADZHU2A+JeBAt56nOV7iAzz6GolT2cNq40XR5hFpthcnzHs7aIcl4Sr84xK6w==} + peerDependencies: + '@angular/common': x.x.x + '@angular/core': x.x.x + + ngx-indexed-db@17.1.0: + resolution: {integrity: sha512-owdZG0P0TyjY+cb301beg2i07XocJGQK1f2sX65ZD8yJYMefu++KA9sMf3uflD/gQIxl9LxBcFJw6CuTac9PpQ==} + peerDependencies: + '@angular/common': '>=10.0.6' + '@angular/core': '>=10.0.6' + + nice-napi@1.0.2: + resolution: {integrity: sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==} + os: ['!win32'] + + node-abi@3.71.0: + resolution: {integrity: sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==} + engines: {node: '>=10'} + + node-addon-api@2.0.2: + resolution: {integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==} + + node-addon-api@3.2.1: + resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==} + + node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + + node-fetch-native@1.6.4: + resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + node-gyp-build-optional-packages@5.2.2: + resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} + hasBin: true + + node-gyp-build@4.8.2: + resolution: {integrity: sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw==} + hasBin: true + + node-gyp@10.2.0: + resolution: {integrity: sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + hasBin: true + + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} + engines: {node: ^16.14.0 || >=18.0.0} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + + npm-bundled@3.0.1: + resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-package-arg@11.0.3: + resolution: {integrity: sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-packlist@8.0.2: + resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + npm-pick-manifest@9.1.0: + resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-registry-fetch@17.1.0: + resolution: {integrity: sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==} + engines: {node: ^16.14.0 || >=18.0.0} + + npm-run-path@3.1.0: + resolution: {integrity: sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==} + engines: {node: '>=8'} + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nypm@0.3.12: + resolution: {integrity: sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.2: + resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} + engines: {node: '>= 0.4'} + + obuf@1.1.2: + resolution: {integrity: sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + onetime@6.0.0: + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} + + onetime@7.0.0: + resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==} + engines: {node: '>=18'} + + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + ordered-binary@1.5.2: + resolution: {integrity: sha512-JTo+4+4Fw7FreyAvlSLjb1BBVaxEQAacmjD3jjuyPZclpbEghTvQZbXBb2qPd2LeIMxiHwXBZUcpmG2Gl/mDEA==} + + os-tmpdir@1.0.2: + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@6.0.0: + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-retry@6.2.0: + resolution: {integrity: sha512-JA6nkq6hKyWLLasXQXUrO4z8BUZGUt/LjlJxx8Gb2+2ntodU/SS63YZ8b0LUTbQ8ZB9iwOfhEPhg4ykKnn2KsA==} + engines: {node: '>=16.17'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + pacote@18.0.6: + resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parse-node-version@1.0.1: + resolution: {integrity: sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==} + engines: {node: '>= 0.10'} + + parse5-html-rewriting-stream@7.0.0: + resolution: {integrity: sha512-mazCyGWkmCRWDI15Zp+UiCqMp/0dgEmkZRvhlsqqKYr4SsVm/TvnSpD9fCvqCA2zoWJcfRym846ejWBBHRiYEg==} + + parse5-sax-parser@7.0.0: + resolution: {integrity: sha512-5A+v2SNsq8T6/mG3ahcz8ZtQ0OUFTatxPbeidoMB7tkJSGDY3tdfl4MHovtLQHkEn5CGxijNWRQHhRQ6IRpXKg==} + + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-key@4.0.0: + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@0.1.10: + resolution: {integrity: sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==} + + path-type@5.0.0: + resolution: {integrity: sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==} + engines: {node: '>=12'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pbf@3.3.0: + resolution: {integrity: sha512-XDF38WCH3z5OV/OVa8GKUNtLAyneuzbCisx7QUCF8Q6Nutx0WnJrQe5O+kOtBlLfRNUws98Y58Lblp+NJG5T4Q==} + hasBin: true + + perfect-debounce@1.0.0: + resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + piscina@4.6.1: + resolution: {integrity: sha512-z30AwWGtQE+Apr+2WBZensP2lIvwoaMcOPkQlIEmSGMJNUvaYACylPYrQM6wSdUNJlnDVMSpLv7xTMJqlVshOA==} + + pkg-dir@7.0.0: + resolution: {integrity: sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==} + engines: {node: '>=14.16'} + + pkg-types@1.2.1: + resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==} + + postcss-loader@8.1.1: + resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + postcss: ^7.0.0 || ^8.0.1 + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + webpack: + optional: true + + postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + + postcss-modules-extract-imports@3.1.0: + resolution: {integrity: sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-local-by-default@4.0.5: + resolution: {integrity: sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-scope@3.2.0: + resolution: {integrity: sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-modules-values@4.0.0: + resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} + engines: {node: ^10 || ^12 || >= 14} + peerDependencies: + postcss: ^8.1.0 + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + + postcss@8.4.41: + resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} + engines: {node: ^10 || ^12 || >=14} + + postcss@8.4.47: + resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + engines: {node: ^10 || ^12 || >=14} + + potpack@2.0.0: + resolution: {integrity: sha512-Q+/tYsFU9r7xoOJ+y/ZTtdVQwTWfzjbiXBDMM/JKUux3+QPP02iUuIoeBQ+Ot6oEDlC+/PGjB/5A3K7KKb7hcw==} + + prebuildify@5.0.1: + resolution: {integrity: sha512-vXpKLfIEsDCqMJWVIoSrUUBJQIuAk9uHAkLiGJuTdXdqKSJ10sHmWeuNCDkIoRFTV1BDGYMghHVmDFP8NfkA2Q==} + hasBin: true + + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + protocol-buffers-schema@3.6.0: + resolution: {integrity: sha512-TdDRD+/QNdrCGCE7v8340QyuXd4kIWIgapsE2+n/SaGiSSbomYl4TjHlvIoCWRpE7wFt02EpB35VVA2ImcBVqw==} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + prr@1.0.1: + resolution: {integrity: sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + qjobs@1.2.0: + resolution: {integrity: sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==} + engines: {node: '>=0.9'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quickselect@2.0.0: + resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} + + quickselect@3.0.0: + resolution: {integrity: sha512-XdjUArbK4Bm5fLLvlm5KpTFOiOThgfWWI4axAZDWg4E/0mKdZyI9tNEfds27qCi1ze/vwTR16kvmmGhRra3c2g==} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rc9@2.1.2: + resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readdirp@4.0.2: + resolution: {integrity: sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==} + engines: {node: '>= 14.16.0'} + + reflect-metadata@0.2.2: + resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==} + + regenerate-unicode-properties@10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regex-parser@2.3.0: + resolution: {integrity: sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==} + + regexpu-core@6.1.1: + resolution: {integrity: sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.11.1: + resolution: {integrity: sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==} + hasBin: true + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-protobuf-schema@2.1.0: + resolution: {integrity: sha512-kI5ffTiZWmJaS/huM8wZfEMer1eRd7oJQhDuxeCLe3t7N7mX3z94CN0xPxBQxFYQTSNz9T0i+v6inKqSdK8xrQ==} + + resolve-url-loader@5.0.0: + resolution: {integrity: sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==} + engines: {node: '>=12'} + + resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + restore-cursor@5.1.0: + resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} + engines: {node: '>=18'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + retry@0.13.1: + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} + + reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + rollup@4.22.4: + resolution: {integrity: sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rw@1.3.3: + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sass-loader@16.0.0: + resolution: {integrity: sha512-n13Z+3rU9A177dk4888czcVFiC8CL9dii4qpXWUg3YIIgZEvi9TCFKjOQcbK0kJM7DJu9VucrZFddvNfYCPwtw==} + engines: {node: '>= 18.12.0'} + peerDependencies: + '@rspack/core': 0.x || 1.x + node-sass: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + sass: ^1.3.0 + sass-embedded: '*' + webpack: ^5.0.0 + peerDependenciesMeta: + '@rspack/core': + optional: true + node-sass: + optional: true + sass: + optional: true + sass-embedded: + optional: true + webpack: + optional: true + + sass@1.77.6: + resolution: {integrity: sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==} + engines: {node: '>=14.0.0'} + hasBin: true + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + schema-utils@3.3.0: + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} + + schema-utils@4.2.0: + resolution: {integrity: sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==} + engines: {node: '>= 12.13.0'} + + select-hose@2.0.0: + resolution: {integrity: sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + sigstore@2.3.1: + resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} + engines: {node: ^16.14.0 || >=18.0.0} + + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + + slice-ansi@7.1.0: + resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==} + engines: {node: '>=18'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + socket.io@4.8.0: + resolution: {integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==} + engines: {node: '>=10.2.0'} + + sockjs@0.3.24: + resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} + engines: {node: '>= 14'} + + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-loader@5.0.0: + resolution: {integrity: sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.72.1 + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.7.4: + resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} + engines: {node: '>= 8'} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.20: + resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + + spdy-transport@3.0.0: + resolution: {integrity: sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==} + + spdy@4.0.2: + resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} + engines: {node: '>=6.0.0'} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + streamroller@3.1.5: + resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==} + engines: {node: '>=8.0'} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} + engines: {node: '>=18'} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-final-newline@3.0.0: + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} + + supercluster@8.0.1: + resolution: {integrity: sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + symbol-observable@4.0.0: + resolution: {integrity: sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==} + engines: {node: '>=0.10'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + terser-webpack-plugin@5.3.10: + resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + + terser@5.31.6: + resolution: {integrity: sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==} + engines: {node: '>=10'} + hasBin: true + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + thunky@1.1.0: + resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} + + tinyqueue@3.0.0: + resolution: {integrity: sha512-gRa9gwYU3ECmQYv3lslts5hxuIa90veaEcxDYuu3QGOIAEM2mOZkVHp48ANJuu1CURtRdHKUBY5Lm1tHV+sD4g==} + + tmp@0.0.33: + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + tree-kill@1.2.2: + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + hasBin: true + + tslib@2.6.2: + resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + + tslib@2.6.3: + resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + + tslib@2.8.0: + resolution: {integrity: sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==} + + tuf-js@2.2.1: + resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} + engines: {node: ^16.14.0 || >=18.0.0} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-assert@1.0.9: + resolution: {integrity: sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==} + + typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} + hasBin: true + + ua-parser-js@0.7.39: + resolution: {integrity: sha512-IZ6acm6RhQHNibSt7+c09hhvsKy9WUr4DVbeq9U8o71qxyYtJpQeDxQnMrVqnIFMLcQjHO0I9wgfO2vIahht4w==} + hasBin: true + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unicorn-magic@0.1.0: + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} + + unique-filename@3.0.0: + resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + unique-slug@4.0.0: + resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util-extend@1.0.3: + resolution: {integrity: sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vite@5.4.6: + resolution: {integrity: sha512-IeL5f8OO5nylsgzd9tq4qD2QqI0k2CQLGrWD0rCN0EQJZpBK5vJAx0I+GDkMOXxQX/OfFHMuLIx6ddAxGX/k+Q==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + void-elements@2.0.1: + resolution: {integrity: sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==} + engines: {node: '>=0.10.0'} + + vt-pbf@3.1.3: + resolution: {integrity: sha512-2LzDFzt0mZKZ9IpVF2r69G9bXaP2Q2sArJCmcCgvfTdCCZzSyz4aCLoQyUilu37Ll56tCblIZrXFIjNUpGIlmA==} + + watchpack@2.4.1: + resolution: {integrity: sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==} + engines: {node: '>=10.13.0'} + + wbuf@1.7.3: + resolution: {integrity: sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + weak-lru-cache@1.2.2: + resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} + + webpack-dev-middleware@7.4.2: + resolution: {integrity: sha512-xOO8n6eggxnwYpy1NlzUKpvrjfJTvae5/D6WOK0S2LSo7vjmo5gCM1DbLUmFqrMTJP+W/0YZNctm7jasWvLuBA==} + engines: {node: '>= 18.12.0'} + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + + webpack-dev-server@5.0.4: + resolution: {integrity: sha512-dljXhUgx3HqKP2d8J/fUMvhxGhzjeNVarDLcbO/EWMSgRizDkxHQDZQaLFL5VJY9tRBj2Gz+rvCEYYvhbqPHNA==} + engines: {node: '>= 18.12.0'} + hasBin: true + peerDependencies: + webpack: ^5.0.0 + webpack-cli: '*' + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + + webpack-merge@6.0.1: + resolution: {integrity: sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==} + engines: {node: '>=18.0.0'} + + webpack-sources@3.2.3: + resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} + engines: {node: '>=10.13.0'} + + webpack-subresource-integrity@5.1.0: + resolution: {integrity: sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==} + engines: {node: '>= 12'} + peerDependencies: + html-webpack-plugin: '>= 5.0.0-beta.1 < 6' + webpack: ^5.12.0 + peerDependenciesMeta: + html-webpack-plugin: + optional: true + + webpack@5.94.0: + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + wildcard@2.0.1: + resolution: {integrity: sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + + yoctocolors-cjs@2.1.2: + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} + + zone.js@0.14.10: + resolution: {integrity: sha512-YGAhaO7J5ywOXW6InXNlLmfU194F8lVgu7bRntUF3TiG8Y3nBK0x1UJJuHUP/e8IyihkjCYqhCScpSwnlaSRkQ==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@angular-devkit/architect@0.1802.9(chokidar@3.6.0)': + dependencies: + '@angular-devkit/core': 18.2.9(chokidar@3.6.0) + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + + '@angular-devkit/build-angular@18.2.9(@angular/compiler-cli@18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(@angular/service-worker@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@types/node@20.16.12)(chokidar@3.6.0)(karma@6.4.4)(typescript@5.4.5)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1802.9(chokidar@3.6.0) + '@angular-devkit/build-webpack': 0.1802.9(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack@5.94.0))(webpack@5.94.0(esbuild@0.23.0)) + '@angular-devkit/core': 18.2.9(chokidar@3.6.0) + '@angular/build': 18.2.9(@angular/compiler-cli@18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(@angular/service-worker@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@types/node@20.16.12)(chokidar@3.6.0)(less@4.2.0)(postcss@8.4.41)(terser@5.31.6)(typescript@5.4.5) + '@angular/compiler-cli': 18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5) + '@babel/core': 7.25.2 + '@babel/generator': 7.25.0 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-runtime': 7.24.7(@babel/core@7.25.2) + '@babel/preset-env': 7.25.3(@babel/core@7.25.2) + '@babel/runtime': 7.25.0 + '@discoveryjs/json-ext': 0.6.1 + '@ngtools/webpack': 18.2.9(@angular/compiler-cli@18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.94.0(esbuild@0.23.0)) + '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.4.6(@types/node@20.16.12)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)) + ansi-colors: 4.1.3 + autoprefixer: 10.4.20(postcss@8.4.41) + babel-loader: 9.1.3(@babel/core@7.25.2)(webpack@5.94.0(esbuild@0.23.0)) + browserslist: 4.24.0 + copy-webpack-plugin: 12.0.2(webpack@5.94.0(esbuild@0.23.0)) + critters: 0.0.24 + css-loader: 7.1.2(webpack@5.94.0(esbuild@0.23.0)) + esbuild-wasm: 0.23.0 + fast-glob: 3.3.2 + http-proxy-middleware: 3.0.0 + https-proxy-agent: 7.0.5 + istanbul-lib-instrument: 6.0.3 + jsonc-parser: 3.3.1 + karma-source-map-support: 1.4.0 + less: 4.2.0 + less-loader: 12.2.0(less@4.2.0)(webpack@5.94.0(esbuild@0.23.0)) + license-webpack-plugin: 4.0.2(webpack@5.94.0(esbuild@0.23.0)) + loader-utils: 3.3.1 + magic-string: 0.30.11 + mini-css-extract-plugin: 2.9.0(webpack@5.94.0(esbuild@0.23.0)) + mrmime: 2.0.0 + open: 10.1.0 + ora: 5.4.1 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.6.1 + postcss: 8.4.41 + postcss-loader: 8.1.1(postcss@8.4.41)(typescript@5.4.5)(webpack@5.94.0(esbuild@0.23.0)) + resolve-url-loader: 5.0.0 + rxjs: 7.8.1 + sass: 1.77.6 + sass-loader: 16.0.0(sass@1.77.6)(webpack@5.94.0(esbuild@0.23.0)) + semver: 7.6.3 + source-map-loader: 5.0.0(webpack@5.94.0(esbuild@0.23.0)) + source-map-support: 0.5.21 + terser: 5.31.6 + tree-kill: 1.2.2 + tslib: 2.6.3 + typescript: 5.4.5 + vite: 5.4.6(@types/node@20.16.12)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + watchpack: 2.4.1 + webpack: 5.94.0(esbuild@0.23.0) + webpack-dev-middleware: 7.4.2(webpack@5.94.0) + webpack-dev-server: 5.0.4(webpack@5.94.0) + webpack-merge: 6.0.1 + webpack-subresource-integrity: 5.1.0(webpack@5.94.0(esbuild@0.23.0)) + optionalDependencies: + '@angular/service-worker': 18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + esbuild: 0.23.0 + karma: 6.4.4 + transitivePeerDependencies: + - '@rspack/core' + - '@swc/core' + - '@types/node' + - bufferutil + - chokidar + - debug + - html-webpack-plugin + - lightningcss + - node-sass + - sass-embedded + - stylus + - sugarss + - supports-color + - uglify-js + - utf-8-validate + - webpack-cli + + '@angular-devkit/build-webpack@0.1802.9(chokidar@3.6.0)(webpack-dev-server@5.0.4(webpack@5.94.0))(webpack@5.94.0(esbuild@0.23.0))': + dependencies: + '@angular-devkit/architect': 0.1802.9(chokidar@3.6.0) + rxjs: 7.8.1 + webpack: 5.94.0(esbuild@0.23.0) + webpack-dev-server: 5.0.4(webpack@5.94.0) + transitivePeerDependencies: + - chokidar + + '@angular-devkit/core@18.2.9(chokidar@3.6.0)': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + jsonc-parser: 3.3.1 + picomatch: 4.0.2 + rxjs: 7.8.1 + source-map: 0.7.4 + optionalDependencies: + chokidar: 3.6.0 + + '@angular-devkit/schematics@18.2.9(chokidar@3.6.0)': + dependencies: + '@angular-devkit/core': 18.2.9(chokidar@3.6.0) + jsonc-parser: 3.3.1 + magic-string: 0.30.11 + ora: 5.4.1 + rxjs: 7.8.1 + transitivePeerDependencies: + - chokidar + + '@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))': + dependencies: + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + tslib: 2.8.0 + + '@angular/build@18.2.9(@angular/compiler-cli@18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(@angular/service-worker@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@types/node@20.16.12)(chokidar@3.6.0)(less@4.2.0)(postcss@8.4.41)(terser@5.31.6)(typescript@5.4.5)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@angular-devkit/architect': 0.1802.9(chokidar@3.6.0) + '@angular/compiler-cli': 18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5) + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.24.7 + '@babel/helper-split-export-declaration': 7.24.7 + '@babel/plugin-syntax-import-attributes': 7.24.7(@babel/core@7.25.2) + '@inquirer/confirm': 3.1.22 + '@vitejs/plugin-basic-ssl': 1.1.0(vite@5.4.6(@types/node@20.16.12)(less@4.2.0)(sass@1.77.6)(terser@5.31.6)) + browserslist: 4.24.0 + critters: 0.0.24 + esbuild: 0.23.0 + fast-glob: 3.3.2 + https-proxy-agent: 7.0.5 + listr2: 8.2.4 + lmdb: 3.0.13 + magic-string: 0.30.11 + mrmime: 2.0.0 + parse5-html-rewriting-stream: 7.0.0 + picomatch: 4.0.2 + piscina: 4.6.1 + rollup: 4.22.4 + sass: 1.77.6 + semver: 7.6.3 + typescript: 5.4.5 + vite: 5.4.6(@types/node@20.16.12)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + watchpack: 2.4.1 + optionalDependencies: + '@angular/service-worker': 18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + less: 4.2.0 + postcss: 8.4.41 + transitivePeerDependencies: + - '@types/node' + - chokidar + - lightningcss + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + + '@angular/cdk@18.2.9(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + rxjs: 7.8.1 + tslib: 2.8.0 + optionalDependencies: + parse5: 7.2.0 + + '@angular/cli@18.2.9(chokidar@3.6.0)': + dependencies: + '@angular-devkit/architect': 0.1802.9(chokidar@3.6.0) + '@angular-devkit/core': 18.2.9(chokidar@3.6.0) + '@angular-devkit/schematics': 18.2.9(chokidar@3.6.0) + '@inquirer/prompts': 5.3.8 + '@listr2/prompt-adapter-inquirer': 2.0.15(@inquirer/prompts@5.3.8) + '@schematics/angular': 18.2.9(chokidar@3.6.0) + '@yarnpkg/lockfile': 1.1.0 + ini: 4.1.3 + jsonc-parser: 3.3.1 + listr2: 8.2.4 + npm-package-arg: 11.0.3 + npm-pick-manifest: 9.1.0 + pacote: 18.0.6 + resolve: 1.22.8 + semver: 7.6.3 + symbol-observable: 4.0.0 + yargs: 17.7.2 + transitivePeerDependencies: + - bluebird + - chokidar + - supports-color + + '@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': + dependencies: + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + rxjs: 7.8.1 + tslib: 2.8.0 + + '@angular/compiler-cli@18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5)': + dependencies: + '@angular/compiler': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + '@babel/core': 7.25.2 + '@jridgewell/sourcemap-codec': 1.5.0 + chokidar: 4.0.1 + convert-source-map: 1.9.0 + reflect-metadata: 0.2.2 + semver: 7.6.3 + tslib: 2.8.0 + typescript: 5.4.5 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + + '@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))': + dependencies: + tslib: 2.8.0 + optionalDependencies: + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + + '@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)': + dependencies: + rxjs: 7.8.1 + tslib: 2.8.0 + zone.js: 0.14.10 + + '@angular/forms@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1)': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/platform-browser': 18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + rxjs: 7.8.1 + tslib: 2.8.0 + + '@angular/material@18.2.6(2rcj6hyebgqlg7h4w3kxwhlkgi)': + dependencies: + '@angular/animations': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/cdk': 18.2.9(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/forms': 18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1) + '@angular/platform-browser': 18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + rxjs: 7.8.1 + tslib: 2.8.0 + + '@angular/platform-browser-dynamic@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/compiler': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/platform-browser': 18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + tslib: 2.8.0 + + '@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + tslib: 2.8.0 + optionalDependencies: + '@angular/animations': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + + '@angular/pwa@18.2.9(@angular/cli@18.2.9(chokidar@3.6.0))(chokidar@3.6.0)': + dependencies: + '@angular-devkit/schematics': 18.2.9(chokidar@3.6.0) + '@schematics/angular': 18.2.9(chokidar@3.6.0) + parse5-html-rewriting-stream: 7.0.0 + optionalDependencies: + '@angular/cli': 18.2.9(chokidar@3.6.0) + transitivePeerDependencies: + - chokidar + + '@angular/router@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@angular/platform-browser@18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(rxjs@7.8.1)': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + '@angular/platform-browser': 18.2.8(@angular/animations@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)) + rxjs: 7.8.1 + tslib: 2.8.0 + + '@angular/service-worker@18.2.8(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + tslib: 2.8.0 + + '@apidevtools/json-schema-ref-parser@11.6.1': + dependencies: + '@jsdevtools/ono': 7.1.3 + '@types/json-schema': 7.0.15 + js-yaml: 4.1.0 + + '@babel/code-frame@7.25.7': + dependencies: + '@babel/highlight': 7.25.7 + picocolors: 1.1.1 + + '@babel/compat-data@7.25.8': {} + + '@babel/core@7.25.2': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.0 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.2) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/core@7.25.8': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) + '@babel/helpers': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + convert-source-map: 2.0.0 + debug: 4.3.7 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.25.0': + dependencies: + '@babel/types': 7.25.8 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 2.5.2 + + '@babel/generator@7.25.7': + dependencies: + '@babel/types': 7.25.8 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.0.2 + + '@babel/helper-annotate-as-pure@7.24.7': + dependencies: + '@babel/types': 7.25.8 + + '@babel/helper-annotate-as-pure@7.25.7': + dependencies: + '@babel/types': 7.25.8 + + '@babel/helper-builder-binary-assignment-operator-visitor@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-compilation-targets@7.25.7': + dependencies: + '@babel/compat-data': 7.25.8 + '@babel/helper-validator-option': 7.25.7 + browserslist: 4.24.0 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-member-expression-to-functions': 7.25.7 + '@babel/helper-optimise-call-expression': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.2) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/traverse': 7.25.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.25.7 + regexpu-core: 6.1.1 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + debug: 4.3.7 + lodash.debounce: 4.0.8 + resolve: 1.22.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': + dependencies: + '@babel/core': 7.25.8 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.25.7': + dependencies: + '@babel/types': 7.25.8 + + '@babel/helper-plugin-utils@7.25.7': {} + + '@babel/helper-remap-async-to-generator@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-wrap-function': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-member-expression-to-functions': 7.25.7 + '@babel/helper-optimise-call-expression': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-simple-access@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.25.7': + dependencies: + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color + + '@babel/helper-split-export-declaration@7.24.7': + dependencies: + '@babel/types': 7.25.8 + + '@babel/helper-string-parser@7.25.7': {} + + '@babel/helper-validator-identifier@7.25.7': {} + + '@babel/helper-validator-option@7.25.7': {} + + '@babel/helper-wrap-function@7.25.7': + dependencies: + '@babel/template': 7.25.7 + '@babel/traverse': 7.25.7 + '@babel/types': 7.25.8 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.25.7': + dependencies: + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 + + '@babel/highlight@7.25.7': + dependencies: + '@babel/helper-validator-identifier': 7.25.7 + chalk: 2.4.2 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/parser@7.25.8': + dependencies: + '@babel/types': 7.25.8 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + '@babel/plugin-transform-optional-chaining': 7.25.8(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-import-assertions@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-import-attributes@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-import-attributes@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-arrow-functions@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-async-generator-functions@7.25.0(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-remap-async-to-generator': 7.25.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-block-scoping@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-class-properties@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.2) + '@babel/traverse': 7.25.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/template': 7.25.7 + + '@babel/plugin-transform-destructuring@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-dotall-regex@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-duplicate-keys@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-dynamic-import@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-exponentiation-operator@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-builder-binary-assignment-operator-visitor': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-export-namespace-from@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-for-of@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-literals@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-logical-assignment-operators@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-member-expression-literals@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-modules-amd@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-simple-access': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + '@babel/traverse': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-new-target@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-nullish-coalescing-operator@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-numeric-separator@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-object-rest-spread@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) + + '@babel/plugin-transform-object-super@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-replace-supers': 7.25.7(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-optional-chaining@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-private-methods@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.25.8(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-annotate-as-pure': 7.25.7 + '@babel/helper-create-class-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-regenerator@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-reserved-words@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-runtime@7.24.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-module-imports': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-shorthand-properties@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-spread@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-template-literals@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-typeof-symbol@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-unicode-escapes@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-unicode-property-regex@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-unicode-regex@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/plugin-transform-unicode-sets-regex@7.25.7(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-create-regexp-features-plugin': 7.25.7(@babel/core@7.25.2) + '@babel/helper-plugin-utils': 7.25.7 + + '@babel/preset-env@7.25.3(@babel/core@7.25.2)': + dependencies: + '@babel/compat-data': 7.25.8 + '@babel/core': 7.25.2 + '@babel/helper-compilation-targets': 7.25.7 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/helper-validator-option': 7.25.7 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.25.2) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.25.2) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.2) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-import-assertions': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-attributes': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.25.2) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.25.2) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.25.2) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.25.2) + '@babel/plugin-transform-arrow-functions': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-async-generator-functions': 7.25.0(@babel/core@7.25.2) + '@babel/plugin-transform-async-to-generator': 7.24.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoped-functions': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-block-scoping': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-class-properties': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-class-static-block': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-classes': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-computed-properties': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-destructuring': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-dotall-regex': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-keys': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-dynamic-import': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-exponentiation-operator': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-export-namespace-from': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-for-of': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-function-name': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-json-strings': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-literals': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-logical-assignment-operators': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-member-expression-literals': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-amd': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-commonjs': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-systemjs': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-modules-umd': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-new-target': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-nullish-coalescing-operator': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-numeric-separator': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-object-rest-spread': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-object-super': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-optional-catch-binding': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-optional-chaining': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-parameters': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-methods': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-private-property-in-object': 7.25.8(@babel/core@7.25.2) + '@babel/plugin-transform-property-literals': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-regenerator': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-reserved-words': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-shorthand-properties': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-spread': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-sticky-regex': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-template-literals': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-typeof-symbol': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-escapes': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-property-regex': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-regex': 7.25.7(@babel/core@7.25.2) + '@babel/plugin-transform-unicode-sets-regex': 7.25.7(@babel/core@7.25.2) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.25.2) + babel-plugin-polyfill-corejs2: 0.4.11(@babel/core@7.25.2) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.25.2) + babel-plugin-polyfill-regenerator: 0.6.2(@babel/core@7.25.2) + core-js-compat: 3.38.1 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.25.2)': + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-plugin-utils': 7.25.7 + '@babel/types': 7.25.8 + esutils: 2.0.3 + + '@babel/runtime@7.25.0': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 + + '@babel/traverse@7.25.7': + dependencies: + '@babel/code-frame': 7.25.7 + '@babel/generator': 7.25.7 + '@babel/parser': 7.25.8 + '@babel/template': 7.25.7 + '@babel/types': 7.25.8 + debug: 4.3.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.25.8': + dependencies: + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 + to-fast-properties: 2.0.0 + + '@colors/colors@1.5.0': {} + + '@discoveryjs/json-ext@0.6.1': {} + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/aix-ppc64@0.23.0': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.23.0': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-arm@0.23.0': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/android-x64@0.23.0': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.23.0': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.23.0': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.23.0': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.23.0': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.23.0': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-arm@0.23.0': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.23.0': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.23.0': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.23.0': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.23.0': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.23.0': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.23.0': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/linux-x64@0.23.0': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.23.0': + optional: true + + '@esbuild/openbsd-arm64@0.23.0': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.23.0': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.23.0': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.23.0': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.23.0': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@esbuild/win32-x64@0.23.0': + optional: true + + '@hey-api/openapi-ts@0.45.1(typescript@5.4.5)': + dependencies: + '@apidevtools/json-schema-ref-parser': 11.6.1 + c12: 1.10.0 + camelcase: 8.0.0 + commander: 12.0.0 + handlebars: 4.7.8 + typescript: 5.4.5 + + '@inquirer/checkbox@2.5.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.7 + '@inquirer/type': 1.5.5 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/confirm@3.1.22': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/confirm@3.2.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/core@9.2.1': + dependencies: + '@inquirer/figures': 1.0.7 + '@inquirer/type': 2.0.0 + '@types/mute-stream': 0.0.4 + '@types/node': 22.7.6 + '@types/wrap-ansi': 3.0.0 + ansi-escapes: 4.3.2 + cli-width: 4.1.0 + mute-stream: 1.0.0 + signal-exit: 4.1.0 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + yoctocolors-cjs: 2.1.2 + + '@inquirer/editor@2.2.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + external-editor: 3.1.0 + + '@inquirer/expand@2.3.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + yoctocolors-cjs: 2.1.2 + + '@inquirer/figures@1.0.7': {} + + '@inquirer/input@2.3.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/number@1.1.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + + '@inquirer/password@2.2.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + ansi-escapes: 4.3.2 + + '@inquirer/prompts@5.3.8': + dependencies: + '@inquirer/checkbox': 2.5.0 + '@inquirer/confirm': 3.2.0 + '@inquirer/editor': 2.2.0 + '@inquirer/expand': 2.3.0 + '@inquirer/input': 2.3.0 + '@inquirer/number': 1.1.0 + '@inquirer/password': 2.2.0 + '@inquirer/rawlist': 2.3.0 + '@inquirer/search': 1.1.0 + '@inquirer/select': 2.5.0 + + '@inquirer/rawlist@2.3.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/type': 1.5.5 + yoctocolors-cjs: 2.1.2 + + '@inquirer/search@1.1.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.7 + '@inquirer/type': 1.5.5 + yoctocolors-cjs: 2.1.2 + + '@inquirer/select@2.5.0': + dependencies: + '@inquirer/core': 9.2.1 + '@inquirer/figures': 1.0.7 + '@inquirer/type': 1.5.5 + ansi-escapes: 4.3.2 + yoctocolors-cjs: 2.1.2 + + '@inquirer/type@1.5.5': + dependencies: + mute-stream: 1.0.0 + + '@inquirer/type@2.0.0': + dependencies: + mute-stream: 1.0.0 + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jridgewell/gen-mapping@0.3.5': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jsdevtools/ono@7.1.3': {} + + '@jsonjoy.com/base64@1.1.2(tslib@2.8.0)': + dependencies: + tslib: 2.8.0 + + '@jsonjoy.com/json-pack@1.1.0(tslib@2.8.0)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.0) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.8.0) + tslib: 2.8.0 + + '@jsonjoy.com/util@1.5.0(tslib@2.8.0)': + dependencies: + tslib: 2.8.0 + + '@leichtgewicht/ip-codec@2.0.5': {} + + '@listr2/prompt-adapter-inquirer@2.0.15(@inquirer/prompts@5.3.8)': + dependencies: + '@inquirer/prompts': 5.3.8 + '@inquirer/type': 1.5.5 + + '@lmdb/lmdb-darwin-arm64@3.0.13': + optional: true + + '@lmdb/lmdb-darwin-x64@3.0.13': + optional: true + + '@lmdb/lmdb-linux-arm64@3.0.13': + optional: true + + '@lmdb/lmdb-linux-arm@3.0.13': + optional: true + + '@lmdb/lmdb-linux-x64@3.0.13': + optional: true + + '@lmdb/lmdb-win32-x64@3.0.13': + optional: true + + '@mapbox/geojson-rewind@0.5.2': + dependencies: + get-stream: 6.0.1 + minimist: 1.2.8 + + '@mapbox/jsonlint-lines-primitives@2.0.2': {} + + '@mapbox/point-geometry@0.1.0': {} + + '@mapbox/tiny-sdf@2.0.6': {} + + '@mapbox/unitbezier@0.0.1': {} + + '@mapbox/vector-tile@1.3.1': + dependencies: + '@mapbox/point-geometry': 0.1.0 + + '@mapbox/whoots-js@3.1.0': {} + + '@maplibre/maplibre-gl-style-spec@20.4.0': + dependencies: + '@mapbox/jsonlint-lines-primitives': 2.0.2 + '@mapbox/unitbezier': 0.0.1 + json-stringify-pretty-compact: 4.0.0 + minimist: 1.2.8 + quickselect: 2.0.0 + rw: 1.3.3 + tinyqueue: 3.0.0 + + '@maplibre/ngx-maplibre-gl@17.4.3(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(maplibre-gl@4.7.1)(rxjs@7.8.1)': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + maplibre-gl: 4.7.1 + rxjs: 7.8.1 + tslib: 2.8.0 + + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + optional: true + + '@ng-web-apis/common@3.2.3(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1)': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + rxjs: 7.8.1 + tslib: 2.8.0 + + '@ng-web-apis/geolocation@3.0.6(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(@ng-web-apis/common@3.2.3(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))': + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + '@ng-web-apis/common': 3.2.3(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + tslib: 2.6.2 + + '@ngtools/webpack@18.2.9(@angular/compiler-cli@18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5))(typescript@5.4.5)(webpack@5.94.0(esbuild@0.23.0))': + dependencies: + '@angular/compiler-cli': 18.2.8(@angular/compiler@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)))(typescript@5.4.5) + typescript: 5.4.5 + webpack: 5.94.0(esbuild@0.23.0) + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + + '@npmcli/agent@2.2.2': + dependencies: + agent-base: 7.1.1 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + + '@npmcli/fs@3.1.1': + dependencies: + semver: 7.6.3 + + '@npmcli/git@5.0.8': + dependencies: + '@npmcli/promise-spawn': 7.0.2 + ini: 4.1.3 + lru-cache: 10.4.3 + npm-pick-manifest: 9.1.0 + proc-log: 4.2.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.6.3 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + + '@npmcli/installed-package-contents@2.1.0': + dependencies: + npm-bundled: 3.0.1 + npm-normalize-package-bin: 3.0.1 + + '@npmcli/node-gyp@3.0.0': {} + + '@npmcli/package-json@5.2.1': + dependencies: + '@npmcli/git': 5.0.8 + glob: 10.4.5 + hosted-git-info: 7.0.2 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 6.0.2 + proc-log: 4.2.0 + semver: 7.6.3 + transitivePeerDependencies: + - bluebird + + '@npmcli/promise-spawn@7.0.2': + dependencies: + which: 4.0.0 + + '@npmcli/redact@2.0.1': {} + + '@npmcli/run-script@8.1.0': + dependencies: + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.2.1 + '@npmcli/promise-spawn': 7.0.2 + node-gyp: 10.2.0 + proc-log: 4.2.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + - supports-color + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@rollup/rollup-android-arm-eabi@4.22.4': + optional: true + + '@rollup/rollup-android-arm-eabi@4.24.0': + optional: true + + '@rollup/rollup-android-arm64@4.22.4': + optional: true + + '@rollup/rollup-android-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.22.4': + optional: true + + '@rollup/rollup-darwin-arm64@4.24.0': + optional: true + + '@rollup/rollup-darwin-x64@4.22.4': + optional: true + + '@rollup/rollup-darwin-x64@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.22.4': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.22.4': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.22.4': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.22.4': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.24.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.22.4': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.22.4': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.22.4': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.24.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.22.4': + optional: true + + '@rollup/rollup-linux-x64-musl@4.24.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.22.4': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.22.4': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.24.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.22.4': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.24.0': + optional: true + + '@schematics/angular@18.2.9(chokidar@3.6.0)': + dependencies: + '@angular-devkit/core': 18.2.9(chokidar@3.6.0) + '@angular-devkit/schematics': 18.2.9(chokidar@3.6.0) + jsonc-parser: 3.3.1 + transitivePeerDependencies: + - chokidar + + '@sigstore/bundle@2.3.2': + dependencies: + '@sigstore/protobuf-specs': 0.3.2 + + '@sigstore/core@1.1.0': {} + + '@sigstore/protobuf-specs@0.3.2': {} + + '@sigstore/sign@2.3.2': + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + make-fetch-happen: 13.0.1 + proc-log: 4.2.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@2.3.4': + dependencies: + '@sigstore/protobuf-specs': 0.3.2 + tuf-js: 2.2.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@1.2.1': + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + + '@sindresorhus/merge-streams@2.3.0': {} + + '@socket.io/component-emitter@3.1.2': {} + + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@2.0.1': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 9.0.5 + + '@turf/bbox@6.5.0': + dependencies: + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + + '@turf/bearing@6.5.0': + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + + '@turf/clone@6.5.0': + dependencies: + '@turf/helpers': 6.5.0 + + '@turf/distance@6.5.0': + dependencies: + '@turf/helpers': 6.5.0 + '@turf/invariant': 6.5.0 + + '@turf/helpers@6.5.0': {} + + '@turf/invariant@6.5.0': + dependencies: + '@turf/helpers': 6.5.0 + + '@turf/length@6.5.0': + dependencies: + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + + '@turf/meta@6.5.0': + dependencies: + '@turf/helpers': 6.5.0 + + '@turf/nearest-point@6.5.0': + dependencies: + '@turf/clone': 6.5.0 + '@turf/distance': 6.5.0 + '@turf/helpers': 6.5.0 + '@turf/meta': 6.5.0 + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 20.16.12 + + '@types/bonjour@3.5.13': + dependencies: + '@types/node': 20.16.12 + + '@types/connect-history-api-fallback@1.5.4': + dependencies: + '@types/express-serve-static-core': 5.0.0 + '@types/node': 20.16.12 + + '@types/connect@3.4.38': + dependencies: + '@types/node': 20.16.12 + + '@types/cookie@0.4.1': {} + + '@types/cors@2.8.17': + dependencies: + '@types/node': 20.16.12 + + '@types/estree@1.0.5': {} + + '@types/estree@1.0.6': {} + + '@types/express-serve-static-core@4.19.6': + dependencies: + '@types/node': 20.16.12 + '@types/qs': 6.9.16 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express-serve-static-core@5.0.0': + dependencies: + '@types/node': 20.16.12 + '@types/qs': 6.9.16 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@4.17.21': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.16 + '@types/serve-static': 1.15.7 + + '@types/geojson-vt@3.2.5': + dependencies: + '@types/geojson': 7946.0.14 + + '@types/geojson@7946.0.14': {} + + '@types/http-errors@2.0.4': {} + + '@types/http-proxy@1.17.15': + dependencies: + '@types/node': 20.16.12 + + '@types/jasmine@5.1.4': {} + + '@types/json-schema@7.0.15': {} + + '@types/mapbox__point-geometry@0.1.4': {} + + '@types/mapbox__vector-tile@1.3.4': + dependencies: + '@types/geojson': 7946.0.14 + '@types/mapbox__point-geometry': 0.1.4 + '@types/pbf': 3.0.5 + + '@types/mime@1.3.5': {} + + '@types/motion-sensors-polyfill@0.3.5': {} + + '@types/mute-stream@0.0.4': + dependencies: + '@types/node': 20.16.12 + + '@types/node-forge@1.3.11': + dependencies: + '@types/node': 20.16.12 + + '@types/node@20.16.12': + dependencies: + undici-types: 6.19.8 + + '@types/node@22.7.6': + dependencies: + undici-types: 6.19.8 + + '@types/pbf@3.0.5': {} + + '@types/qs@6.9.16': {} + + '@types/range-parser@1.2.7': {} + + '@types/retry@0.12.2': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 20.16.12 + + '@types/serve-index@1.9.4': + dependencies: + '@types/express': 4.17.21 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 20.16.12 + '@types/send': 0.17.4 + + '@types/sockjs@0.3.36': + dependencies: + '@types/node': 20.16.12 + + '@types/supercluster@7.1.3': + dependencies: + '@types/geojson': 7946.0.14 + + '@types/uuid@9.0.8': {} + + '@types/wrap-ansi@3.0.0': {} + + '@types/ws@8.5.12': + dependencies: + '@types/node': 20.16.12 + + '@vitejs/plugin-basic-ssl@1.1.0(vite@5.4.6(@types/node@20.16.12)(less@4.2.0)(sass@1.77.6)(terser@5.31.6))': + dependencies: + vite: 5.4.6(@types/node@20.16.12)(less@4.2.0)(sass@1.77.6)(terser@5.31.6) + + '@webassemblyjs/ast@1.12.1': + dependencies: + '@webassemblyjs/helper-numbers': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + + '@webassemblyjs/floating-point-hex-parser@1.11.6': {} + + '@webassemblyjs/helper-api-error@1.11.6': {} + + '@webassemblyjs/helper-buffer@1.12.1': {} + + '@webassemblyjs/helper-numbers@1.11.6': + dependencies: + '@webassemblyjs/floating-point-hex-parser': 1.11.6 + '@webassemblyjs/helper-api-error': 1.11.6 + '@xtuc/long': 4.2.2 + + '@webassemblyjs/helper-wasm-bytecode@1.11.6': {} + + '@webassemblyjs/helper-wasm-section@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/wasm-gen': 1.12.1 + + '@webassemblyjs/ieee754@1.11.6': + dependencies: + '@xtuc/ieee754': 1.2.0 + + '@webassemblyjs/leb128@1.11.6': + dependencies: + '@xtuc/long': 4.2.2 + + '@webassemblyjs/utf8@1.11.6': {} + + '@webassemblyjs/wasm-edit@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/helper-wasm-section': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-opt': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + '@webassemblyjs/wast-printer': 1.12.1 + + '@webassemblyjs/wasm-gen@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wasm-opt@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-buffer': 1.12.1 + '@webassemblyjs/wasm-gen': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + + '@webassemblyjs/wasm-parser@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/helper-api-error': 1.11.6 + '@webassemblyjs/helper-wasm-bytecode': 1.11.6 + '@webassemblyjs/ieee754': 1.11.6 + '@webassemblyjs/leb128': 1.11.6 + '@webassemblyjs/utf8': 1.11.6 + + '@webassemblyjs/wast-printer@1.12.1': + dependencies: + '@webassemblyjs/ast': 1.12.1 + '@xtuc/long': 4.2.2 + + '@xtuc/ieee754@1.2.0': {} + + '@xtuc/long@4.2.2': {} + + '@yarnpkg/lockfile@1.1.0': {} + + abbrev@2.0.0: {} + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-import-attributes@1.9.5(acorn@8.13.0): + dependencies: + acorn: 8.13.0 + + acorn@8.13.0: {} + + adjust-sourcemap-loader@4.0.0: + dependencies: + loader-utils: 2.0.4 + regex-parser: 2.3.0 + + agent-base@7.1.1: + dependencies: + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv-formats@2.1.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-formats@3.0.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv-keywords@3.5.2(ajv@6.12.6): + dependencies: + ajv: 6.12.6 + + ajv-keywords@5.1.0(ajv@8.17.1): + dependencies: + ajv: 8.17.1 + fast-deep-equal: 3.1.3 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-escapes@7.0.0: + dependencies: + environment: 1.1.0 + + ansi-html-community@0.0.8: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@6.2.1: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + array-flatten@1.1.1: {} + + autoprefixer@10.4.20(postcss@8.4.41): + dependencies: + browserslist: 4.24.0 + caniuse-lite: 1.0.30001669 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.4.41 + postcss-value-parser: 4.2.0 + + babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + '@babel/core': 7.25.2 + find-cache-dir: 4.0.0 + schema-utils: 4.2.0 + webpack: 5.94.0(esbuild@0.23.0) + + babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.25.2): + dependencies: + '@babel/compat-data': 7.25.8 + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.25.2): + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + core-js-compat: 3.38.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.2(@babel/core@7.25.2): + dependencies: + '@babel/core': 7.25.2 + '@babel/helper-define-polyfill-provider': 0.6.2(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color + + balanced-match@1.0.2: {} + + base64-js@1.5.1: {} + + base64id@2.0.0: {} + + batch@0.6.1: {} + + big.js@5.2.2: {} + + binary-extensions@2.3.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + body-parser@1.20.3: + 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 + transitivePeerDependencies: + - supports-color + + bonjour-service@1.2.1: + dependencies: + fast-deep-equal: 3.1.3 + multicast-dns: 7.2.5 + + boolbase@1.0.0: {} + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.0: + dependencies: + caniuse-lite: 1.0.30001669 + electron-to-chromium: 1.5.41 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.0) + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + + bytes@3.0.0: {} + + bytes@3.1.2: {} + + c12@1.10.0: + dependencies: + chokidar: 3.6.0 + confbox: 0.1.8 + defu: 6.1.4 + dotenv: 16.4.5 + giget: 1.2.3 + jiti: 1.21.6 + mlly: 1.7.2 + ohash: 1.1.4 + pathe: 1.1.2 + perfect-debounce: 1.0.0 + pkg-types: 1.2.1 + rc9: 2.1.2 + + cacache@18.0.4: + dependencies: + '@npmcli/fs': 3.1.1 + fs-minipass: 3.0.3 + glob: 10.4.5 + lru-cache: 10.4.3 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.6 + tar: 6.2.1 + unique-filename: 3.0.0 + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + callsites@3.1.0: {} + + camelcase@8.0.0: {} + + caniuse-lite@1.0.30001669: {} + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chardet@0.7.0: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chokidar@4.0.1: + dependencies: + readdirp: 4.0.2 + + chownr@1.1.4: {} + + chownr@2.0.0: {} + + chrome-trace-event@1.0.4: {} + + citty@0.1.6: + dependencies: + consola: 3.2.3 + + clean-stack@2.2.0: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-cursor@5.0.0: + dependencies: + restore-cursor: 5.1.0 + + cli-spinners@2.9.2: {} + + cli-truncate@4.0.0: + dependencies: + slice-ansi: 5.0.0 + string-width: 7.2.0 + + cli-width@4.1.0: {} + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + clone@1.0.4: {} + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + colorette@2.0.20: {} + + commander@12.0.0: {} + + commander@2.20.3: {} + + common-path-prefix@3.0.0: {} + + compressible@2.0.18: + dependencies: + mime-db: 1.53.0 + + compression@1.7.4: + dependencies: + accepts: 1.3.8 + bytes: 3.0.0 + compressible: 2.0.18 + debug: 2.6.9 + on-headers: 1.0.2 + safe-buffer: 5.1.2 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} + + confbox@0.1.8: {} + + connect-history-api-fallback@2.0.0: {} + + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + + consola@3.2.3: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.7.1: {} + + cookie@0.7.2: {} + + copy-anything@2.0.6: + dependencies: + is-what: 3.14.1 + + copy-webpack-plugin@12.0.2(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + fast-glob: 3.3.2 + glob-parent: 6.0.2 + globby: 14.0.2 + normalize-path: 3.0.0 + schema-utils: 4.2.0 + serialize-javascript: 6.0.2 + webpack: 5.94.0(esbuild@0.23.0) + + core-js-compat@3.38.1: + dependencies: + browserslist: 4.24.0 + + core-util-is@1.0.3: {} + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + cosmiconfig@9.0.0(typescript@5.4.5): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.4.5 + + critters@0.0.24: + dependencies: + chalk: 4.1.2 + css-select: 5.1.0 + dom-serializer: 2.0.0 + domhandler: 5.0.3 + htmlparser2: 8.0.2 + postcss: 8.4.41 + postcss-media-query-parser: 0.2.3 + + cross-spawn@7.0.3: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + css-loader@7.1.2(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + icss-utils: 5.1.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-modules-extract-imports: 3.1.0(postcss@8.4.41) + postcss-modules-local-by-default: 4.0.5(postcss@8.4.41) + postcss-modules-scope: 3.2.0(postcss@8.4.41) + postcss-modules-values: 4.0.0(postcss@8.4.41) + postcss-value-parser: 4.2.0 + semver: 7.6.3 + optionalDependencies: + webpack: 5.94.0(esbuild@0.23.0) + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.1.0 + nth-check: 2.1.1 + + css-what@6.1.0: {} + + cssesc@3.0.0: {} + + custom-event@1.0.1: {} + + d3-queue@3.0.7: {} + + date-format@4.0.14: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + + default-gateway@6.0.3: + dependencies: + execa: 5.1.1 + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + define-lazy-prop@3.0.0: {} + + defu@6.1.4: {} + + depd@1.1.2: {} + + depd@2.0.0: {} + + destr@2.0.3: {} + + destroy@1.2.0: {} + + detect-libc@2.0.3: {} + + detect-node@2.1.0: {} + + di@0.0.1: {} + + dns-packet@5.6.1: + dependencies: + '@leichtgewicht/ip-codec': 2.0.5 + + dom-serialize@2.2.1: + dependencies: + custom-event: 1.0.1 + ent: 2.2.1 + extend: 3.0.2 + void-elements: 2.0.1 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.1.0: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dotenv@16.4.5: {} + + earcut@3.0.0: {} + + eastasianwidth@0.2.0: {} + + ee-first@1.1.1: {} + + electron-to-chromium@1.5.41: {} + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + emojis-list@3.0.0: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + engine.io-parser@5.2.3: {} + + engine.io@6.6.2: + dependencies: + '@types/cookie': 0.4.1 + '@types/cors': 2.8.17 + '@types/node': 20.16.12 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.7.2 + cors: 2.8.5 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + enhanced-resolve@5.17.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + ent@2.2.1: + dependencies: + punycode: 1.4.1 + + entities@4.5.0: {} + + env-paths@2.2.1: {} + + environment@1.1.0: {} + + err-code@2.0.3: {} + + errno@0.1.8: + dependencies: + prr: 1.0.1 + optional: true + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + es-module-lexer@1.5.4: {} + + esbuild-wasm@0.23.0: {} + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + esbuild@0.23.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.0 + '@esbuild/android-arm': 0.23.0 + '@esbuild/android-arm64': 0.23.0 + '@esbuild/android-x64': 0.23.0 + '@esbuild/darwin-arm64': 0.23.0 + '@esbuild/darwin-x64': 0.23.0 + '@esbuild/freebsd-arm64': 0.23.0 + '@esbuild/freebsd-x64': 0.23.0 + '@esbuild/linux-arm': 0.23.0 + '@esbuild/linux-arm64': 0.23.0 + '@esbuild/linux-ia32': 0.23.0 + '@esbuild/linux-loong64': 0.23.0 + '@esbuild/linux-mips64el': 0.23.0 + '@esbuild/linux-ppc64': 0.23.0 + '@esbuild/linux-riscv64': 0.23.0 + '@esbuild/linux-s390x': 0.23.0 + '@esbuild/linux-x64': 0.23.0 + '@esbuild/netbsd-x64': 0.23.0 + '@esbuild/openbsd-arm64': 0.23.0 + '@esbuild/openbsd-x64': 0.23.0 + '@esbuild/sunos-x64': 0.23.0 + '@esbuild/win32-arm64': 0.23.0 + '@esbuild/win32-ia32': 0.23.0 + '@esbuild/win32-x64': 0.23.0 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + eslint-scope@5.1.1: + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@4.3.0: {} + + estraverse@5.3.0: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.1: {} + + events@3.3.0: {} + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + execa@8.0.1: + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + + execspawn@1.0.1: + dependencies: + util-extend: 1.0.3 + + exponential-backoff@3.1.1: {} + + express@4.21.1: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + 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.10 + 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 + transitivePeerDependencies: + - supports-color + + extend@3.0.2: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-uri@3.0.3: {} + + fastq@1.17.1: + dependencies: + reusify: 1.0.4 + + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + finalhandler@1.3.1: + 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 + transitivePeerDependencies: + - supports-color + + find-cache-dir@4.0.0: + dependencies: + common-path-prefix: 3.0.0 + pkg-dir: 7.0.0 + + find-up@6.3.0: + dependencies: + locate-path: 7.2.0 + path-exists: 5.0.0 + + flat@5.0.2: {} + + flatted@3.3.1: {} + + follow-redirects@1.15.9(debug@4.3.7): + optionalDependencies: + debug: 4.3.7 + + fontnik@0.7.2: + dependencies: + d3-queue: 3.0.7 + glob: 7.2.3 + minimist: 1.2.8 + node-addon-api: 2.0.2 + node-gyp-build: 4.8.2 + prebuildify: 5.0.1 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + + forwarded@0.2.0: {} + + fraction.js@4.3.7: {} + + fresh@0.5.2: {} + + fs-constants@1.0.0: {} + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.2 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + gensync@1.0.0-beta.2: {} + + geojson-vt@4.0.2: {} + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.3.0: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + get-stream@6.0.1: {} + + get-stream@8.0.1: {} + + giget@1.2.3: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + defu: 6.1.4 + node-fetch-native: 1.6.4 + nypm: 0.3.12 + ohash: 1.1.4 + pathe: 1.1.2 + tar: 6.2.1 + + gl-matrix@3.4.3: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-to-regexp@0.4.1: {} + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + global-prefix@4.0.0: + dependencies: + ini: 4.1.3 + kind-of: 6.0.3 + which: 4.0.0 + + globals@11.12.0: {} + + globby@14.0.2: + dependencies: + '@sindresorhus/merge-streams': 2.3.0 + fast-glob: 3.3.2 + ignore: 5.3.2 + path-type: 5.0.0 + slash: 5.1.0 + unicorn-magic: 0.1.0 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + graceful-fs@4.2.11: {} + + handle-thing@2.0.1: {} + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + hpack.js@2.1.6: + dependencies: + inherits: 2.0.4 + obuf: 1.1.2 + readable-stream: 2.3.8 + wbuf: 1.7.3 + + html-entities@2.5.2: {} + + html-escaper@2.0.2: {} + + htmlparser2@8.0.2: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + domutils: 3.1.0 + entities: 4.5.0 + + http-cache-semantics@4.1.1: {} + + http-deceiver@1.2.7: {} + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-parser-js@0.5.8: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + http-proxy-middleware@2.0.7(@types/express@4.17.21): + dependencies: + '@types/http-proxy': 1.17.15 + http-proxy: 1.18.1(debug@4.3.7) + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.8 + optionalDependencies: + '@types/express': 4.17.21 + transitivePeerDependencies: + - debug + + http-proxy-middleware@3.0.0: + dependencies: + '@types/http-proxy': 1.17.15 + debug: 4.3.7 + http-proxy: 1.18.1(debug@4.3.7) + is-glob: 4.0.3 + is-plain-obj: 3.0.0 + micromatch: 4.0.8 + transitivePeerDependencies: + - supports-color + + http-proxy@1.18.1(debug@4.3.7): + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.9(debug@4.3.7) + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + human-signals@5.0.0: {} + + hyperdyperid@1.2.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + icss-utils@5.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + ieee754@1.2.1: {} + + ignore-walk@6.0.5: + dependencies: + minimatch: 9.0.5 + + ignore@5.3.2: {} + + image-size@0.5.5: + optional: true + + immutable@4.3.7: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + ini@4.1.3: {} + + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + + ipaddr.js@1.9.1: {} + + ipaddr.js@2.2.0: {} + + is-arrayish@0.2.1: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-fullwidth-code-point@3.0.0: {} + + is-fullwidth-code-point@4.0.0: {} + + is-fullwidth-code-point@5.0.0: + dependencies: + get-east-asian-width: 1.3.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-interactive@1.0.0: {} + + is-lambda@1.0.1: {} + + is-network-error@1.1.0: {} + + is-number@7.0.0: {} + + is-plain-obj@3.0.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-stream@2.0.1: {} + + is-stream@3.0.0: {} + + is-unicode-supported@0.1.0: {} + + is-what@3.14.1: {} + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@1.0.0: {} + + isbinaryfile@4.0.10: {} + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + isobject@3.0.1: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.25.8 + '@babel/parser': 7.25.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.25.2 + '@babel/parser': 7.25.8 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@4.0.1: + dependencies: + debug: 4.3.7 + istanbul-lib-coverage: 3.2.2 + source-map: 0.6.1 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jasmine-core@4.6.1: {} + + jasmine-core@5.1.2: {} + + jest-worker@27.5.1: + dependencies: + '@types/node': 20.16.12 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jiti@1.21.6: {} + + js-tokens@4.0.0: {} + + js-untar@2.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsbn@1.1.0: {} + + jsesc@2.5.2: {} + + jsesc@3.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-parse-even-better-errors@3.0.2: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-stringify-pretty-compact@4.0.0: {} + + json5@2.2.3: {} + + jsonc-parser@3.3.1: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + karma-chrome-launcher@3.2.0: + dependencies: + which: 1.3.1 + + karma-coverage@2.2.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + istanbul-lib-instrument: 5.2.1 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 4.0.1 + istanbul-reports: 3.1.7 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + karma-jasmine-html-reporter@2.1.0(jasmine-core@5.1.2)(karma-jasmine@5.1.0(karma@6.4.4))(karma@6.4.4): + dependencies: + jasmine-core: 5.1.2 + karma: 6.4.4 + karma-jasmine: 5.1.0(karma@6.4.4) + + karma-jasmine@5.1.0(karma@6.4.4): + dependencies: + jasmine-core: 4.6.1 + karma: 6.4.4 + + karma-source-map-support@1.4.0: + dependencies: + source-map-support: 0.5.21 + + karma@6.4.4: + dependencies: + '@colors/colors': 1.5.0 + body-parser: 1.20.3 + braces: 3.0.3 + chokidar: 3.6.0 + connect: 3.7.0 + di: 0.0.1 + dom-serialize: 2.2.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + http-proxy: 1.18.1(debug@4.3.7) + isbinaryfile: 4.0.10 + lodash: 4.17.21 + log4js: 6.9.1 + mime: 2.6.0 + minimatch: 3.1.2 + mkdirp: 0.5.6 + qjobs: 1.2.0 + range-parser: 1.2.1 + rimraf: 3.0.2 + socket.io: 4.8.0 + source-map: 0.6.1 + tmp: 0.2.3 + ua-parser-js: 0.7.39 + yargs: 16.2.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + kdbush@4.0.2: {} + + kind-of@6.0.3: {} + + launch-editor@2.9.1: + dependencies: + picocolors: 1.1.1 + shell-quote: 1.8.1 + + less-loader@12.2.0(less@4.2.0)(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + less: 4.2.0 + optionalDependencies: + webpack: 5.94.0(esbuild@0.23.0) + + less@4.2.0: + dependencies: + copy-anything: 2.0.6 + parse-node-version: 1.0.1 + tslib: 2.8.0 + optionalDependencies: + errno: 0.1.8 + graceful-fs: 4.2.11 + image-size: 0.5.5 + make-dir: 2.1.0 + mime: 1.6.0 + needle: 3.3.1 + source-map: 0.6.1 + + license-webpack-plugin@4.0.2(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + webpack-sources: 3.2.3 + optionalDependencies: + webpack: 5.94.0(esbuild@0.23.0) + + lines-and-columns@1.2.4: {} + + listr2@8.2.4: + dependencies: + cli-truncate: 4.0.0 + colorette: 2.0.20 + eventemitter3: 5.0.1 + log-update: 6.1.0 + rfdc: 1.4.1 + wrap-ansi: 9.0.0 + + lmdb@3.0.13: + dependencies: + msgpackr: 1.11.0 + node-addon-api: 6.1.0 + node-gyp-build-optional-packages: 5.2.2 + ordered-binary: 1.5.2 + weak-lru-cache: 1.2.2 + optionalDependencies: + '@lmdb/lmdb-darwin-arm64': 3.0.13 + '@lmdb/lmdb-darwin-x64': 3.0.13 + '@lmdb/lmdb-linux-arm': 3.0.13 + '@lmdb/lmdb-linux-arm64': 3.0.13 + '@lmdb/lmdb-linux-x64': 3.0.13 + '@lmdb/lmdb-win32-x64': 3.0.13 + + loader-runner@4.3.0: {} + + loader-utils@2.0.4: + dependencies: + big.js: 5.2.2 + emojis-list: 3.0.0 + json5: 2.2.3 + + loader-utils@3.3.1: {} + + locate-path@7.2.0: + dependencies: + p-locate: 6.0.0 + + lodash.debounce@4.0.8: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-update@6.1.0: + dependencies: + ansi-escapes: 7.0.0 + cli-cursor: 5.0.0 + slice-ansi: 7.1.0 + strip-ansi: 7.1.0 + wrap-ansi: 9.0.0 + + log4js@6.9.1: + dependencies: + date-format: 4.0.14 + debug: 4.3.7 + flatted: 3.3.1 + rfdc: 1.4.1 + streamroller: 3.1.5 + transitivePeerDependencies: + - supports-color + + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + magic-string@0.30.11: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + optional: true + + make-dir@4.0.0: + dependencies: + semver: 7.6.3 + + make-fetch-happen@13.0.1: + dependencies: + '@npmcli/agent': 2.2.2 + cacache: 18.0.4 + http-cache-semantics: 4.1.1 + is-lambda: 1.0.1 + minipass: 7.1.2 + minipass-fetch: 3.0.5 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + proc-log: 4.2.0 + promise-retry: 2.0.1 + ssri: 10.0.6 + transitivePeerDependencies: + - supports-color + + maplibre-gl@4.7.1: + dependencies: + '@mapbox/geojson-rewind': 0.5.2 + '@mapbox/jsonlint-lines-primitives': 2.0.2 + '@mapbox/point-geometry': 0.1.0 + '@mapbox/tiny-sdf': 2.0.6 + '@mapbox/unitbezier': 0.0.1 + '@mapbox/vector-tile': 1.3.1 + '@mapbox/whoots-js': 3.1.0 + '@maplibre/maplibre-gl-style-spec': 20.4.0 + '@types/geojson': 7946.0.14 + '@types/geojson-vt': 3.2.5 + '@types/mapbox__point-geometry': 0.1.4 + '@types/mapbox__vector-tile': 1.3.4 + '@types/pbf': 3.0.5 + '@types/supercluster': 7.1.3 + earcut: 3.0.0 + geojson-vt: 4.0.2 + gl-matrix: 3.4.3 + global-prefix: 4.0.0 + kdbush: 4.0.2 + murmurhash-js: 1.0.0 + pbf: 3.3.0 + potpack: 2.0.0 + quickselect: 3.0.0 + supercluster: 8.0.1 + tinyqueue: 3.0.0 + vt-pbf: 3.1.3 + + media-typer@0.3.0: {} + + memfs@4.14.0: + dependencies: + '@jsonjoy.com/json-pack': 1.1.0(tslib@2.8.0) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.0) + tree-dump: 1.0.2(tslib@2.8.0) + tslib: 2.8.0 + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + methods@1.1.2: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-db@1.53.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@1.6.0: {} + + mime@2.6.0: {} + + mimic-fn@2.1.0: {} + + mimic-fn@4.0.0: {} + + mimic-function@5.0.1: {} + + mini-css-extract-plugin@2.9.0(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + schema-utils: 4.2.0 + tapable: 2.2.1 + webpack: 5.94.0(esbuild@0.23.0) + + minimalistic-assert@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist@1.2.8: {} + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.2 + + minipass-fetch@3.0.5: + dependencies: + minipass: 7.1.2 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp-classic@0.5.3: {} + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mlly@1.7.2: + dependencies: + acorn: 8.13.0 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + + motion-sensors-polyfill@0.3.7: {} + + mrmime@2.0.0: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + msgpackr-extract@3.0.3: + dependencies: + node-gyp-build-optional-packages: 5.2.2 + optionalDependencies: + '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 + optional: true + + msgpackr@1.11.0: + optionalDependencies: + msgpackr-extract: 3.0.3 + + multicast-dns@7.2.5: + dependencies: + dns-packet: 5.6.1 + thunky: 1.1.0 + + murmurhash-js@1.0.0: {} + + mute-stream@1.0.0: {} + + nanoid@3.3.7: {} + + needle@3.3.1: + dependencies: + iconv-lite: 0.6.3 + sax: 1.4.1 + optional: true + + negotiator@0.6.3: {} + + negotiator@0.6.4: {} + + neo-async@2.6.2: {} + + ngx-image-compress@15.1.6(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)): + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + tslib: 2.8.0 + + ngx-indexed-db@17.1.0(@angular/common@18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1))(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10)): + dependencies: + '@angular/common': 18.2.8(@angular/core@18.2.8(rxjs@7.8.1)(zone.js@0.14.10))(rxjs@7.8.1) + '@angular/core': 18.2.8(rxjs@7.8.1)(zone.js@0.14.10) + tslib: 2.8.0 + + nice-napi@1.0.2: + dependencies: + node-addon-api: 3.2.1 + node-gyp-build: 4.8.2 + optional: true + + node-abi@3.71.0: + dependencies: + semver: 7.6.3 + + node-addon-api@2.0.2: {} + + node-addon-api@3.2.1: + optional: true + + node-addon-api@6.1.0: {} + + node-fetch-native@1.6.4: {} + + node-forge@1.3.1: {} + + node-gyp-build-optional-packages@5.2.2: + dependencies: + detect-libc: 2.0.3 + + node-gyp-build@4.8.2: {} + + node-gyp@10.2.0: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.1 + glob: 10.4.5 + graceful-fs: 4.2.11 + make-fetch-happen: 13.0.1 + nopt: 7.2.1 + proc-log: 4.2.0 + semver: 7.6.3 + tar: 6.2.1 + which: 4.0.0 + transitivePeerDependencies: + - supports-color + + node-releases@2.0.18: {} + + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-bundled@3.0.1: + dependencies: + npm-normalize-package-bin: 3.0.1 + + npm-install-checks@6.3.0: + dependencies: + semver: 7.6.3 + + npm-normalize-package-bin@3.0.1: {} + + npm-package-arg@11.0.3: + dependencies: + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.6.3 + validate-npm-package-name: 5.0.1 + + npm-packlist@8.0.2: + dependencies: + ignore-walk: 6.0.5 + + npm-pick-manifest@9.1.0: + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.3 + semver: 7.6.3 + + npm-registry-fetch@17.1.0: + dependencies: + '@npmcli/redact': 2.0.1 + jsonparse: 1.3.1 + make-fetch-happen: 13.0.1 + minipass: 7.1.2 + minipass-fetch: 3.0.5 + minizlib: 2.1.2 + npm-package-arg: 11.0.3 + proc-log: 4.2.0 + transitivePeerDependencies: + - supports-color + + npm-run-path@3.1.0: + dependencies: + path-key: 3.1.1 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npm-run-path@5.3.0: + dependencies: + path-key: 4.0.0 + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + nypm@0.3.12: + dependencies: + citty: 0.1.6 + consola: 3.2.3 + execa: 8.0.1 + pathe: 1.1.2 + pkg-types: 1.2.1 + ufo: 1.5.4 + + object-assign@4.1.1: {} + + object-inspect@1.13.2: {} + + obuf@1.1.2: {} + + ohash@1.1.4: {} + + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.0.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + onetime@6.0.0: + dependencies: + mimic-fn: 4.0.0 + + onetime@7.0.0: + dependencies: + mimic-function: 5.0.1 + + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + ordered-binary@1.5.2: {} + + os-tmpdir@1.0.2: {} + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.1.1 + + p-locate@6.0.0: + dependencies: + p-limit: 4.0.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-retry@6.2.0: + dependencies: + '@types/retry': 0.12.2 + is-network-error: 1.1.0 + retry: 0.13.1 + + package-json-from-dist@1.0.1: {} + + pacote@18.0.6: + dependencies: + '@npmcli/git': 5.0.8 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/package-json': 5.2.1 + '@npmcli/promise-spawn': 7.0.2 + '@npmcli/run-script': 8.1.0 + cacache: 18.0.4 + fs-minipass: 3.0.3 + minipass: 7.1.2 + npm-package-arg: 11.0.3 + npm-packlist: 8.0.2 + npm-pick-manifest: 9.1.0 + npm-registry-fetch: 17.1.0 + proc-log: 4.2.0 + promise-retry: 2.0.1 + sigstore: 2.3.1 + ssri: 10.0.6 + tar: 6.2.1 + transitivePeerDependencies: + - bluebird + - supports-color + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.25.7 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-node-version@1.0.1: {} + + parse5-html-rewriting-stream@7.0.0: + dependencies: + entities: 4.5.0 + parse5: 7.2.0 + parse5-sax-parser: 7.0.0 + + parse5-sax-parser@7.0.0: + dependencies: + parse5: 7.2.0 + + parse5@7.2.0: + dependencies: + entities: 4.5.0 + + parseurl@1.3.3: {} + + path-exists@5.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-key@4.0.0: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@0.1.10: {} + + path-type@5.0.0: {} + + pathe@1.1.2: {} + + pbf@3.3.0: + dependencies: + ieee754: 1.2.1 + resolve-protobuf-schema: 2.1.0 + + perfect-debounce@1.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pify@4.0.1: + optional: true + + piscina@4.6.1: + optionalDependencies: + nice-napi: 1.0.2 + + pkg-dir@7.0.0: + dependencies: + find-up: 6.3.0 + + pkg-types@1.2.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.2 + pathe: 1.1.2 + + postcss-loader@8.1.1(postcss@8.4.41)(typescript@5.4.5)(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + cosmiconfig: 9.0.0(typescript@5.4.5) + jiti: 1.21.6 + postcss: 8.4.41 + semver: 7.6.3 + optionalDependencies: + webpack: 5.94.0(esbuild@0.23.0) + transitivePeerDependencies: + - typescript + + postcss-media-query-parser@0.2.3: {} + + postcss-modules-extract-imports@3.1.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + + postcss-modules-local-by-default@4.0.5(postcss@8.4.41): + dependencies: + icss-utils: 5.1.0(postcss@8.4.41) + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + postcss-value-parser: 4.2.0 + + postcss-modules-scope@3.2.0(postcss@8.4.41): + dependencies: + postcss: 8.4.41 + postcss-selector-parser: 6.1.2 + + postcss-modules-values@4.0.0(postcss@8.4.41): + dependencies: + icss-utils: 5.1.0(postcss@8.4.41) + postcss: 8.4.41 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss@8.4.41: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + postcss@8.4.47: + dependencies: + nanoid: 3.3.7 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + potpack@2.0.0: {} + + prebuildify@5.0.1: + dependencies: + execspawn: 1.0.1 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + node-abi: 3.71.0 + npm-run-path: 3.1.0 + pump: 3.0.2 + tar-fs: 2.1.1 + + proc-log@4.2.0: {} + + process-nextick-args@2.0.1: {} + + promise-inflight@1.0.1: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + + protocol-buffers-schema@3.6.0: {} + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + prr@1.0.1: + optional: true + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + qjobs@1.2.0: {} + + qs@6.13.0: + dependencies: + side-channel: 1.0.6 + + queue-microtask@1.2.3: {} + + quickselect@2.0.0: {} + + quickselect@3.0.0: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rc9@2.1.2: + dependencies: + defu: 6.1.4 + destr: 2.0.3 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readdirp@4.0.2: {} + + reflect-metadata@0.2.2: {} + + regenerate-unicode-properties@10.2.0: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.14.1: {} + + regenerator-transform@0.15.2: + dependencies: + '@babel/runtime': 7.25.0 + + regex-parser@2.3.0: {} + + regexpu-core@6.1.1: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.0 + regjsgen: 0.8.0 + regjsparser: 0.11.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.0 + + regjsgen@0.8.0: {} + + regjsparser@0.11.1: + dependencies: + jsesc: 3.0.2 + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + requires-port@1.0.0: {} + + resolve-from@4.0.0: {} + + resolve-protobuf-schema@2.1.0: + dependencies: + protocol-buffers-schema: 3.6.0 + + resolve-url-loader@5.0.0: + dependencies: + adjust-sourcemap-loader: 4.0.0 + convert-source-map: 1.9.0 + loader-utils: 2.0.4 + postcss: 8.4.41 + source-map: 0.6.1 + + resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + restore-cursor@5.1.0: + dependencies: + onetime: 7.0.0 + signal-exit: 4.1.0 + + retry@0.12.0: {} + + retry@0.13.1: {} + + reusify@1.0.4: {} + + rfdc@1.4.1: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + rollup@4.22.4: + dependencies: + '@types/estree': 1.0.5 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.22.4 + '@rollup/rollup-android-arm64': 4.22.4 + '@rollup/rollup-darwin-arm64': 4.22.4 + '@rollup/rollup-darwin-x64': 4.22.4 + '@rollup/rollup-linux-arm-gnueabihf': 4.22.4 + '@rollup/rollup-linux-arm-musleabihf': 4.22.4 + '@rollup/rollup-linux-arm64-gnu': 4.22.4 + '@rollup/rollup-linux-arm64-musl': 4.22.4 + '@rollup/rollup-linux-powerpc64le-gnu': 4.22.4 + '@rollup/rollup-linux-riscv64-gnu': 4.22.4 + '@rollup/rollup-linux-s390x-gnu': 4.22.4 + '@rollup/rollup-linux-x64-gnu': 4.22.4 + '@rollup/rollup-linux-x64-musl': 4.22.4 + '@rollup/rollup-win32-arm64-msvc': 4.22.4 + '@rollup/rollup-win32-ia32-msvc': 4.22.4 + '@rollup/rollup-win32-x64-msvc': 4.22.4 + fsevents: 2.3.3 + + rollup@4.24.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 + fsevents: 2.3.3 + + run-applescript@7.0.0: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rw@1.3.3: {} + + rxjs@7.8.1: + dependencies: + tslib: 2.8.0 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safer-buffer@2.1.2: {} + + sass-loader@16.0.0(sass@1.77.6)(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + neo-async: 2.6.2 + optionalDependencies: + sass: 1.77.6 + webpack: 5.94.0(esbuild@0.23.0) + + sass@1.77.6: + dependencies: + chokidar: 3.6.0 + immutable: 4.3.7 + source-map-js: 1.2.1 + + sax@1.4.1: + optional: true + + schema-utils@3.3.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) + + schema-utils@4.2.0: + dependencies: + '@types/json-schema': 7.0.15 + ajv: 8.17.1 + ajv-formats: 2.1.1(ajv@8.17.1) + ajv-keywords: 5.1.0(ajv@8.17.1) + + select-hose@2.0.0: {} + + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + + semver@5.7.2: + optional: true + + semver@6.3.1: {} + + semver@7.6.3: {} + + send@0.19.0: + 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 + transitivePeerDependencies: + - supports-color + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-index@1.9.1: + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + + set-function-length@1.2.2: + 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 + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shell-quote@1.8.1: {} + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.2 + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sigstore@2.3.1: + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.2 + '@sigstore/sign': 2.3.2 + '@sigstore/tuf': 2.3.4 + '@sigstore/verify': 1.2.1 + transitivePeerDependencies: + - supports-color + + slash@5.1.0: {} + + slice-ansi@5.0.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + + slice-ansi@7.1.0: + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 5.0.0 + + smart-buffer@4.2.0: {} + + socket.io-adapter@2.5.5: + dependencies: + debug: 4.3.7 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + socket.io@4.8.0: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.7 + engine.io: 6.6.2 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + sockjs@0.3.24: + dependencies: + faye-websocket: 0.11.4 + uuid: 8.3.2 + websocket-driver: 0.7.4 + + socks-proxy-agent@8.0.4: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + + socks@2.8.3: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + + source-map-js@1.2.1: {} + + source-map-loader@5.0.0(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + iconv-lite: 0.6.3 + source-map-js: 1.2.1 + webpack: 5.94.0(esbuild@0.23.0) + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.20 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.20 + + spdx-license-ids@3.0.20: {} + + spdy-transport@3.0.0: + dependencies: + debug: 4.3.7 + detect-node: 2.1.0 + hpack.js: 2.1.6 + obuf: 1.1.2 + readable-stream: 3.6.2 + wbuf: 1.7.3 + transitivePeerDependencies: + - supports-color + + spdy@4.0.2: + dependencies: + debug: 4.3.7 + handle-thing: 2.0.1 + http-deceiver: 1.2.7 + select-hose: 2.0.0 + spdy-transport: 3.0.0 + transitivePeerDependencies: + - supports-color + + sprintf-js@1.1.3: {} + + ssri@10.0.6: + dependencies: + minipass: 7.1.2 + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + streamroller@3.1.5: + dependencies: + date-format: 4.0.14 + debug: 4.3.7 + fs-extra: 8.1.0 + transitivePeerDependencies: + - supports-color + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-final-newline@2.0.0: {} + + strip-final-newline@3.0.0: {} + + supercluster@8.0.1: + dependencies: + kdbush: 4.0.2 + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + symbol-observable@4.0.0: {} + + tapable@2.2.1: {} + + tar-fs@2.1.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + terser-webpack-plugin@5.3.10(esbuild@0.23.0)(webpack@5.94.0): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.31.6 + webpack: 5.94.0(esbuild@0.23.0) + optionalDependencies: + esbuild: 0.23.0 + + terser@5.31.6: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.13.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + thingies@1.21.0(tslib@2.8.0): + dependencies: + tslib: 2.8.0 + + thunky@1.1.0: {} + + tinyqueue@3.0.0: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.2.3: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + tree-dump@1.0.2(tslib@2.8.0): + dependencies: + tslib: 2.8.0 + + tree-kill@1.2.2: {} + + tslib@2.6.2: {} + + tslib@2.6.3: {} + + tslib@2.8.0: {} + + tuf-js@2.2.1: + dependencies: + '@tufjs/models': 2.0.1 + debug: 4.3.7 + make-fetch-happen: 13.0.1 + transitivePeerDependencies: + - supports-color + + type-fest@0.21.3: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typed-assert@1.0.9: {} + + typescript@5.4.5: {} + + ua-parser-js@0.7.39: {} + + ufo@1.5.4: {} + + uglify-js@3.19.3: + optional: true + + undici-types@6.19.8: {} + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.1.0 + + unicode-match-property-value-ecmascript@2.2.0: {} + + unicode-property-aliases-ecmascript@2.1.0: {} + + unicorn-magic@0.1.0: {} + + unique-filename@3.0.0: + dependencies: + unique-slug: 4.0.0 + + unique-slug@4.0.0: + dependencies: + imurmurhash: 0.1.4 + + universalify@0.1.2: {} + + unpipe@1.0.0: {} + + update-browserslist-db@1.1.1(browserslist@4.24.0): + dependencies: + browserslist: 4.24.0 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + util-extend@1.0.3: {} + + utils-merge@1.0.1: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@5.0.1: {} + + vary@1.1.2: {} + + vite@5.4.6(@types/node@20.16.12)(less@4.2.0)(sass@1.77.6)(terser@5.31.6): + dependencies: + esbuild: 0.21.5 + postcss: 8.4.47 + rollup: 4.24.0 + optionalDependencies: + '@types/node': 20.16.12 + fsevents: 2.3.3 + less: 4.2.0 + sass: 1.77.6 + terser: 5.31.6 + + void-elements@2.0.1: {} + + vt-pbf@3.1.3: + dependencies: + '@mapbox/point-geometry': 0.1.0 + '@mapbox/vector-tile': 1.3.1 + pbf: 3.3.0 + + watchpack@2.4.1: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + wbuf@1.7.3: + dependencies: + minimalistic-assert: 1.0.1 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + weak-lru-cache@1.2.2: {} + + webpack-dev-middleware@7.4.2(webpack@5.94.0): + dependencies: + colorette: 2.0.20 + memfs: 4.14.0 + mime-types: 2.1.35 + on-finished: 2.4.1 + range-parser: 1.2.1 + schema-utils: 4.2.0 + optionalDependencies: + webpack: 5.94.0(esbuild@0.23.0) + + webpack-dev-server@5.0.4(webpack@5.94.0): + dependencies: + '@types/bonjour': 3.5.13 + '@types/connect-history-api-fallback': 1.5.4 + '@types/express': 4.17.21 + '@types/serve-index': 1.9.4 + '@types/serve-static': 1.15.7 + '@types/sockjs': 0.3.36 + '@types/ws': 8.5.12 + ansi-html-community: 0.0.8 + bonjour-service: 1.2.1 + chokidar: 3.6.0 + colorette: 2.0.20 + compression: 1.7.4 + connect-history-api-fallback: 2.0.0 + default-gateway: 6.0.3 + express: 4.21.1 + graceful-fs: 4.2.11 + html-entities: 2.5.2 + http-proxy-middleware: 2.0.7(@types/express@4.17.21) + ipaddr.js: 2.2.0 + launch-editor: 2.9.1 + open: 10.1.0 + p-retry: 6.2.0 + rimraf: 5.0.10 + schema-utils: 4.2.0 + selfsigned: 2.4.1 + serve-index: 1.9.1 + sockjs: 0.3.24 + spdy: 4.0.2 + webpack-dev-middleware: 7.4.2(webpack@5.94.0) + ws: 8.18.0 + optionalDependencies: + webpack: 5.94.0(esbuild@0.23.0) + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + webpack-merge@6.0.1: + dependencies: + clone-deep: 4.0.1 + flat: 5.0.2 + wildcard: 2.0.1 + + webpack-sources@3.2.3: {} + + webpack-subresource-integrity@5.1.0(webpack@5.94.0(esbuild@0.23.0)): + dependencies: + typed-assert: 1.0.9 + webpack: 5.94.0(esbuild@0.23.0) + + webpack@5.94.0(esbuild@0.23.0): + dependencies: + '@types/estree': 1.0.6 + '@webassemblyjs/ast': 1.12.1 + '@webassemblyjs/wasm-edit': 1.12.1 + '@webassemblyjs/wasm-parser': 1.12.1 + acorn: 8.13.0 + acorn-import-attributes: 1.9.5(acorn@8.13.0) + browserslist: 4.24.0 + chrome-trace-event: 1.0.4 + enhanced-resolve: 5.17.1 + es-module-lexer: 1.5.4 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.10(esbuild@0.23.0)(webpack@5.94.0) + watchpack: 2.4.1 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + which@4.0.0: + dependencies: + isexe: 3.1.1 + + wildcard@2.0.1: {} + + wordwrap@1.0.0: {} + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + ws@8.17.1: {} + + ws@8.18.0: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yocto-queue@1.1.1: {} + + yoctocolors-cjs@2.1.2: {} + + zone.js@0.14.10: {} diff --git a/proxy.conf.json b/proxy.conf.json new file mode 100644 index 0000000..e24d739 --- /dev/null +++ b/proxy.conf.json @@ -0,0 +1,18 @@ +{ + "/static": { + "target": "http://127.0.0.1:5002", + "secure": false + }, + "/v1": { + "target": "http://127.0.0.1:5002", + "secure": false + }, + "/attachment": { + "target": "http://127.0.0.1:5002", + "secure": false + }, + "/tiles": { + "target": "http://127.0.0.1:5002", + "secure": false + } +} diff --git a/src/app/about/about.component.html b/src/app/about/about.component.html new file mode 100644 index 0000000..c7e6ba7 --- /dev/null +++ b/src/app/about/about.component.html @@ -0,0 +1,10 @@ + + + About Tree Trail + + +

Version

+

Client: {{ (configService.conf | async).bootstrap.client.version }}>

+

Server: {{ (configService.conf | async).bootstrap.server.version }}

+
+
\ No newline at end of file diff --git a/src/app/about/about.component.scss b/src/app/about/about.component.scss new file mode 100644 index 0000000..3331762 --- /dev/null +++ b/src/app/about/about.component.scss @@ -0,0 +1,4 @@ +.h { + display: inline; + font-weight: 600; +} \ No newline at end of file diff --git a/src/app/about/about.component.spec.ts b/src/app/about/about.component.spec.ts new file mode 100644 index 0000000..0e0d812 --- /dev/null +++ b/src/app/about/about.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AboutComponent } from './about.component'; + +describe('AboutComponent', () => { + let component: AboutComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AboutComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AboutComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/about/about.component.ts b/src/app/about/about.component.ts new file mode 100644 index 0000000..edfc557 --- /dev/null +++ b/src/app/about/about.component.ts @@ -0,0 +1,17 @@ +import { Component, OnInit } from '@angular/core'; + +import { ConfigService } from '../config.service' + +@Component({ + selector: 'app-about', + templateUrl: './about.component.html', + styleUrls: ['./about.component.scss'] +}) +export class AboutComponent implements OnInit { + constructor( + public configService: ConfigService, + ) { } + + ngOnInit(): void { + } +} diff --git a/src/app/action.service.ts b/src/app/action.service.ts new file mode 100644 index 0000000..b8ead86 --- /dev/null +++ b/src/app/action.service.ts @@ -0,0 +1,541 @@ +import { Injectable } from '@angular/core' +import { HttpClient } from '@angular/common/http' +import { ActivatedRoute, Router } from '@angular/router' +import { Location } from "@angular/common" + +import { Observable, BehaviorSubject, forkJoin, of, from } from 'rxjs' +import { first, map } from 'rxjs/operators' + +import { GeoJSONSource } from 'maplibre-gl' + +import { GeolocationService } from '@ng-web-apis/geolocation' +import { NgxImageCompressService } from 'ngx-image-compress' + +import * as untar from 'js-untar' + +import { ConfigService } from './config.service' +import { DataService, pendingTreeDbName } from './data.service' +import { FeatureFinderService } from './feature-finder.service' +import { + FeatureTarget, TreeTrail, Tree, Trees, + Trail, Trails, All, Pois, Poi, Zones, Zone, + Styles, Style +} from './models' +import { PlantekeyService } from './plantekey.service' +import { MessageService } from './message.service' +import { FeatureCollection } from 'geojson' + +// CACHE_NAME is not exported +//import { CACHE_NAME } from 'maplibre-gl/src/util/tile_request_cache' +const CACHE_NAME = 'mapbox-tiles' + +@Injectable() +export class ActionService { + + // Some cross application observables + //public settings = new BehaviorSubject(new Settings({})) + //settings$ = this.settings.asObservable() + + private _isOnline = new BehaviorSubject(navigator.onLine) + isOnline$ = this._isOnline.asObservable() + + private _nearestTree = new BehaviorSubject(undefined) + nearestTree$ = this._nearestTree.asObservable() + + location: GeolocationPosition | undefined = undefined + + constructor( + public readonly geolocation$: GeolocationService, + public httpClient: HttpClient, + public configService: ConfigService, + public dataService: DataService, + public featureFinderService: FeatureFinderService, + private router: Router, + private route: ActivatedRoute, + public browserLocation: Location, + public plantekeyService: PlantekeyService, + public messageService: MessageService, + public imageCompressService: NgxImageCompressService, + ) { + window.addEventListener("online", + () => { + this._isOnline.next(true) + } + ) + window.addEventListener("offline", + () => { + this._isOnline.next(false) + } + ) + + this.isOnline$.subscribe( + isOnline => { + if (isOnline) { + this.dataService.syncPendingTrees() + } + } + ) + + this.geolocation$.subscribe({ + next: (location: GeolocationPosition) => { + this.location = location + this.onLocationChange() + }, + error: (err) => { + console.log(err) + this.location = undefined + } + }) + } + + logout() { + localStorage.removeItem('token') + this.configService.setUserPref('userName', undefined) + this.browserLocation.back() + } + + onLocationChange() { + let newFeature: FeatureTarget = this.featureFinderService.findNewFeature(this.location) + if (newFeature) { + this.vibrate() + this._nearestTree.next(newFeature) + } + } + + getAllGeoJSONPois(): Observable { + return this.httpClient.get('v1/poi').pipe( + map(data => { + this.dataService.poisFeatures.next(data) + return data + }) + ) + } + + getAllGeoJSONTrees(): Observable { + return this.httpClient.get('v1/tree').pipe( + map(data => { + this.dataService.treeFeatures.next(data) + return data + }) + ) + } + + getAllGeoJSONZones(): Observable { + return this.httpClient.get('v1/zone').pipe( + map(data => { + this.dataService.zoneFeatures.next(data) + return data + }) + ) + } + + getAllGeoJSONTrails(): Observable { + return this.httpClient.get('v1/trail').pipe( + map(data => { + this.dataService.trailFeatures.next(data) + return data + }) + ) + } + + getAllTrees(): Observable { + return this.getAllGeoJSONTrees().pipe(map( + source => Object.fromEntries( + source['features'].map( + feature => new Tree( + feature['id'], + feature, + feature['properties']['plantekey_id'], + feature['properties']['photo'], + feature['properties']['data'], + feature['properties']['height'], + feature['properties']['comments'], + ) + ).map((t: Tree) => [t.id, t])) + )) + } + + getAllPois(): Observable { + return this.getAllGeoJSONPois().pipe(map( + source => Object.fromEntries( + source['features'].map( + feature => new Poi( + +feature['id'], + feature, + feature['properties']['name'], + feature['properties']['type'], + feature['properties']['description'], + feature['properties']['photo'], + feature['properties']['data'], + ) + ).map((t: Poi) => [t.id, t])) + )) + } + + getAllTrails(): Observable { + return this.getAllGeoJSONTrails().pipe(map( + trailsSource => { + let tl: Trail[] = trailsSource['features'].map( + feature => new Trail( + +feature['id'], + feature['properties']['name'], + feature['properties']['description'], + feature, + {}, + feature['properties']['photo'] + ) + ) + let trails: Trails = {} + for (let t of tl) { + trails[t.id] = t + } + return trails + } + )) + } + + getAllTreeTrails(): Observable { + return this.httpClient.get('v1/tree-trail').pipe( + map(data => { + this.dataService.set_tree_trail(data) + return data + }) + ) + } + + getAllZones(): Observable { + return this.getAllGeoJSONZones().pipe(map( + source => Object.fromEntries( + source['features'].map( + zone => new Zone( + +zone['id'], + zone, + zone['properties']['name'], + zone['properties']['type'], + zone['properties']['description'], + zone['properties']['photo'], + zone['properties']['data'], + ) + ).map((t: Zone) => [t.id, t])) + )) + } + + getAllStyles(): Observable { + return this.httpClient.get('v1/style').pipe(map( + styles => Object.fromEntries( + styles.map( + style => new Style( + style['layer'], + style['paint'] || {}, + style['layout'] || {}, + ) + ).map((t: Style) => [t.layer, t])) + )) + } + + fetchData(): Observable { + return forkJoin([ + this.getAllTrails(), + this.getAllTrees(), + this.getAllTreeTrails(), + this.getAllPois(), + this.getAllZones(), + this.getAllStyles(), + this.plantekeyService.getAllPlants(), + ]).pipe(map( + ([trails, trees, tts, pois, zones, styles, plants]) => { + Object.values(trails).forEach( + trail => { + let tl = tts.filter(tt => tt.trail_id == trail.id) + .map(tt => trees[tt.tree_id]) + trail.trees = Object.fromEntries( + tts.filter(tt => tt.trail_id == trail.id).map( + (tt => [tt.tree_id, trees[tt.tree_id]]) + )) + } + ) + tts.forEach( + tt => { + if (tt.tree_id in trees) { + let plantId = trees[tt.tree_id].plantekeyId + if (!this.dataService.plant_trail[plantId]) { + this.dataService.plant_trail[plantId] = {} + } + this.dataService.plant_trail[plantId][tt.trail_id] = trails[tt.trail_id] + } + } + ) + this.dataService.all.next(new All(trees, trails, tts, plants, pois, zones, styles)) + } + )) + } + + getUpdates(): Observable> { + return from(window.caches.open('v1')).pipe( + map( + cache => + forkJoin([ + this.getSimpleUpdates(cache), + //this.getComplexUpdates(cache) + ]) + ) + ) + } + + cacheImages(): Observable> { + return from(window.caches.open('attachments')).pipe( + map( + cache => forkJoin([ + this.getPlantekeyImagesTarFile(cache), + this.getAllAttachmentsTarFile(cache), + ]) + ) + ) + } + + cacheMapData(): Observable> { + return from(window.caches.open(CACHE_NAME)).pipe( + map( + cache => this.getMapData(cache) + ) + ) + } + + getMapData(cache: Cache, style = 'osm'): Observable { + return this.httpClient.get(`/tiles/${style}/all.tar`, { + 'responseType': 'blob' + }).pipe( + map( + (data: any) => { + from(data.arrayBuffer()).subscribe( + buf => from(untar.default(buf)).subscribe( + (tiles: any) => { + for (let tile of tiles) { + cache.put( + `/tiles/${tile.name}`, + new Response( + tile.blob, + { + headers: { + 'content-type': tile.name == `style/${style}` ? 'application/json' : 'application/octet-stream', + 'content-length': tile.size + } + } + ) + ) + } + } + ) + ) + } + ) + ) + } + + getPlantekeyImagesTarFile(cache: Cache): Observable { + return this.httpClient.get('/static/cache/plantekey/thumbnails.tar', { + 'responseType': 'blob' + }).pipe( + map( + (data: any) => { + from(data.arrayBuffer()).subscribe( + buf => from(untar.default(buf)).subscribe( + (imgs: any) => { + for (let img of imgs) { + cache.put( + `/attachment/plantekey/thumb/${img.name.split('/').pop()}`, + new Response( + img.blob, + { + headers: { + 'content-type': 'image/jpeg', + 'content-length': img.size + } + } + ) + ) + } + } + ) + ) + } + ) + ) + } + + getAllAttachmentsTarFile(cache: Cache): Observable { + return this.httpClient.get('/static/cache/attachments.tar', { + 'responseType': 'blob' + }).pipe( + map( + (data: any) => { + from(data.arrayBuffer()).subscribe( + buf => from(untar.default(buf)).subscribe( + (imgs: any) => { + for (let img of imgs) { + let splitPath = img['name'].split('/') + let fileName = splitPath.pop() + let id = splitPath.pop() + let type = splitPath.pop() + cache.put( + `/attachment/${type}/${id}/${fileName}`, + new Response( + img.blob, + { + headers: { + 'content-type': 'image/jpeg', + 'content-length': img.size + } + } + ) + ) + } + } + ) + ) + } + ) + ) + } + + clearCache() { + return from(window.caches.delete('v1')) + } + + updatePlantekeyData(): Observable { + return this.httpClient.get('v1/plantekey/updateData') + } + + updatePlantekeyImages(): Observable { + return this.httpClient.get('v1/plantekey/updateImages') + } + + makeAttachmentsTarFile(): Observable { + return this.httpClient.get('v1/makeAttachmentsTarFile') + } + + /* + * Get simple (atomic) requests + */ + getSimpleUpdates(cache: Cache): Observable { + return from(cache.addAll([ + 'v1/trail', + 'v1/tree', + 'v1/plantekey/details', + //'v1/plantekey/plant/info', + 'v1/tree-trail', + ])) + } + + upload(type: string, field: string, id: string, formData: FormData) { + return this.httpClient.post(`v1/upload/${type}/${field}/${id}`, formData) + } + + /* + * Get complex objects from the server, that are expanded and + * put in the cache in separate entities + */ + // XXX: Unused + getComplexUpdates(cache: Cache): Observable { + return this.httpClient.get('v1/plantekey/plant/info').pipe( + map( + resp => { + for (let id in resp['plant']) { + let plant = resp['plant'][id] + let family = plant['family'].replace(' ', '-').toLowerCase() + let characteristics = resp['characteristics'][id] + let images = resp['image'][id] + cache.put( + `v1/plantekey/plant/info/${family}/${id}`, + new Response( + plant, + { headers: { 'content-type': 'application/json' } } + ) + ) + } + return of() + } + ) + ) + } + + /* + skipIntro() { + this.configService.conf.value.skipIntro = true + this.configService.storeUserData() + this.router.navigate([''], {relativeTo: this.route}); + } + */ + + vibrate() { + if (this.configService.conf.value.vibrate) { + window.navigator.vibrate([200, 100, 200]) + } + } + + updateLocalData() { + this.getUpdates().subscribe( + dbFetch => { + dbFetch.subscribe({ + complete: () => { + this.messageService.message.next('Update local data successful') + }, + error: error => { + console.error(error) + this.messageService.message.next('Update failed') + } + }) + } + ) + } + + updateLocalImages() { + this.cacheImages().subscribe( + dbFetch => { + dbFetch.subscribe({ + complete: () => { + this.messageService.message.next('Update local images successful') + }, + error: error => { + console.error(error) + this.messageService.message.next('Update local images failed') + } + }) + } + ) + } + + updateLocalMapData() { + this.cacheMapData().subscribe( + dbFetch => { + dbFetch.subscribe({ + complete: () => { + this.messageService.message.next('Update map data successful') + }, + error: error => { + console.error(error) + this.messageService.message.next('Update map data failed') + } + }) + } + ) + } + + clearLocalData() { + this.clearCache().subscribe( + result => { + this.messageService.message.next('Cache cleared') + } + ) + } + + /* + * Get all data from server needed for offline browsing. + * Insert these in the cache storage + */ + getPicturesForOffline() { + this.updateLocalMapData() + this.updateLocalImages() + this.updateLocalData() + } +} diff --git a/src/app/admin/admin.component.html b/src/app/admin/admin.component.html new file mode 100644 index 0000000..a2097eb --- /dev/null +++ b/src/app/admin/admin.component.html @@ -0,0 +1,63 @@ + + + + Pending trees + Sync trees created locally, not saved on the server + +
+ Trees pending for syncing to server's database: + {{ pendingTreesCount }}. +
+ + +
+
+
+ + + + Update server data + Get updates from plantekey, etc + +
+ + + +
+
+ + + + User + Show logged-in user information + +
+

User: {{ (configService.conf | async).bootstrap.user.username }}

+

Full name: {{ (configService.conf | async).bootstrap.user.full_name }}

+

Email: {{ (configService.conf | async).bootstrap.user.email }}

+

Roles: + + {{ role.name }} + +

+
+
+
+ + + {{ (configService.conf | async).bootstrap.user.username }}, your session has expired. + + \ No newline at end of file diff --git a/src/app/admin/admin.component.scss b/src/app/admin/admin.component.scss new file mode 100644 index 0000000..40763d6 --- /dev/null +++ b/src/app/admin/admin.component.scss @@ -0,0 +1,11 @@ +.actions { + text-align: center; + flex-direction: column; + button { + margin: 0.2em; + } +} + +.h { + font-weight: bold; +} \ No newline at end of file diff --git a/src/app/admin/admin.component.spec.ts b/src/app/admin/admin.component.spec.ts new file mode 100644 index 0000000..eb28e42 --- /dev/null +++ b/src/app/admin/admin.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { AdminComponent } from './admin.component'; + +describe('AdminComponent', () => { + let component: AdminComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ AdminComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(AdminComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/admin/admin.component.ts b/src/app/admin/admin.component.ts new file mode 100644 index 0000000..31d8639 --- /dev/null +++ b/src/app/admin/admin.component.ts @@ -0,0 +1,83 @@ +import { Component, OnInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core' +import { map, first } from 'rxjs/operators' + +import { ActionService } from '../action.service' +import { MessageService } from '../message.service' + +import { AuthService } from '../services/auth.service' +import { ConfigService } from '../config.service' +import { User } from '../models' +import { DataService, pendingTreeDbName } from '../data.service' + +@Component({ + changeDetection: ChangeDetectionStrategy.OnPush, + selector: 'app-admin', + templateUrl: './admin.component.html', + styleUrls: ['./admin.component.scss'] +}) +export class AdminComponent implements OnInit { + user: User + pendingTreeDbName = pendingTreeDbName + pendingTreesCount: number + + constructor( + public actionService: ActionService, + public messageService: MessageService, + public authService: AuthService, + public cdr: ChangeDetectorRef, + public configService: ConfigService, + public dataService: DataService, + ) {} + + ngOnInit(): void { + this.updatePendingTrees() + this.dataService.updatePendingTrees$.subscribe( + () => this.updatePendingTrees() + ) + } + + updatePlantekeyData() { + this.actionService.updatePlantekeyData().subscribe({ + complete: () => { + this.messageService.message.next('Update server data successful') + }, + error: error => { + console.error(error) + this.messageService.message.next(`Update failed: ${error.statusText}`) + } + }) + } + + updatePlantekeyImages() { + this.actionService.updatePlantekeyImages().subscribe({ + complete: () => { + this.messageService.message.next('Update server images successful') + }, + error: error => { + console.error(error) + this.messageService.message.next(`Update failed: ${error.statusText}`) + } + }) + } + + makeAttachmentsTarFile() { + this.actionService.makeAttachmentsTarFile().subscribe({ + complete: () => { + this.messageService.message.next('Tar file creation successful') + }, + error: error => { + console.error(error) + this.messageService.message.next(`Update failed: ${error.statusText}`) + } + }) + } + + updatePendingTrees() { + this.dataService.dbService.count(pendingTreeDbName).pipe(first()).pipe(map( + count => { + this.pendingTreesCount = count + this.cdr.markForCheck() + } + )).subscribe() + } +} diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts new file mode 100644 index 0000000..0f78e30 --- /dev/null +++ b/src/app/app-routing.module.ts @@ -0,0 +1,91 @@ +import { NgModule, inject } from '@angular/core' +import { + ActivatedRouteSnapshot, ResolveFn, RouterModule, + RouterStateSnapshot, Routes +} from '@angular/router' + +import { HomeComponent } from './home/home.component' +import { IntroComponent } from './intro/intro.component' +import { MapViewComponent } from './map-view/map-view.component' +import { PlantBrowserComponent } from './plant-browser/plant-browser.component' +import { PlantListComponent } from './plant-list/plant-list.component' +import { PlantDetailComponent } from './plant-detail/plant-detail.component' +import { TreeDetailComponent } from './tree-detail/tree-detail.component' +import { SettingsComponent } from './settings/settings.component' +import { AdminComponent } from './admin/admin.component' +import { AboutComponent } from './about/about.component' +import { TrailListComponent } from './trail-list/trail-list.component' +import { TrailDetailComponent } from './trail-detail/trail-detail.component' +import { LoginComponent } from './login/login.component' +import { ProfileComponent } from './profile/profile.component' +import { AuthGuardService } from './services/auth-guard.service' + + +const routes: Routes = [ + { path: '', redirectTo: '/home', pathMatch: 'full' }, + { + path: 'home', + component: HomeComponent, + }, + { + path: 'settings', + component: SettingsComponent, + }, + { + path: 'login', + component: LoginComponent, + }, + { + path: 'profile', + component: ProfileComponent, + canActivate: [AuthGuardService] + }, + { + path: 'trail', + component: TrailListComponent, + }, + { + path: 'trail/:id', + component: TrailDetailComponent, + }, + { + path: 'admin', + component: AdminComponent, + canActivate: [AuthGuardService] + }, + { + path: 'map', + component: MapViewComponent, + }, + { + path: 'intro', + component: IntroComponent, + }, + { + path: 'plant-table', + component: PlantBrowserComponent, + }, + { + path: 'tree/:pekid', + component: TreeDetailComponent, + }, + { + path: 'plant/:pekid', + component: PlantDetailComponent, + }, + { + path: 'plant', + component: PlantListComponent, + }, + { + path: 'about', + component: AboutComponent, + }, +] + + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRoutingModule { } diff --git a/src/app/app-update.service.ts b/src/app/app-update.service.ts new file mode 100644 index 0000000..2a7bf16 --- /dev/null +++ b/src/app/app-update.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core' +import { SwUpdate } from '@angular/service-worker' + +@Injectable({ + providedIn: 'root' +}) +export class AppUpdateService { + constructor( + private readonly updates: SwUpdate, + ) { + this.updates.versionUpdates.subscribe( + evt => { + switch (evt.type) { + case 'VERSION_DETECTED': + console.log(`Downloading new app version: ${evt.version.hash}`); + break; + case 'VERSION_READY': + console.log(`Current app version: ${evt.currentVersion.hash}`); + console.log(`New app version ready for use: ${evt.latestVersion.hash}`); + this.showAppUpdateAlert() + break; + case 'VERSION_INSTALLATION_FAILED': + console.log(`Failed to install app version '${evt.version.hash}': ${evt.error}`); + break; + } + } + ) + } + + showAppUpdateAlert() { + const message = 'App Update available - click OK to update' + alert(message) + this.doAppUpdate() + } + + doAppUpdate() { + this.updates.activateUpdate().then(() => document.location.reload()) + } +} \ No newline at end of file diff --git a/src/app/app.component.html b/src/app/app.component.html new file mode 100644 index 0000000..d2944d1 --- /dev/null +++ b/src/app/app.component.html @@ -0,0 +1,2 @@ + + diff --git a/src/app/app.component.scss b/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts new file mode 100644 index 0000000..a7d0dc3 --- /dev/null +++ b/src/app/app.component.spec.ts @@ -0,0 +1,35 @@ +import { TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + RouterTestingModule + ], + declarations: [ + AppComponent + ], + }).compileComponents(); + }); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'treetrail'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.componentInstance; + expect(app.title).toEqual('treetrail'); + }); + + it('should render title', () => { + const fixture = TestBed.createComponent(AppComponent); + fixture.detectChanges(); + const compiled = fixture.nativeElement; + expect(compiled.querySelector('.content span').textContent).toContain('treetrail app is running!'); + }); +}); diff --git a/src/app/app.component.ts b/src/app/app.component.ts new file mode 100644 index 0000000..52a84ae --- /dev/null +++ b/src/app/app.component.ts @@ -0,0 +1,29 @@ +import { Component, OnInit, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' +import { DataService } from './data.service' + +import { ActionService } from './action.service' +import { AppUpdateService } from './app-update.service' +import { ConfigService, settingsDbName } from './config.service' +import { combineLatest } from 'rxjs' + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppComponent implements OnInit { + constructor( + public dataService: DataService, + public configService: ConfigService, + public actionService: ActionService, + public appUpdateService: AppUpdateService, + public cdr: ChangeDetectorRef, + ) {} + title = 'treetrail' + + ngOnInit(): void { + this.actionService.fetchData().subscribe() + } +} diff --git a/src/app/app.module.ts b/src/app/app.module.ts new file mode 100644 index 0000000..aad12cc --- /dev/null +++ b/src/app/app.module.ts @@ -0,0 +1,275 @@ +import { NgModule, APP_INITIALIZER } from '@angular/core' +import { BrowserModule } from '@angular/platform-browser' +import { APP_BASE_HREF } from '@angular/common' +import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http' +import { ServiceWorkerModule } from '@angular/service-worker' +import { BrowserAnimationsModule } from '@angular/platform-browser/animations' +import { Observable, combineLatest, map } from 'rxjs' + +import { FormsModule, ReactiveFormsModule } from '@angular/forms' + +import { LayoutModule } from '@angular/cdk/layout' +import { ScrollingModule } from '@angular/cdk/scrolling' + +import { MatToolbarModule } from '@angular/material/toolbar' +import { MatButtonModule } from '@angular/material/button' +import { MatButtonToggleModule } from '@angular/material/button-toggle' +import { MatFormFieldModule } from '@angular/material/form-field' +import { MatInputModule } from '@angular/material/input' +import { MatSidenavModule } from '@angular/material/sidenav' +import { MatIconModule } from '@angular/material/icon' +import { MatListModule } from '@angular/material/list' +import { MatGridListModule } from '@angular/material/grid-list' +import { MatCardModule } from '@angular/material/card' +import { MatMenuModule } from '@angular/material/menu' +import { MatProgressSpinnerModule } from '@angular/material/progress-spinner' +import { MatTableModule } from "@angular/material/table" +import { MatSlideToggleModule } from '@angular/material/slide-toggle' +import { MatSortModule } from '@angular/material/sort' +import { MatTooltipModule } from '@angular/material/tooltip' +import { MatExpansionModule } from '@angular/material/expansion' +import { MatSnackBarModule } from '@angular/material/snack-bar' +import { MatCheckboxModule } from '@angular/material/checkbox' +import { MatDialogModule } from '@angular/material/dialog' +import { MatAutocompleteModule } from '@angular/material/autocomplete' +import { MatSelectModule } from '@angular/material/select' +import { MatStepperModule } from '@angular/material/stepper' +import { MatSliderModule } from '@angular/material/slider' +import { MatChipsModule } from '@angular/material/chips' + +import { NgxIndexedDBModule, DBConfig } from 'ngx-indexed-db' +import { NgxMapLibreGLModule } from '@maplibre/ngx-maplibre-gl' + +import { environment } from '../environments/environment' + +import { AppRoutingModule } from './app-routing.module' +import { AppComponent } from './app.component' +import { NavComponent } from './nav/nav.component' + +import { ActionService } from './action.service' +import { MessageService } from './message.service' +import { FeatureFinderService } from './feature-finder.service' +import { AppUpdateService } from './app-update.service' +import { ConfigService, dbName, settingsDbName } from './config.service' +import { PlantekeyService } from './plantekey.service' +import { DndDirective } from './directives/dnd.directive' +import { TreeTrailMapEditControlDirective } from './map/map-edit/edit-map-control.directive' +import { MapEditService } from './map/map-edit/map-edit.service' + +import { MapComponent } from './map/map.component' +import { HomeComponent } from './home/home.component' +import { IntroComponent } from './intro/intro.component' +import { MessageComponent } from './message/message.component' +import { IndicatorComponent } from './indicator/indicator.component' +import { PlantBrowserComponent } from './plant-browser/plant-browser.component' +import { PlantListItemComponent } from './plant-list-item/plant-list-item.component' +import { SettingsComponent } from './settings/settings.component' +import { AdminComponent } from './admin/admin.component' +import { AboutComponent } from './about/about.component' +import { PlantListComponent } from './plant-list/plant-list.component' +import { PlantDetailComponent } from './plant-detail/plant-detail.component' +import { TrailListComponent } from './trail-list/trail-list.component' +import { TrailListItemComponent } from './trail-list-item/trail-list-item.component' +import { TrailDetailComponent } from './trail-detail/trail-detail.component' +import { TreeDetailComponent } from './tree-detail/tree-detail.component' +import { MapInfoComponent } from './map-info/map-info.component' +import { MapViewComponent } from './map-view/map-view.component' +import { TreetrailDirectionComponent } from './map/direction.component' +import { LoginComponent } from './login/login.component' +import { ProfileComponent } from './profile/profile.component' +import { InterceptorService } from './services/interceptor-service.service' +import { TreePopupComponent } from './tree-popup/tree-popup.component' +import { PoiPopupComponent } from './poi-popup/poi-popup.component' +import { ZonePopupComponent } from './zone-popup/zone-popup.component' +import { MapEditComponent } from './map/map-edit/map-edit.component' +import { PlantChooserDialogComponent } from './map/map-edit/plant-chooser-dialog' +import { AppControlComponent } from './map/app-control.component' + +// import { DefaultService } from './openapi/services' +import { DataService } from './data.service' + +const dbConfig: DBConfig = { + name: dbName, + version: 4, + objectStoresMeta: [ + { + store: 'tree', + storeConfig: { keyPath: 'id', autoIncrement: false }, + storeSchema: [ + //{ name: 'userName', keypath: 'userName', options: { unique: true } }, + //{ name: 'skipIntre', keypath: 'skipIntre', options: { unique: true } }, + //{ name: 'showZones', keypath: 'showZones', options: { unique: true } }, + //{ name: 'vibrate', keypath: 'vibrate', options: { unique: true } }, + ] + }, + { + store: 'trail', + storeConfig: { keyPath: 'id', autoIncrement: false }, + storeSchema: [ + //{ name: 'comment', keypath: 'name', options: { unique: false } }, + ] + }, + { + store: 'plant', + storeConfig: { keyPath: 'id', autoIncrement: false }, + storeSchema: [ + //{ name: 'comment', keypath: 'name', options: { unique: false } }, + ] + }, + { + store: 'pendingTree', + storeConfig: { keyPath: 'id', autoIncrement: true }, + storeSchema: [ + //{ name: 'comment', keypath: 'name', options: { unique: false } }, + ] + }, + { + store: 'characteristics', + storeConfig: { keyPath: 'id', autoIncrement: false }, + storeSchema: [ + //{ name: 'comment', keypath: 'name', options: { unique: false } }, + ] + }, + { + store: 'img', + storeConfig: { keyPath: 'id', autoIncrement: false }, + storeSchema: [ + //{ name: 'comment', keypath: 'name', options: { unique: false } }, + ] + }, + { + store: 'settings', + storeConfig: { keyPath: 'key', autoIncrement: false }, + storeSchema: [] + } + ] +} + +function initializeAppFactory( + configService: ConfigService, + dataService: DataService, +): () => Observable { + return () => combineLatest([ + dataService.dbService.getAll(settingsDbName), + configService.bootstrap(), + ]).pipe(map(([dbData, bootstrap]) => { + configService.loadUserSettings(dbData) + if (!configService.conf.value.mapPos) { + configService.conf.value.mapPos = { + center: { lat: bootstrap.map.lat, lon: bootstrap.map.lng }, + zoom: bootstrap.map.zoom, + bearing: 0, + pitch: 0 + } + } + if (!configService.conf.value.background) { + configService.conf.value.background = bootstrap.map.background + } + })) +} + +@NgModule({ + declarations: [ + AppComponent, + NavComponent, + MapComponent, + HomeComponent, + IntroComponent, + MessageComponent, + IndicatorComponent, + PlantBrowserComponent, + PlantListItemComponent, + SettingsComponent, + AdminComponent, + AboutComponent, + PlantListComponent, + PlantDetailComponent, + TrailListComponent, + TrailListItemComponent, + TrailDetailComponent, + TreeDetailComponent, + MapInfoComponent, + MapViewComponent, + TreetrailDirectionComponent, + LoginComponent, + ProfileComponent, + TreePopupComponent, + PoiPopupComponent, + ZonePopupComponent, + DndDirective, + TreeTrailMapEditControlDirective, + MapEditComponent, + PlantChooserDialogComponent, + AppControlComponent, + ], + bootstrap: [AppComponent], + imports: [ + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + FormsModule, + ReactiveFormsModule, + LayoutModule, + ScrollingModule, + MatToolbarModule, + MatButtonModule, + MatButtonToggleModule, + MatFormFieldModule, + MatInputModule, + MatSidenavModule, + MatIconModule, + MatListModule, + MatGridListModule, + MatCardModule, + MatMenuModule, + MatProgressSpinnerModule, + MatTableModule, + MatSlideToggleModule, + MatSortModule, + MatTooltipModule, + MatExpansionModule, + MatSnackBarModule, + MatCheckboxModule, + MatDialogModule, + MatAutocompleteModule, + MatSelectModule, + MatStepperModule, + MatSliderModule, + MatChipsModule, + NgxMapLibreGLModule, + NgxIndexedDBModule.forRoot(dbConfig), + // ServiceWorkerModule.register('ngsw-worker-custom.js', { + ServiceWorkerModule.register('ngsw-worker.js', { + enabled: environment.production, + // Register the ServiceWorker as soon as the app is stable + // or after 30 seconds (whichever comes first). + registrationStrategy: 'registerWhenStable:30000' + })], + providers: [ + ActionService, + MessageService, + FeatureFinderService, + PlantekeyService, + MapEditService, + AppUpdateService, + ConfigService, + // DefaultService, + { + provide: HTTP_INTERCEPTORS, + useClass: InterceptorService, + multi: true + }, + { + provide: APP_INITIALIZER, + useFactory: initializeAppFactory, + deps: [ConfigService, DataService], + multi: true + }, + { + provide: APP_BASE_HREF, + useValue: '/treetrail/' + }, + provideHttpClient(withInterceptorsFromDi()) + ] +}) +export class AppModule { } diff --git a/src/app/config.service.ts b/src/app/config.service.ts new file mode 100644 index 0000000..59d3739 --- /dev/null +++ b/src/app/config.service.ts @@ -0,0 +1,156 @@ +import { Injectable, Component } from "@angular/core" +import { Observable, BehaviorSubject, Subject, ReplaySubject, combineLatest } from 'rxjs' +import { map, take } from 'rxjs/operators' + +import { LngLat, LngLatLike } from "maplibre-gl" +import { DataService } from "./data.service" +import { DefaultService } from "./openapi/services.gen" +import { Bootstrap, Map } from "./openapi/types.gen" + +export type MapPos = { + center: LngLatLike, + zoom: number, + bearing: number, + pitch: number, +} + +export const dbName = 'treetrail' // See also dbConfig in app.module +export const settingsDbName = 'settings' + +export class Config { + constructor( + public user: string = undefined, + public skipIntro: boolean = false, + public vibrate: boolean = true, + public showZones: { [zone: string]: boolean } = {}, + public alertDistance = 250, + public map?: Map, + public bootstrap?: Bootstrap, + public mapPos?: MapPos, + public background: string = undefined, + // public server: {} = {}, + // public client: {} = {}, + // public app: {} = {}, + ) { } +} + +@Injectable() +export class ConfigService { + constructor( + public dataService: DataService, + private api: DefaultService, + ) { + } + + public conf: BehaviorSubject // = new BehaviorSubject(new Config()) + + userPrefsKeyList = ['userName', 'skipIntro', 'vibrate', 'showZones', 'background'] + + bootstrap(): Observable { + return this.api.getBootstrapBootstrapGet().pipe(map( + resp => { + this.conf = new BehaviorSubject(new Config( + '', + false, + true, + {}, + 250, + resp.map, + resp, + undefined, + )) + // this.conf.value.bootstrap = resp + // this.conf.value.map = resp.map + // this.conf.next(this.conf.value) + return resp + } + )) + } + + getMapCenter(): Observable { + return this.conf.pipe(map( + conf => { + lng: conf.map.lng, + lat: conf.map.lat + } + )) + } + + loadUserSettings(data: unknown[]) { + // TODO: assert the whole idea and use of storing the config in a BahaviourSubject + data.forEach(kv => { + if (kv['value']) { + this.conf.value[kv['key']] = kv['value'] + } + }) + // Update the list of types of zones from actual data + this.dataService.all.subscribe( + all => { + let zoneTypes = new Set((Object.values(all.zones).map( + zone => zone.type + ))) + zoneTypes.forEach( + zoneType => { + if (this.conf.value.showZones[zoneType] === undefined) { + this.conf.value.showZones[zoneType] = false + } + } + ) + this.conf.next(this.conf.value) + } + ) + // if (!this.conf.value.skipIntro) { + // this.router.navigate(['intro'], {relativeTo: this.route}); + // } + } + + storeUserData(): void { + this.userPrefsKeyList.forEach( + key => this.dataService.dbService.update( + settingsDbName, { + key: key, + value: this.conf.value[key] + }).subscribe() + ) + } + + setUserPrefValue(pref: string, key: string, value: any) { + let conf = this.conf.value + conf[pref][key] = value + this.conf.next(conf) + this.storeUserData() + } + + setUserPref(pref: string, value: any) { + let conf = this.conf.value + // userName is special, read (and thus stored) in bootstrap + if (pref == 'userName') { + conf.bootstrap.user = value + this.conf.next(this.conf.value) + } + else { + conf[pref] = value + } + this.conf.next(conf) + this.storeUserData() + } + + setMapPos(mapPos: MapPos): Observable { + this.updateConf({mapPos: mapPos}) + return this.dataService.dbService.update(settingsDbName, { + key: 'mapPos', + value: { + center: mapPos.center, + zoom: mapPos.zoom, + pitch: mapPos.pitch, + bearing: mapPos.bearing, + } + }) + } + + updateConf(newConf: Object) { + this.conf.pipe(take(1)).subscribe( + conf => this.conf.next({ ...conf, ...newConf }) + ) + } +} diff --git a/src/app/data.service.spec.ts b/src/app/data.service.spec.ts new file mode 100644 index 0000000..38e8d9e --- /dev/null +++ b/src/app/data.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { DataService } from './data.service'; + +describe('DataService', () => { + let service: DataService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(DataService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/data.service.ts b/src/app/data.service.ts new file mode 100644 index 0000000..1a4a6bb --- /dev/null +++ b/src/app/data.service.ts @@ -0,0 +1,280 @@ +import { ApplicationRef, Injectable } from '@angular/core' +import { BehaviorSubject, Observable, Subject, combineLatest } from 'rxjs' +import { HttpClient } from '@angular/common/http' +import { Router } from '@angular/router' +import { catchError, first, map } from 'rxjs/operators' +import { throwError } from 'rxjs' + +import { v1 as uuidv1 } from 'uuid' +import { GeoJSONSource, LngLat } from 'maplibre-gl' +import { NgxIndexedDBService } from 'ngx-indexed-db' + +import { PlantsTrails, Trail, Trails, Trees, Pois, + Zones, TreeTrail, All, Plant, Tree } from './models' +import { MessageService } from './message.service' +import { Feature } from 'geojson' + +export const pendingTreeDbName = 'pendingTree' + +export class TreeDef { + constructor( + public plant: Plant, + public trails: Trail[], + ) {} +} + +export class NewTree { + id: string + constructor( + public treeDef: TreeDef, + public lngLat: LngLat, + public dataService: DataService, + public picture?: string, + public uuid1?: string, + public pending?: number, + public details: Object = {} + ) { + if (!this.uuid1) { + this.uuid1 = uuidv1() + } + } + + getFeature(): Feature { + return { + 'type': 'Feature', + 'geometry': { + 'type': 'Point', + 'coordinates': [this.lngLat.lng, this.lngLat.lat, 0] + }, + 'properties': { + 'plantekey_id': this.treeDef.plant.id, + 'symbol': this.dataService.all.value.plants[this.treeDef.plant.id].symbol, + 'id': this.id || this.uuid1, + 'pending': this.pending + }, + } + } + + getForStorage(): Object { + let so = { + feature: this.getFeature(), + trails: this.treeDef.trails.map(trail => trail.id), + uuid1: this.uuid1, + id: this.uuid1, + details: this.details + } + if (this.picture) { + so['picture'] = this.picture + } + return so + } + + getFormData(): FormData { + let formData = new FormData() + formData.set('plantekey_id', this.treeDef.plant.id) + if (this.treeDef.trails.length > 0) { + formData.set('trail_ids', this.treeDef.trails.map( + trail => trail.id.toString()).join(',') + ) + } + formData.set('lng', this.lngLat.lng.toString()) + formData.set('lat', this.lngLat.lat.toString()) + formData.set('uuid1', this.uuid1) + if (Object.keys(this.details).length > 0) { + formData.set('details', JSON.stringify(this.details)) + } + if (this.picture) { + formData.set('picture', this.picture) + } + return formData + } +} + +@Injectable({ + providedIn: 'root' +}) +export class DataService { + constructor( + public httpClient: HttpClient, + public messageService: MessageService, + public dbService: NgxIndexedDBService, + public router: Router, + public appRef: ApplicationRef, + ) { + this.all.subscribe( + all => { + // Assign plants and trails to trees + Object.values(all.trees).forEach( + tree => { + tree.plant = all.plants[tree.plantekeyId] + let trail_ids = new Set(all.tree_trails.filter( + tt => tt.tree_id == tree.id + ).map(tt => tt.trail_id)) + tree.trails = Object.values(all.trails).filter( + trail => trail_ids.has(+trail.id) + ) + } + ) + } + ) + } + + public trailFeatures: BehaviorSubject = new BehaviorSubject({}) + public treeFeatures: BehaviorSubject = new BehaviorSubject({}) + public poisFeatures: BehaviorSubject = new BehaviorSubject({}) + public zoneFeatures: BehaviorSubject = new BehaviorSubject({}) + //public treesUpdated: Observable + + public trails: BehaviorSubject = new BehaviorSubject({}) + //public trails$ = this.trails.asObservable() + + public tree_trail: BehaviorSubject = new BehaviorSubject([]) + //public tree_trail$ = this.tree_trail.asObservable() + + //public trees: BehaviorSubject = new BehaviorSubject([]) + public trees: BehaviorSubject = new BehaviorSubject({}) + //public trees$ = this.trees.asObservable() + public pois: BehaviorSubject = new BehaviorSubject({}) + public zones: BehaviorSubject = new BehaviorSubject({}) + + public all: BehaviorSubject = new BehaviorSubject(new All()) + + public addTree$: Subject = new Subject() + + public updatePendingTrees$: Subject = new Subject() + + set_tree_trail(data: TreeTrail[]) { + this.tree_trail.next(data) + } + + plant_trail: PlantsTrails = {} + + plant_in_some_trail(plantId: string): boolean { + return plantId in this.plant_trail + } + + // Try to send to server, falling back to local storage for later sync + addTree(location: LngLat, treeDef: TreeDef, picture?: string, details: Object = {}) { + const newTree = new NewTree(treeDef, location, this, picture, undefined, 1, details) + this.httpClient.post('v1/tree', newTree.getFormData()).pipe( + map(data => { + // Got an id from the server for that tree + newTree.id = data['id'] + this.addTree$.next(newTree) + }), + catchError(err => { + this.messageService.message.next(`Cannot save: (${err.statusText}). ` + + 'It is stored in the local device and will be saved later.') + this.addTree$.next(newTree) + this.addPendingTree(newTree) + return new Observable() + }) + ).subscribe() + } + + // Store in local database to sync it with the server when possible + addPendingTree(newTree: NewTree) { + this.dbService.add(pendingTreeDbName, newTree.getForStorage()).subscribe() + } + + // Get a geo feature source of pending trees (from local indexedDB) + getPendingTrees(): Observable { + return this.dbService.getAll(pendingTreeDbName) + } + + getPendingTree(id: string): Observable { + return this.dbService.getByID(pendingTreeDbName, id).pipe(map( + data => { + const feature = data['feature'] + let tree = new Tree( + feature['properties']['id'], + feature, + feature['properties']['plantekey_id'], + data['picture'], + ) + tree.plant = this.all.value.plants[feature['properties']['plantekey_id']] + return tree + } + )) + } + + deletePendingTrees() { + this.getPendingTrees().subscribe( + trees => this.dbService.bulkDelete( + pendingTreeDbName, + trees.map(tree => tree['id']) + ).subscribe(_ => { + this.updatePendingTrees$.next() + this.appRef.tick() + }) + ) + } + + // Attempts to send the pending trees to the server + syncPendingTrees(canRedirectToLogin: boolean=false) { + this.dbService.count(pendingTreeDbName).pipe(first()).subscribe( + count => { + if (count > 0) { + combineLatest([ + this.getPendingTrees(), + this.all + ]).subscribe( + ([treeList, all]) => { + if (Object.keys(all.trees).length == 0) { return } + treeList.map( + tr => { + const feature = tr['feature'] + let newTree = new NewTree( + new TreeDef( + all.plants[feature['properties']['plantekey_id']], + [] + // this.all.getValue().trails.filter( + // trail => trail. + // ) + ), + new LngLat( + feature['geometry']['coordinates'][0], + feature['geometry']['coordinates'][1] + ), + this, + tr['picture'], + tr['uuid1'], + undefined, + tr['details'], + ) + this.httpClient.post('v1/tree', newTree.getFormData()).pipe( + map(data => { + this.dbService.deleteByKey( + pendingTreeDbName, feature['properties']['id'] + ).subscribe( + r => { + // Got an id from the server for that tree + newTree.id = data['id'] + this.updatePendingTrees$.next() + } + ) + this.appRef.tick() + }) + ).subscribe({ + error: (err) => { + if (err.status == 401) { + this.messageService.message.next(`Cannot save pending trees, you need to login again.`) + if (canRedirectToLogin) { + this.router.navigate(['/login']) + } + // TODO: resubmit pending trees + } + else { + this.messageService.message.next(`Cannot save pending trees (${err.statusText}).`) + } + } + }) + } + ) + } + ) + } + } + ) + } +} diff --git a/src/app/directives/dnd.directive.ts b/src/app/directives/dnd.directive.ts new file mode 100644 index 0000000..0264343 --- /dev/null +++ b/src/app/directives/dnd.directive.ts @@ -0,0 +1,41 @@ +import { + Directive, + Output, + Input, + EventEmitter, + HostBinding, + HostListener +} from '@angular/core'; + +@Directive({ + selector: '[app-dnd]' +}) +export class DndDirective { + @HostBinding('class.fileover') fileOver: boolean; + @Output() fileDropped = new EventEmitter(); + + // Dragover listener + @HostListener('dragover', ['$event']) onDragOver(evt) { + evt.preventDefault(); + evt.stopPropagation(); + this.fileOver = true; + } + + // Dragleave listener + @HostListener('dragleave', ['$event']) public onDragLeave(evt) { + evt.preventDefault(); + evt.stopPropagation(); + this.fileOver = false; + } + + // Drop listener + @HostListener('drop', ['$event']) public ondrop(evt) { + evt.preventDefault(); + evt.stopPropagation(); + this.fileOver = false; + let files = evt.dataTransfer.files; + if (files.length > 0) { + this.fileDropped.emit(files); + } + } +} diff --git a/src/app/feature-finder.service.spec.ts b/src/app/feature-finder.service.spec.ts new file mode 100644 index 0000000..3377a48 --- /dev/null +++ b/src/app/feature-finder.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { FeatureFinderService } from './feature-finder.service'; + +describe('FeatureFinderService', () => { + let service: FeatureFinderService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(FeatureFinderService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/feature-finder.service.ts b/src/app/feature-finder.service.ts new file mode 100644 index 0000000..7558835 --- /dev/null +++ b/src/app/feature-finder.service.ts @@ -0,0 +1,94 @@ +import { Injectable } from '@angular/core'; +import { BehaviorSubject } from 'rxjs' + +import nearest from '@turf/nearest-point' +import distance from '@turf/distance' +import bearing from '@turf/bearing' +import { Feature } from 'maplibre-gl' +import { AbsoluteOrientationSensor } from 'motion-sensors-polyfill/src/motion-sensors' + +import { ConfigService } from './config.service' +import { FeatureTarget } from './models' +import { DataService } from './data.service' +import { FeatureCollection } from 'geojson' + + +@Injectable({ + providedIn: 'root' +}) +export class FeatureFinderService { + sensor: AbsoluteOrientationSensor + constructor( + public dataService: DataService, + public configService: ConfigService, + ) { + this.sensor = new AbsoluteOrientationSensor() + this.sensor.start() + this.sensor.onerror = event => { + console.error("Error with AbsoluteOrientationSensor", event) + } + this.sensor.addEventListener('reading', () => { + const q = this.sensor.quaternion + const heading = Math.atan2(2*q[0]*q[1] + 2*q[2]*q[3], 1-2*q[1]*q[1] - 2*q[2]*q[2])*(180/Math.PI) + this.orientation.next(heading) + }) + this.orientation$.subscribe( + orientation => this.findNewFeature() + ) + this.findNewFeature() + } + + public hasDirection = new BehaviorSubject(true) + public hasDirection$ = this.hasDirection.asObservable() + public direction = new BehaviorSubject(undefined) + public direction$ = this.direction.asObservable() + public distance = new BehaviorSubject(undefined) + public distance$ = this.distance.asObservable() + public orientation = new BehaviorSubject(undefined) + public orientation$ = this.orientation.asObservable() + public location: GeolocationPosition + + findNewFeature(location?: GeolocationPosition): FeatureTarget|undefined { + if (location) { + this.location = location + } + else { + location = this.location + } + + if (Object.keys(this.dataService.treeFeatures.getValue()).length != 0 && location) { + let loc = { + "type": "Feature", + "properties": {}, + "geometry": { + "type": "Point", + "coordinates": [location.coords.longitude, location.coords.latitude] + } + } + let trees: FeatureCollection = this.dataService.treeFeatures.getValue() + if (trees['features'].length == 0) { + return undefined + } + let nt = nearest(loc, trees) + let d = distance(loc, nt, {units: 'meters'}) + let b = bearing(loc, nt) + if (d < this.configService.conf.value.alertDistance) { + this.distance.next(d) + if (this.orientation.value != undefined) { + this.hasDirection.next(true) + this.direction.next(b + this.orientation.value) + } + else { + this.hasDirection.next(false) + } + return new FeatureTarget(nt, d, ) + } + else { + this.distance.next(undefined) + return undefined + } + } + this.distance.next(undefined) + return undefined + } +} diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html new file mode 100644 index 0000000..1ff4a93 --- /dev/null +++ b/src/app/home/home.component.html @@ -0,0 +1,67 @@ +

+ Tree Trail is a fun and pedagogic tool to discover the trails and trees around. +

+ +
+

How to start?

+

+ If the main menu (on the left) is hidden, click on the top left icon (menu) to show it. + From there, 3 main options are available: +

+
+
directions_walkTrails
+
+ Details of the trails with description, photo, length, visible plants, etc. +
+
local_floristPlants
+
+ Each species has a flippable card, with information on the back side. + More details are available on the species information page: + type of plant, flower, habitat, etc, and where to find specimen. +
+
mapMap
+
+ The interactive map helps you walk the trails and spot the interesting trees and plants. + Thanks to localisation ("GPS"), Tree Trail shows a compass with + the direction and distance when you are appraching an interesting specimen. + Elements on the map are clickable, giving access to more details. +
+
+

Offline use

+

+ + Tree Trail can be used without network connection ("Road Warrior"), + allowing the exploration of the most remote places without network connectivity. +
+ Click this button to download all the data now: + +
+ + You are currently offline. + +

+

+ Tree Trail can be installed as a regular application (depending on your device and web browser). + In that case all the required data will be downloaded, thus giving the possibility to use Tree Trail + without network connectivity. +
+ + All good, Tree Trail is installed. + + + + Click on the button below to install it. + + + +

+

What next?

+

+ Time to go and explore the environment, the forest and the trees! Have fun! +

+
+ + + Unfortunately Tree Trail cannot be installed right now due to the browser, + you'll be notified when it is possible. + \ No newline at end of file diff --git a/src/app/home/home.component.scss b/src/app/home/home.component.scss new file mode 100644 index 0000000..9bd7295 --- /dev/null +++ b/src/app/home/home.component.scss @@ -0,0 +1,46 @@ +:host { + height: 100%; + display: flex; + flex-direction: column; + padding: 0 1em; + font-family: Arial, Helvetica, sans-serif; + // Angular build cannot find the path: removing for now + //background-image: url("assets/img/curly_tree_small.webp"); + background-position: center; +} + +.intro { + font-style: italic; + text-align: center; + margin: 0.2em 1em; +} + +.nowrap { + white-space: pre; +} + +h2 { + margin: 0; + text-align: center; +} + +.content { + dt { + font-weight: bold; + .mat-icon { + font-size: 150%; + line-height: inherit; + vertical-align: text-top; + padding-right: .3em; + } + } + + .nowrap { + .mat-icon { + font-size: inherit; + line-height: inherit; + vertical-align: text-top; + width: 1em; + } + } +} diff --git a/src/app/home/home.component.spec.ts b/src/app/home/home.component.spec.ts new file mode 100644 index 0000000..2c5a172 --- /dev/null +++ b/src/app/home/home.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomeComponent } from './home.component'; + +describe('HomeComponent', () => { + let component: HomeComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ HomeComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(HomeComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts new file mode 100644 index 0000000..0c267bd --- /dev/null +++ b/src/app/home/home.component.ts @@ -0,0 +1,42 @@ +import { Component, OnInit, + ChangeDetectorRef, ChangeDetectionStrategy, HostListener } from '@angular/core'; + +import { ActionService } from '../action.service' + +@Component({ + selector: 'app-home', + templateUrl: './home.component.html', + styleUrls: ['./home.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class HomeComponent implements OnInit { + constructor( + private cdr: ChangeDetectorRef, + public actionService: ActionService, + ) { } + + ngOnInit(): void { + } + + public promptEvent + + @HostListener('window:beforeinstallprompt', ['$event']) + onbeforeinstallprompt(e) { + console.log('Ready to install', e) + e.preventDefault() + this.promptEvent = e + this.cdr.markForCheck() + } + + public installPWA() { + this.promptEvent.prompt() + } + + public shouldInstall(): boolean { + return !this.isRunningStandalone() && this.promptEvent + } + + public isRunningStandalone(): boolean { + return (window.matchMedia('(display-mode: standalone)').matches) + } +} diff --git a/src/app/indicator/indicator.component.html b/src/app/indicator/indicator.component.html new file mode 100644 index 0000000..b1362ba --- /dev/null +++ b/src/app/indicator/indicator.component.html @@ -0,0 +1,17 @@ +
+ + north + + +
+ {{ distance }} m +
+ + + north + +
\ No newline at end of file diff --git a/src/app/indicator/indicator.component.scss b/src/app/indicator/indicator.component.scss new file mode 100644 index 0000000..efc617e --- /dev/null +++ b/src/app/indicator/indicator.component.scss @@ -0,0 +1,6 @@ +.container { + display: flex; + flex-direction: row; + align-items: center; + font-size: 1.5em; +} \ No newline at end of file diff --git a/src/app/indicator/indicator.component.spec.ts b/src/app/indicator/indicator.component.spec.ts new file mode 100644 index 0000000..ff133c2 --- /dev/null +++ b/src/app/indicator/indicator.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { IndicatorComponent } from './indicator.component'; + +describe('IndicatorComponent', () => { + let component: IndicatorComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ IndicatorComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(IndicatorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/indicator/indicator.component.ts b/src/app/indicator/indicator.component.ts new file mode 100644 index 0000000..bd389bb --- /dev/null +++ b/src/app/indicator/indicator.component.ts @@ -0,0 +1,41 @@ +import { Component, OnInit, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' +import { Observable, BehaviorSubject } from 'rxjs' +import { map } from 'rxjs/operators' + +import { ActionService } from '../action.service' +import { FeatureFinderService } from '../feature-finder.service' + +@Component({ + selector: 'app-indicator', + templateUrl: './indicator.component.html', + styleUrls: ['./indicator.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class IndicatorComponent implements OnInit { + + constructor( + public actionService: ActionService, + public featureFinderService: FeatureFinderService, + private cdr: ChangeDetectorRef, + ) { } + + distance: number + + ngOnInit(): void { + this.featureFinderService.distance$.subscribe( + dist => { + this.distance = Math.round(dist) + this.cdr.markForCheck() + } + ) + + this.featureFinderService.direction$.subscribe( + _ => this.cdr.markForCheck() + ) + + this.featureFinderService.orientation$.subscribe( + _ => this.cdr.markForCheck() + ) + } +} diff --git a/src/app/intro/intro.component.html b/src/app/intro/intro.component.html new file mode 100644 index 0000000..08fe615 --- /dev/null +++ b/src/app/intro/intro.component.html @@ -0,0 +1,6 @@ +

Welcome to Tree Trail

+ +

+ Tree Trail is a companion for exploring + remarkable trees. +

\ No newline at end of file diff --git a/src/app/intro/intro.component.scss b/src/app/intro/intro.component.scss new file mode 100644 index 0000000..0e3ed39 --- /dev/null +++ b/src/app/intro/intro.component.scss @@ -0,0 +1,17 @@ +:host>* { + padding-left: 1em; + padding-right: 1em; +} + +p { + padding: 0; +} + +h2 { + text-align: center; +} + +.hl { + font-weight: 800; + font-style: italic; +} \ No newline at end of file diff --git a/src/app/intro/intro.component.ts b/src/app/intro/intro.component.ts new file mode 100644 index 0000000..9aea365 --- /dev/null +++ b/src/app/intro/intro.component.ts @@ -0,0 +1,23 @@ +import { Component, OnInit, Input, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core'; + +import { ActionService } from '../action.service' + +@Component({ + selector: 'app-intro', + templateUrl: './intro.component.html', + styleUrls: ['./intro.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class IntroComponent implements OnInit { + @Input() showSettings: boolean = true + + constructor( + public actionService: ActionService, + private cdr: ChangeDetectorRef, + ) { } + + ngOnInit(): void { + } + +} diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html new file mode 100644 index 0000000..8ed0556 --- /dev/null +++ b/src/app/login/login.component.html @@ -0,0 +1,19 @@ +

Login

+

Enter your access credentials

+
+ + Username + + + + Password + + +
{{ msg }}
+
+ +
+
\ No newline at end of file diff --git a/src/app/login/login.component.scss b/src/app/login/login.component.scss new file mode 100644 index 0000000..0e9f5aa --- /dev/null +++ b/src/app/login/login.component.scss @@ -0,0 +1,21 @@ +:host { + padding: 1em; +} + +form { + display: flex; + flex-direction: column; + align-items: center; +} + +.msg { + color: red; +} + +.actions { + padding: 1em; +} + +h1, p { + text-align: center; +} \ No newline at end of file diff --git a/src/app/login/login.component.spec.ts b/src/app/login/login.component.spec.ts new file mode 100644 index 0000000..10eca24 --- /dev/null +++ b/src/app/login/login.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LoginComponent } from './login.component'; + +describe('LoginComponent', () => { + let component: LoginComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ LoginComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(LoginComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts new file mode 100644 index 0000000..d364e48 --- /dev/null +++ b/src/app/login/login.component.ts @@ -0,0 +1,62 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core' +import { Location } from "@angular/common" +import { FormBuilder, FormGroup, Validators } from '@angular/forms' +import { AuthService } from '../services/auth.service' +import { ConfigService } from '../config.service' +import { DataService } from '../data.service' +import { DefaultService } from '../openapi/services.gen' + +@Component({ + selector: 'app-login', + templateUrl: './login.component.html', + styleUrls: ['./login.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class LoginComponent implements OnInit { + form: FormGroup + msg: String + constructor( + private _auth: AuthService, + public configService: ConfigService, + private cdr: ChangeDetectorRef, + public fb: FormBuilder, + public dataService: DataService, + private location: Location, + public apiService: DefaultService, + ) { } + + ngOnInit(): void { + this.form = this.fb.group({ + username: ['', Validators.required], + password: ['', Validators.required] + }) + } + + login() { + this.apiService.loginForAccessTokenTokenPost({ + formData: { + username: this.form.value['username'], + password: this.form.value['password'], + } + }).subscribe({ + next: (res: any) => { + if (res.access_token) { + this._auth.setDataInLocalStorage('token', res.access_token) + this.msg = undefined + this.configService.setUserPref('userName', this.form.value['username']) + this.dataService.syncPendingTrees() + } + // After successful login, bootstrap with user's data + this.configService.bootstrap().subscribe( + _ => { + this.location.back() + } + ) + }, + error: err => { + this.msg = err.statusText + this.cdr.markForCheck() + } + }) + } +} \ No newline at end of file diff --git a/src/app/map-info/map-info.component.html b/src/app/map-info/map-info.component.html new file mode 100644 index 0000000..89ac83f --- /dev/null +++ b/src/app/map-info/map-info.component.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/app/map-info/map-info.component.scss b/src/app/map-info/map-info.component.scss new file mode 100644 index 0000000..935e006 --- /dev/null +++ b/src/app/map-info/map-info.component.scss @@ -0,0 +1,6 @@ +:host { + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: center; +} \ No newline at end of file diff --git a/src/app/map-info/map-info.component.ts b/src/app/map-info/map-info.component.ts new file mode 100644 index 0000000..dca2fee --- /dev/null +++ b/src/app/map-info/map-info.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-map-info', + templateUrl: './map-info.component.html', + styleUrls: ['./map-info.component.scss'] +}) +export class MapInfoComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/map-view/map-view.component.html b/src/app/map-view/map-view.component.html new file mode 100644 index 0000000..cb23bd8 --- /dev/null +++ b/src/app/map-view/map-view.component.html @@ -0,0 +1,4 @@ +
+ + +
\ No newline at end of file diff --git a/src/app/map-view/map-view.component.scss b/src/app/map-view/map-view.component.scss new file mode 100644 index 0000000..16c0976 --- /dev/null +++ b/src/app/map-view/map-view.component.scss @@ -0,0 +1,13 @@ +:host { + display: flex; + height: 100%; + width: 100%; +} + +:host > div { + width: 100%; +} + +app-map-info { + height: 0%; +} \ No newline at end of file diff --git a/src/app/map-view/map-view.component.ts b/src/app/map-view/map-view.component.ts new file mode 100644 index 0000000..67277ec --- /dev/null +++ b/src/app/map-view/map-view.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-map-view', + templateUrl: './map-view.component.html', + styleUrls: ['./map-view.component.scss'] +}) +export class MapViewComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/src/app/map/animation.ts b/src/app/map/animation.ts new file mode 100644 index 0000000..7946da6 --- /dev/null +++ b/src/app/map/animation.ts @@ -0,0 +1,30 @@ +import { trigger, transition, animate, style, keyframes, state } from '@angular/animations' + +export const flipAnimation = trigger('flip', [ + state('front', style({ + transform: 'rotateY(0deg)' + })), + state('back', style({ + transform: 'rotateY(180deg)' + })), + transition('front => back', [ + animate('0.4s 0s ease-out', + keyframes([ + style({ + transform: 'perspective(400px) rotateY(180deg)', + offset: 1 + }) + ]) + ) + ]), + transition('back => front', [ + animate('0.4s 0s ease-in', + keyframes([ + style({ + transform: 'perspective(400px) rotateY(0deg)', + offset: 1 + }) + ]) + ) + ]) +]) \ No newline at end of file diff --git a/src/app/map/app-control.component.css b/src/app/map/app-control.component.css new file mode 100644 index 0000000..0e40763 --- /dev/null +++ b/src/app/map/app-control.component.css @@ -0,0 +1,18 @@ +.app-maplibregl-ctrl { + margin: 5px; + float: right; + clear: both; + color: #333; + background-color: hsla(0,0%,100%,.5); + padding: 2px 5px; + font-size: 105%; + border-radius: 5px; +} + +.right { + float: right; +} + +.left { + float: left; +} \ No newline at end of file diff --git a/src/app/map/app-control.component.ts b/src/app/map/app-control.component.ts new file mode 100644 index 0000000..333eaa1 --- /dev/null +++ b/src/app/map/app-control.component.ts @@ -0,0 +1,70 @@ +import { + AfterContentInit, OnInit, + ChangeDetectionStrategy, + Component, + ElementRef, + Input, + OnDestroy, + ViewChild, +} from '@angular/core'; +import { IControl, ControlPosition } from 'maplibre-gl' +import { MapService } from '@maplibre/ngx-maplibre-gl' + +export class CustomControl implements IControl { + constructor(private container: HTMLElement) {} + + onAdd() { + return this.container; + } + + onRemove() { + return this.container.parentNode!.removeChild(this.container); + } + + getDefaultPosition(): ControlPosition { + return 'top-right'; + } +} + +@Component({ + selector: 'app-mgl-control', + template: + '
', + styleUrls: ['app-control.component.css'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class AppControlComponent + implements OnInit, OnDestroy, AfterContentInit { + private controlAdded = false; + clsName: string + + /* Init inputs */ + @Input() position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; + + @ViewChild('content', { static: true }) content: ElementRef; + + control: T | CustomControl; + + constructor(private MapService: MapService) {} + + ngOnInit() { + this.clsName = "app-maplibregl-ctrl " + (this.position.endsWith('left') ? 'left' : 'right') + } + + ngAfterContentInit() { + if (this.content.nativeElement.childNodes.length) { + this.control = new CustomControl(this.content.nativeElement); + this.MapService.mapCreated$.subscribe(() => { + this.MapService.addControl(this.control!, this.position); + this.controlAdded = true; + }); + } + } + + ngOnDestroy() { + if (this.controlAdded) { + this.MapService.removeControl(this.control); + } + } +} + diff --git a/src/app/map/direction.component.html b/src/app/map/direction.component.html new file mode 100644 index 0000000..cb36510 --- /dev/null +++ b/src/app/map/direction.component.html @@ -0,0 +1,21 @@ +
+ + {{ orientationClass == 'unknown' ? 'cached' : 'north' }} + +
+ {{ distance }} m +
+
+ +
+ Nothing around +
+
\ No newline at end of file diff --git a/src/app/map/direction.component.scss b/src/app/map/direction.component.scss new file mode 100644 index 0000000..1f1de60 --- /dev/null +++ b/src/app/map/direction.component.scss @@ -0,0 +1,36 @@ +.container { + background-color: white; + border: 1px solid #ddd; + border-radius: 4px; + width: 3em; + height: 4em; + padding: 3px; + text-align: center; + box-shadow: 0 0 3px rgb(0 0 0 / 30%); + cursor: pointer; + .distance { + font-size: 100%; + } +} + + .absolute { + color: green; + } + .relative { + color: grey + } + .unknown { + color:rgba(226, 22, 22, 0.4) + } + +.nothing { + background-color: white; + border: 1px solid #ddd; + border-radius: 4px; + width: 4em; + height: 3em; + padding: 3px; + text-align: center; + box-shadow: 0 0 3px rgb(0 0 0 / 30%); + cursor: pointer; +} \ No newline at end of file diff --git a/src/app/map/direction.component.ts b/src/app/map/direction.component.ts new file mode 100644 index 0000000..d1b0903 --- /dev/null +++ b/src/app/map/direction.component.ts @@ -0,0 +1,59 @@ +import { Component, ElementRef, OnInit, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' + +import { Subscription } from 'rxjs' + +import { FeatureFinderService } from '../feature-finder.service' + + +@Component({ + selector: 'app-direction', + templateUrl: './direction.component.html', + styleUrls: ['./direction.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class TreetrailDirectionComponent implements OnInit { + direction: number + clickSubscription: Subscription + distance: number + orientationClass: string = 'unknown' + + constructor( + public elementRef: ElementRef, + public featureFinderService: FeatureFinderService, + private cdr: ChangeDetectorRef, + ) { + } + + ngOnInit() { + this.featureFinderService.direction$.subscribe( + dir => { + this.direction = dir + this.cdr.markForCheck() + } + ) + + this.featureFinderService.distance$.subscribe( + dist => { + this.distance = Math.round(dist) + this.cdr.markForCheck() + } + ) + + this.featureFinderService.direction$.subscribe( + _ => this.cdr.markForCheck() + ) + + this.featureFinderService.orientation$.subscribe( + orientation => { + if (typeof(orientation) != 'undefined') { + this.orientationClass = 'absolute' + } + else { + this.orientationClass = 'unknown' + } + this.cdr.markForCheck() + } + ) + } +} \ No newline at end of file diff --git a/src/app/map/map-edit/edit-map-control.directive.ts b/src/app/map/map-edit/edit-map-control.directive.ts new file mode 100644 index 0000000..eee3cb0 --- /dev/null +++ b/src/app/map/map-edit/edit-map-control.directive.ts @@ -0,0 +1,58 @@ +import { AfterContentInit, Directive, Host, Input, ApplicationRef, createComponent } from '@angular/core' +import { ControlComponent, MapService, CustomControl } from '@maplibre/ngx-maplibre-gl' + +import { MapEditService } from './map-edit.service' +import { MapEditComponent } from './map-edit.component' + +export class EditControl extends CustomControl { + private _container: HTMLElement + constructor( + container: HTMLElement, + public appRef: ApplicationRef, + ) { + super(container) + container.classList.add('maplibregl-ctrl-group') + this._container = container + } + + onAdd() { + const componentRef = createComponent(MapEditComponent, { + hostElement: this._container, + environmentInjector: this.appRef.injector, + }) + this._container.title = "Add tree" + this.appRef.attachView(componentRef.hostView) + return this._container + } +} + +@Directive({ + selector: '[treeTrailMapEdit]', +}) +export class TreeTrailMapEditControlDirective implements AfterContentInit { + @Input() container?: HTMLElement + constructor( + private mapService: MapService, + public mapEditComponentService: MapEditService, + public appRef: ApplicationRef, + @Host() private controlComponent: ControlComponent + ) {} + + ngAfterContentInit() { + this.mapService.mapCreated$.subscribe(() => { + if (this.controlComponent.control) { + throw new Error('Another control is already set for this control') + } + + this.controlComponent.control = new EditControl( + this.controlComponent.content.nativeElement, //this.container, + this.appRef, + ) + + this.mapService.addControl( + this.controlComponent.control, + this.controlComponent.position + ) + }) + } +} \ No newline at end of file diff --git a/src/app/map/map-edit/map-edit.component.html b/src/app/map/map-edit/map-edit.component.html new file mode 100644 index 0000000..64d7e93 --- /dev/null +++ b/src/app/map/map-edit/map-edit.component.html @@ -0,0 +1,5 @@ + + edit + \ No newline at end of file diff --git a/src/app/map/map-edit/map-edit.component.scss b/src/app/map/map-edit/map-edit.component.scss new file mode 100644 index 0000000..846ef46 --- /dev/null +++ b/src/app/map/map-edit/map-edit.component.scss @@ -0,0 +1,10 @@ +:host { + cursor: pointer; + .mat-icon { + margin: 3px 2px -3px 3px; + color: grey; + } + .active { + color: red!important; + } +} diff --git a/src/app/map/map-edit/map-edit.component.spec.ts b/src/app/map/map-edit/map-edit.component.spec.ts new file mode 100644 index 0000000..4652636 --- /dev/null +++ b/src/app/map/map-edit/map-edit.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MapEditComponent } from './map-edit.component'; + +describe('MapEditComponent', () => { + let component: MapEditComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [MapEditComponent] + }); + fixture = TestBed.createComponent(MapEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/map/map-edit/map-edit.component.ts b/src/app/map/map-edit/map-edit.component.ts new file mode 100644 index 0000000..caf2a92 --- /dev/null +++ b/src/app/map/map-edit/map-edit.component.ts @@ -0,0 +1,40 @@ +import { Component, ChangeDetectorRef, + ChangeDetectionStrategy, ApplicationRef, OnInit } from '@angular/core' + +import { MessageService } from '../../message.service' +import { MapEditService } from './map-edit.service' + +@Component({ + selector: 'app-map-edit', + templateUrl: './map-edit.component.html', + styleUrls: ['./map-edit.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MapEditComponent implements OnInit { + constructor( + public mapEditService: MapEditService, + public cdr: ChangeDetectorRef, + public appRef: ApplicationRef, + public messageService: MessageService, + ) {} + + ngOnInit(): void { + this.mapEditService.cancelEditMap$.subscribe( + () => { + this.mapEditService.active = false + this.cdr.markForCheck() + } + ) + } + + toggle() { + this.mapEditService.toggle() + if (this.mapEditService.active) { + this.messageService.message.next( + 'Add trees by clicking on their location on the map' + ) + } + this.cdr.markForCheck() + this.appRef.tick() + } +} diff --git a/src/app/map/map-edit/map-edit.service.ts b/src/app/map/map-edit/map-edit.service.ts new file mode 100644 index 0000000..e5acbc5 --- /dev/null +++ b/src/app/map/map-edit/map-edit.service.ts @@ -0,0 +1,62 @@ +import { Injectable, NgZone } from '@angular/core' +import { MatDialog } from '@angular/material/dialog' +import { Subject } from 'rxjs' + +import { LngLat } from 'maplibre-gl' + +import { DataService, TreeDef } from '../../data.service' +import { PlantChooserDialogComponent } from './plant-chooser-dialog' + +@Injectable({ + providedIn: 'root' +}) +export class MapEditService { + public active: boolean = false + public treeDef: TreeDef + constructor( + public ngZone: NgZone, + public dataService: DataService, + public dialog: MatDialog, + ) {} + + public cancelEditMap$: Subject = new Subject() + + toggle() { + this.active = !this.active + } + + addTree(lngLat: LngLat) { + this.openDialog(lngLat) + } + + openDialog(lngLat: LngLat) { + this.ngZone.run( + () => { + const dialogRef = this.dialog.open(PlantChooserDialogComponent, { + width: '24em', + data: { plantId: undefined }, + }) + dialogRef.afterClosed().subscribe(result => { + if (result) { + this.setTreeDef(result['plant']['plantId'], + result['plant']['trails']) + this.dataService.addTree(lngLat, + this.treeDef, + result['picture']['picture'], + result['details']) + } + this.cancelEditMap$.next() + }) + } + ) + } + + setTreeDef(plantId: string, trailIds: string[]) { + this.treeDef = new TreeDef( + this.dataService.all.value.plants[plantId], + trailIds.map( + trailId => this.dataService.all.value.trails[trailId] + ) + ) + } +} \ No newline at end of file diff --git a/src/app/map/map-edit/plant-chooser-dialog.html b/src/app/map/map-edit/plant-chooser-dialog.html new file mode 100644 index 0000000..e08cfc1 --- /dev/null +++ b/src/app/map/map-edit/plant-chooser-dialog.html @@ -0,0 +1,73 @@ +

Select a plant to add

+ + + +
+ + + {{ plant.getFriendlyName() }} + + +
+ + Plant + + + + + Trail + + + {{ trail.value.name }} + + + +
+
+
+ +
+ +
+
+ +
+
+ + + Status + + + + Condition + + +
+ Height + + + + +
+ + Comments + + +
+
+
+
+ + +
\ No newline at end of file diff --git a/src/app/map/map-edit/plant-chooser-dialog.scss b/src/app/map/map-edit/plant-chooser-dialog.scss new file mode 100644 index 0000000..dac6574 --- /dev/null +++ b/src/app/map/map-edit/plant-chooser-dialog.scss @@ -0,0 +1,28 @@ +.fields { + display: flex; + flex-direction: column; +} + +.preview { + text-align: center; + img { + max-height: 12em; + max-width: 100%; + } +} + +#plantId, #trails { + width: 15em; +} + +.mat-mdc-dialog-actions { + justify-content: center; +} + +:host ::ng-deep .mat-vertical-content { + padding: 3px; +} + +:host ::ng-deep .mat-vertical-stepper-header { + padding: 12px 12px; +} \ No newline at end of file diff --git a/src/app/map/map-edit/plant-chooser-dialog.ts b/src/app/map/map-edit/plant-chooser-dialog.ts new file mode 100644 index 0000000..273e6e3 --- /dev/null +++ b/src/app/map/map-edit/plant-chooser-dialog.ts @@ -0,0 +1,131 @@ +import { Component, Inject, OnInit, ChangeDetectorRef, ViewChild } from '@angular/core' +import { + FormBuilder, FormControl, FormGroup, Validators, + AbstractControl, ValidationErrors, ValidatorFn +} from '@angular/forms' +import { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper' + +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog' +import { MatSelect } from '@angular/material/select' +import { Observable } from 'rxjs' +import { map, startWith } from 'rxjs/operators' + +import { DOC_ORIENTATION } from 'ngx-image-compress' + +import { DataService } from 'src/app/data.service' +import { ActionService } from 'src/app/action.service' +import { Plant, Trails } from 'src/app/models' + +export interface DialogData { + instruction: string, + plantId: string, + fileName: string, + picture: string, +} + +@Component({ + selector: 'plant-chooser-dialog', + templateUrl: './plant-chooser-dialog.html', + styleUrls: ['./plant-chooser-dialog.scss'], + providers: [ + { + provide: STEPPER_GLOBAL_OPTIONS, + useValue: { showError: true }, + }, + ] +}) +export class PlantChooserDialogComponent implements OnInit { + form: FormGroup + filteredOptions: Observable + trails: Trails + file: File + @ViewChild('select') private select: MatSelect + + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: DialogData, + public dataService: DataService, + public actionService: ActionService, + public cdr: ChangeDetectorRef, + private fb: FormBuilder, + ) { + } + + ngOnInit() { + const formPlant = this.fb.group({ + plantId: new FormControl('', [ + Validators.required, + this.createPlantValidator() + ]), + trails: new FormControl([]), + }) + const formPicture = this.fb.group({ + picture: new FormControl(''), + file: new FormControl(), + }) + const formDetails = this.fb.group({ + status: new FormControl(''), + condition: new FormControl(''), + comments: new FormControl(''), + height: new FormControl(), + }) + this.form = this.fb.group({ + plant: formPlant, + picture: formPicture, + details: formDetails, + }) + this.filteredOptions = (this.form.controls['plant']).controls['plantId'].valueChanges.pipe( + startWith(''), + map(value => this._filter(value || '')), + ) + + this.form.valueChanges.subscribe(() => { + this.select.close(); + }); + } + + createPlantValidator(): ValidatorFn { + return (control: AbstractControl): ValidationErrors | null => { + const isPlantName = control.value in this.dataService.all.value.plants + return !isPlantName ? { plantName: true } : null + } + } + + private _filter(value: string): Plant[] { + const filterValue = value.toLowerCase() + return Object.values(this.dataService.all.value.plants).filter( + plant => plant.isMatch(filterValue) + ) + } + + maxImgSize: number = 300000 + resizeFactor: number = 50 + + onImageFileSelected(e: Event) { + const reader = new FileReader() + + if ((e.target).files + && ((e.target).files).length) { + const files = (e.target).files + this.file = files[0] + reader.readAsDataURL(this.file) + + reader.onload = () => { + const imgFile = reader.result + if (imgFile.length > this.maxImgSize) { + // Image too big => resize (arbitrary set to 50%) + this.actionService.imageCompressService.compressFile( + imgFile, DOC_ORIENTATION.Up, this.resizeFactor + ).then( + compressedImage => { + (this.form.get('picture')).controls.picture.setValue(compressedImage) + } + ) + } + else { + (this.form.get('picture')).controls.picture.setValue(imgFile) + } + } + } + } +} \ No newline at end of file diff --git a/src/app/map/map.component.html b/src/app/map/map.component.html new file mode 100644 index 0000000..931d8f8 --- /dev/null +++ b/src/app/map/map.component.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + +
+
+
\ No newline at end of file diff --git a/src/app/map/map.component.scss b/src/app/map/map.component.scss new file mode 100644 index 0000000..7ece1b3 --- /dev/null +++ b/src/app/map/map.component.scss @@ -0,0 +1,32 @@ +mgl-map { + width: 100%; + height: 100%; +} + +/* +:host ::ng-deep div.maplibregl-map.on-item .mapboxgl-canvas-container.maplibregl-interactive { + cursor: zoom-in; +} +*/ + +:host ::ng-deep { + .popup-content { + cursor: pointer; + } + .maplibregl-popup-content { + border-radius: 6px; + } +} + +.directionControl { + background-color: white; +} + +.treetrail-maplibregl-ctrl { + margin: 0; + float: right; + clear: both; + color: #333; + background-color: hsla(0,0%,100%,.5); + padding: 0 5px; +} diff --git a/src/app/map/map.component.spec.ts b/src/app/map/map.component.spec.ts new file mode 100644 index 0000000..f163147 --- /dev/null +++ b/src/app/map/map.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MapComponent } from './map.component'; + +describe('MapComponent', () => { + let component: MapComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ MapComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(MapComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/map/map.component.ts b/src/app/map/map.component.ts new file mode 100644 index 0000000..fb8a909 --- /dev/null +++ b/src/app/map/map.component.ts @@ -0,0 +1,528 @@ +import { + Component, ViewChild, AfterContentInit, NgZone, + ChangeDetectorRef, ChangeDetectionStrategy, ElementRef, + OnInit, +} from '@angular/core' +import { ActivatedRoute, Params } from '@angular/router' +import { HttpClient } from '@angular/common/http' +import { Observable, Subject, forkJoin } from 'rxjs' +import { map, mergeMap } from 'rxjs/operators' + +import bbox from '@turf/bbox' +import { + MapComponent as MapLibreCompomemt, + PopupComponent +} from '@maplibre/ngx-maplibre-gl' +import { + MapMouseEvent, GeoJSONSource, FitBoundsOptions, + TypedStyleLayer, MapGeoJSONFeature, + GeoJSONSourceSpecification, MapLibreEvent +} from 'maplibre-gl' + +import { DataService, NewTree } from '../data.service' +import { ActionService } from '../action.service' +import { MessageService } from '../message.service' +import { ConfigService, MapPos } from '../config.service' +import { FeatureTarget } from '../models' +import { TrailListItemComponent } from '../trail-list-item/trail-list-item.component' +import { TreePopupComponent } from '../tree-popup/tree-popup.component' +import { PoiPopupComponent } from '../poi-popup/poi-popup.component' +import { ZonePopupComponent } from '../zone-popup/zone-popup.component' +import { MapEditService } from './map-edit/map-edit.service' + +const myLayers = ['tree', 'poi', 'trail', 'zone'] + + +@Component({ + selector: 'app-map', + templateUrl: './map.component.html', + styleUrls: ['./map.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MapComponent implements AfterContentInit, OnInit { + constructor( + protected activatedRoute: ActivatedRoute, + public configService: ConfigService, + public dataService: DataService, + public actionService: ActionService, + public messageService: MessageService, + protected ngZone: NgZone, + private cdr: ChangeDetectorRef, + public mapEditService: MapEditService, + public httpClient: HttpClient, + ) { } + + @ViewChild('map') map: MapLibreCompomemt + @ViewChild("popup") popup: PopupComponent + @ViewChild("treePopupDetail") treePopupDetail: TreePopupComponent + @ViewChild("poiPopupDetail") poiPopupDetail: PoiPopupComponent + @ViewChild("trailPopupDetail") trailPopupDetail: TrailListItemComponent + @ViewChild("zonePopupDetail") zonePopupDetail: ZonePopupComponent + @ViewChild('featureInfo', { static: true }) featureInfo: ElementRef + + public mapLoad = new Subject() + + public currentPopupLayer: string = '' + + //styleUrl = 'assets/map/style.json' + styleUrl: string // = '/tiles/style/osm' + + geolocateTrackUserLocation = true + geolocateShowUserLocation = true + geolocatePositionOptions = { + "enableHighAccuracy": true + } + geolocateFitBoundsOptions: FitBoundsOptions = { + "maxZoom": 18, + } + + ngOnInit(): void { + let conf = this.configService.conf.value + let bms = conf.background + if (conf.bootstrap.baseMapStyles.embedded.indexOf(bms) >= 0) { + this.styleUrl = `/tiles/style/${bms}` + } + else { + this.styleUrl = conf.bootstrap.baseMapStyles.external[bms] + } + } + + ngAfterContentInit(): void { + // Hide the popups at start + this.mapLoad.subscribe({ + complete: () => { + this.popup.popupInstance.remove() + // Bypass Angular's service worker + // this.map.transformRequest = (url: String, resourceType: String) => { + // return { + // url: url.replace('http', 'https'), + // headers: { 'ngsw-bypass': true }, + // credentials: 'include' // Include cookies for cross-origin requests + // } + // } + } + }) + forkJoin([ + this.mapLoad, + this.getIcons(), + this.actionService.getAllGeoJSONTrails(), + this.actionService.getAllGeoJSONPois(), + this.actionService.getAllGeoJSONTrees(), + this.actionService.getAllGeoJSONZones(), + ]).subscribe({ + complete: () => this.setup(), + error: err => { + this.messageService.message.next(`Network issue (${err.status})`) + console.error(err) + } + }) + } + + getIcons(): Observable { + return this.httpClient.get('assets/icons/tree.png', {responseType: "blob"}).pipe(mergeMap( + treeIconBlob => createImageBitmap(treeIconBlob).then( + treeIcon => this.map.mapInstance.addImage("tree", treeIcon) + ) + )) + } + + /* + async asyncGetIcons() { + let treeIcon = await this.map.mapInstance.loadImage('assets/icons/tree.png') + this.map.mapInstance.addImage("tree", treeIcon.data) + } + */ + + setup() { + // this.map.mapInstance.loadImage('assets/icons/tree.png').then( + // image => this.map.mapInstance.addImage('tree', image.data) + // ) + this.map.mapInstance.addSource( + 'trail', + { + 'type': 'geojson', + 'data': this.dataService.trailFeatures.getValue() + } + ) + + this.map.mapInstance.addSource( + 'poi', + { + 'type': 'geojson', + 'data': this.dataService.poisFeatures.getValue() + } + ) + + this.map.mapInstance.addSource( + 'zone', + { + 'type': 'geojson', + 'data': this.dataService.zoneFeatures.getValue() + } + ) + + // Add layers when the styles are available + this.dataService.all.subscribe( + all => { + let styles = all.styles + + this.map.mapInstance.addLayer( + { + id: 'zone', + source: 'zone', + type: 'fill', + paint: styles['zone'].paint, + layout: styles['zone'].layout, + } + ) + + this.map.mapInstance.addLayer( + { + id: 'trail', + source: 'trail', + type: 'line', + paint: styles['trail'].paint, + layout: styles['trail'].layout, + /* + paint: { + 'line-color': '#cd861a', + 'line-width': 6, + 'line-blur': 2, + 'line-opacity': 0.9 + }, + layout: { + 'line-join': 'bevel', + } + */ + } + ) + + this.map.mapInstance.addLayer( + { + id: 'poi', + source: 'poi', + type: 'symbol', + paint: styles['poi'].paint, + layout: styles['poi'].layout, + /* + paint: { + 'text-color': '#BB55CC', + }, + layout: { + //'text-field': ['match', ['get', 'plantekey_id'], '', '\ue033', '\ue034'], + 'text-field': ['get', 'symbol'], + 'text-overlap': 'always', + 'text-anchor': 'center', + 'text-font': ['TreetrailSymbols'], + 'text-size': 32, + }, + */ + } + ) + + this.dataService.getPendingTrees().subscribe( + pendingTrees => { + let trees = this.dataService.treeFeatures.getValue() + trees['features'].push(...pendingTrees.map(pt => { + pt['feature']['properties']['pending'] = 2 + return pt['feature'] + })) + this.map.mapInstance.addSource( + 'tree', + { + 'type': 'geojson', + 'data': trees + } + ) + + this.map.mapInstance.addLayer( + { + id: 'tree', + source: 'tree', + type: 'symbol', + paint: styles['tree'].paint, + layout: styles['tree'].layout + /* + paint: { + 'text-color': ['match', ['get', 'plantekey_id'], '', '#AAAA33', '#00BB00'], + }, + layout: { + //'text-field': ['match', ['get', 'plantekey_id'], '', '\ue033', '\ue034'], + 'text-field': ['get', 'symbol'], + 'text-overlap': 'always', + 'text-anchor': 'center', + 'text-font': ['TreetrailSymbols'], + 'text-size': 32, + }, + */ + } + ) + + this.map.mapInstance.addLayer( + { + id: 'tree-hl', + source: 'tree', + type: 'symbol', + paint: styles['tree-hl'].paint, + layout: styles['tree-hl'].layout, + /* + paint: { + 'icon-color': 'green', + 'text-color': 'green', + 'text-opacity': 1, + 'text-halo-color': 'red', + 'text-halo-width': 0.8, + 'text-halo-blur': 0.5, + }, + layout: { + 'text-field': ['get', 'symbol'], + 'text-size': 40, + 'text-overlap': 'always', + 'text-anchor': 'center', + 'text-font': ['TreetrailSymbols'], + }, + */ + filter: ['==', 'id', ''], + } + ) + + // Track mouse overs only when the tree layer has been added + this.map.mapInstance.on('mousemove', evt => this.onMouseMove(evt)) + } + ) + + this.map.mapInstance.on('zoomend', evt => this.onMapPosChange(evt)) + this.map.mapInstance.on('dragend', evt => this.onMapPosChange(evt)) + this.map.mapInstance.on('pitchend', evt => this.onMapPosChange(evt)) + + // Add and filter zones when the data and showZones conf is available + // TODO: Fix bootstrap + let zl: TypedStyleLayer = this.map.mapInstance.getLayer('zone') + let visibleTypes = Object.entries(this.configService.conf.value.showZones).filter( + ([type, visible]) => visible + ).map(([type, visible]) => type) + if (visibleTypes.length == 0) { + visibleTypes = [''] + } + this.map.mapInstance.setFilter( + 'zone', + ['match', ['get', 'type'], visibleTypes, true, false] + ) + zl.setLayoutProperty('visibility', 'visible') + } + ) + + // Handle addition of trees + this.dataService.addTree$.subscribe( + (newTree: NewTree) => { + let treeFeatures = this.dataService.treeFeatures.getValue() + treeFeatures['features'].push(newTree.getFeature()) + this.dataService.treeFeatures.next(treeFeatures) + const mapSource = this.map.mapInstance.getSource('tree') as GeoJSONSource + mapSource.setData(treeFeatures) + } + ) + + // Simulate a location change to init system + this.actionService.onLocationChange() + + this.actionService.nearestTree$.subscribe( + (tree: FeatureTarget) => { + if (!this.map.mapInstance.getLayer + // For unknown reason, mapInstance might not have getLayer... + // Observed on Android Chromium + || !this.map.mapInstance.getLayer('tree-hl') + || tree == undefined) { + return + } + this.map.mapInstance.setFilter( + 'tree-hl', + ['==', 'id', tree.feature.properties['id']] + ) + } + ) + + this.activatedRoute.queryParams.subscribe( + (params: Params) => { + if ('show' in params) { + let featureRef: string[] = params['show'].split(':') + let store = featureRef[0] + let field = featureRef[1] + let value = featureRef[2] + // XXX: field is not used and assumed to be 'id' + this.dataService.trailFeatures.subscribe( + trailSource => { + let trail = trailSource['features'].find( + f => f['id'] == value + ) + let bounds = bbox(trail) + let margin = 0.00025 + this.map.mapInstance.fitBounds( + [ + [bounds[0] - margin, bounds[1] - margin], + [bounds[2] + margin, bounds[3] + margin], + ] + ) + } + ) + } + } + ) + } + + onMove(evt: MapMouseEvent) { + let features = this.map.mapInstance.queryRenderedFeatures(evt.point, + { layers: ['tree', 'trail'] }) + let feature = features[0] + if (feature) { + if (feature.layer['id'] == 'tree') { + this.map.mapInstance.getContainer().classList.add('on-item') + } + else { + this.map.mapInstance.getContainer().classList.remove('on-item') + } + } + else { + this.map.mapInstance.getContainer().classList.remove('on-item') + } + } + + private getUID(layer: string, id: string): string { + return `${layer}-${id}` + } + + getBestFeature(evt): MapGeoJSONFeature { + // Kiss Maplibre, which seems to return the features on different layers + // with the same order that they were added + let features = this.map.mapInstance.queryRenderedFeatures(evt.point, { + layers: myLayers + }) + return features[0] + } + + onMouseMove(evt) { + if (this.mapEditService.active) { + this.map.mapInstance.getCanvas().style.cursor = 'crosshair' + return + } + let features: Map = new Map() + let msgs: Map = new Map() + let found: boolean = false + for (let layer of myLayers) { + let features = this.map.mapInstance.queryRenderedFeatures(evt.point, { + layers: [layer] + }) + if (features.length > 0) { + found = true + if (features.length === 1) { + msgs.set(layer, this.getFeatureMsg(layer, features[0].properties)) + } + else { + msgs.set(layer, `(${features.length}*)`) + } + } + } + if (found) { + this.map.mapInstance.getCanvas().style.cursor = 'zoom-in' + this.featureInfo.nativeElement.innerHTML = Array.from(msgs).map( + ([key, value]) => `${key}: ${value}` + ).join(' - ') + } else { + this.map.mapInstance.getCanvas().style.cursor = '' + this.featureInfo.nativeElement.innerHTML = '' + } + } + + private getFeatureMsg(layer: string, f: Object): string { + switch (layer) { + case 'tree': + let pekid = f['plantekey_id'] + if (pekid != '') { + let plant = this.dataService.all.value.plants[pekid] + if (plant) return plant.name + else return 'unknown' + } + else return 'unknown' + case 'trail': + return f['name'] + case 'poi': + return f['name'] + case 'zone': + return `${f['type'] || 'Zone'}: ${f['name']}` + default: + return '' + } + } + + onClickItem(evt) { + let feature = this.getBestFeature(evt) + if (feature === undefined) { + this.popup.popupInstance.remove() + return + } + let fid = feature['properties']['id'] || feature['id'] + let coordinates: any + this.ngZone.run(() => { + switch (feature.layer.id) { + case 'tree': { + coordinates = (feature.geometry).coordinates.slice() + if (feature['properties']['pending']) { + this.dataService.getPendingTree(fid).subscribe( + tree => { + this.treePopupDetail.tree = tree + this.treePopupDetail.cdr.markForCheck() + } + ) + } + else { + this.treePopupDetail.tree = this.dataService.all.value.trees[fid] + } + this.treePopupDetail.cdr.markForCheck() + break + } + case 'poi': { + coordinates = (feature.geometry).coordinates.slice() + this.poiPopupDetail.poi = this.dataService.all.value.pois[fid] + this.poiPopupDetail.cdr.markForCheck() + break + } + case 'trail': { + coordinates = evt.lngLat + this.trailPopupDetail.trail = this.dataService.all.value.trails[fid] + this.trailPopupDetail.cdr.markForCheck() + break + } + case 'zone': { + coordinates = evt.lngLat + this.zonePopupDetail.zone = this.dataService.all.value.zones[fid] + this.zonePopupDetail.cdr.markForCheck() + break + } + default: { } + } + this.currentPopupLayer = feature.layer.id + }) + this.ngZone.runOutsideAngular(() => { + this.popup.popupInstance.setLngLat(coordinates) + setTimeout(() => this.popup.popupInstance.addTo(this.map.mapInstance)) + }) + } + + onClick(evt: MapMouseEvent) { + if (this.mapEditService.active) { + this.mapEditService.addTree(evt.lngLat) + } + else { + this.onClickItem(evt) + } + } + + onMapPosChange(evt: MapLibreEvent) { + this.configService.setMapPos({ + center: this.map.mapInstance.getCenter(), + zoom: this.map.mapInstance.getZoom(), + bearing: this.map.mapInstance.getBearing(), + pitch: this.map.mapInstance.getPitch(), + }).subscribe() + } +} diff --git a/src/app/message.service.spec.ts b/src/app/message.service.spec.ts new file mode 100644 index 0000000..1db761b --- /dev/null +++ b/src/app/message.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { MessageService } from './message.service'; + +describe('MessageService', () => { + let service: MessageService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(MessageService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/message.service.ts b/src/app/message.service.ts new file mode 100644 index 0000000..d798a2b --- /dev/null +++ b/src/app/message.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from '@angular/core'; +import { Observable, BehaviorSubject, Subject } from 'rxjs' + +@Injectable({ + providedIn: 'root' +}) +export class MessageService { + + public message = new BehaviorSubject(undefined) + public message$ = this.message.asObservable() + + public spinner = new BehaviorSubject(false) + public spinner$ = this.spinner.asObservable() + + constructor() { } +} diff --git a/src/app/message/message.component.html b/src/app/message/message.component.html new file mode 100644 index 0000000..b5008dc --- /dev/null +++ b/src/app/message/message.component.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/app/message/message.component.scss b/src/app/message/message.component.scss new file mode 100644 index 0000000..63b4921 --- /dev/null +++ b/src/app/message/message.component.scss @@ -0,0 +1,3 @@ +mat-spinner { + margin-right: 1em; +} \ No newline at end of file diff --git a/src/app/message/message.component.spec.ts b/src/app/message/message.component.spec.ts new file mode 100644 index 0000000..03cb616 --- /dev/null +++ b/src/app/message/message.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { MessageComponent } from './message.component'; + +describe('MessageComponent', () => { + let component: MessageComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ MessageComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(MessageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/message/message.component.ts b/src/app/message/message.component.ts new file mode 100644 index 0000000..f78fcff --- /dev/null +++ b/src/app/message/message.component.ts @@ -0,0 +1,35 @@ +import { Component, AfterViewInit, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' + +import { MatSnackBar, MatSnackBarRef } from '@angular/material/snack-bar' + +import { MessageService } from '../message.service'; + +@Component({ + selector: 'app-message', + templateUrl: './message.component.html', + styleUrls: ['./message.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class MessageComponent implements AfterViewInit { + constructor( + public messageService: MessageService, + private cdr: ChangeDetectorRef, + private _snackBar: MatSnackBar + ) {} + + durationInSeconds: number = 2.5 + + ngAfterViewInit(): void { + this.messageService.message$.subscribe( + message => { + if (!!message) { + this._snackBar.open(message, 'OK', { + duration: this.durationInSeconds * 1000, + }) + } + this.cdr.markForCheck() + } + ) + } +} diff --git a/src/app/models.ts b/src/app/models.ts new file mode 100644 index 0000000..38b84a1 --- /dev/null +++ b/src/app/models.ts @@ -0,0 +1,260 @@ +import { Feature } from 'maplibre-gl' + +import length from '@turf/length' + +export class FeatureTarget { + constructor( + public feature: Feature, + public distance: number, + public direction?: number, + ) {} +} + +export interface TreeBucket { + [id: string]: number +} + +export class Trail { + constructor( + public id: number, + public name: string, + public description: string, + public feature: GeoJSON.Feature, + public trees: Trees, + public photo?: string, + ) {} + + get length(): number { + return length(this.feature, {units: 'meters'}) + } + + get mapRouteArgs(): Object { + return { queryParams: { 'show': `trail:id:${this.id}`}} + } + + get treeList(): Tree[] { + return Object.values(this.trees) + } + + getTreeBucket(): TreeBucket { + const counts = {}; + let plantekeys = this.treeList.map(t => t.plantekeyId) + plantekeys.forEach((x) => { + counts[x] = (counts[x] || 0) + 1; + }) + return counts + } + + getPhotoUrl(): string { + return `/attachment/trail/${this.id}/${this.photo}` + } +} + +export class Trails { + [id: string]: Trail +} + +export class PlantsTrails { + [plantId: string]: Trails +} + +export class Tree { + constructor( + public id: string, // UUID + public feature: GeoJSON.Feature, + public plantekeyId?: string, + public photo?: string, + public data?: Object, + public height?: string, + public comments?: string, + public plant?: Plant, + public trails: Trail[] = [], + ) {} + + getPhotoUrl(): (string | void) { + if (this.photo) { + if (this.photo.startsWith('data:image')) { + return this.photo + } + else { + return `/attachment/tree/${this.id}/${this.photo}` + } + } + else { + return this.plant.get_thumbnail_url() + } + } +} + +export interface Trees { + [id: string]: Tree +} + +export class TreeTrails { + [treeId: string]: Trails +} + +export class TreeTrail { + constructor( + public tree_id: string, + public trail_id: number, + ) {} +} + +export class Poi { + constructor( + public id: number, + public feature: GeoJSON.Feature, + public name?: string, + public type?: string, + public description?: string, + public photo?: string, + public data?: Object, + ) {} + + getPhotoUrl(): string { + return `/attachment/poi/${this.id}/${this.photo}` + } +} + +export class Pois { + [id: string]: Poi +} + +export class Zone { + constructor( + public id: number, + public geojson: GeoJSON.Feature, + public name?: string, + public type?: string, + public description?: string, + public photo?: string, + public data?: Object, + ) {} + + getPhotoUrl(): string { + return `/attachment/zone/${this.id}/${this.photo}` + } +} + +export class Zones { + [id: string]: Zone +} + +export class Style { + constructor( + public layer: string, + public paint?: Object, + public layout?: Object, + ) {} +} + +export class Styles { + [layer: string]: Style +} + +export class Plant { + constructor( + public ID: string, + public id: string, + public english: string, + public family: string, + public hindi: string, + public img: string, + public name: string, + public spiritual: string, + public tamil: string, + public type: string, + public description: string, + public habit: string, + public landscape: string, + public uses: string, + public planting: string, + public propagation: string, + public element: string, + public woody: string, + public latex: string, + public leaf_style: string, + public leaf_type: string, + public leaf_arrangement: string, + public leaf_aroma: string, + public leaf_length: string, + public leaf_width: string, + public flower_color: string, + public flower_aroma: string, + public flower_size: string, + public fruit_color: string, + public fruit_size: string, + public fruit_type: string, + public thorny: string, + public images: string[], + public symbol: string, + ) {} + + get_thumbnail_url() { + return '/attachment/plantekey/thumb/' + this.img + } + + isMatch(searchText: string) { + searchText = searchText.toLowerCase() + return ( + this.id.indexOf(searchText) != -1 || + this.name.indexOf(searchText) != -1 || + (this.english && this.english.toLowerCase().indexOf(searchText) != -1) + ) + } + + getFriendlyName(): string { + if (this.english) { + return `${this.name} (${this.english})` + } + else if (this.spiritual) { + return `${this.name} (${this.spiritual})` + } + else { + return this.name + } + } +} + +export class Plants { + [id: string]: Plant +} + +export class All { + constructor( + public trees: Trees = {}, + public trails: Trails = {}, + public tree_trails: TreeTrail[] = [], + public plants: Plants = {}, + public pois: Pois = {}, + public zones: Zones = {}, + public styles: Styles = {}, + ) {} +} + +export class Role { + constructor( + public name: String, + ) {} +} + +export class User { + constructor( + public username: String, + public roles: Role[], + public full_name?: String, + public email?: String, + ) {} +} +/* +let layer: LayerSpecification = { + id: layerDef.store, + type: layerDef.type, + source: { + type: "geojson", + data: data + }, + attribution: resp.style.attribution +} +*/ diff --git a/src/app/nav/nav.component.html b/src/app/nav/nav.component.html new file mode 100644 index 0000000..99b0997 --- /dev/null +++ b/src/app/nav/nav.component.html @@ -0,0 +1,42 @@ + + + + + homeHome + directions_walkTrails + local_floristPlants + mapMap + settingsSettings + + + +
+ Share this site: + +
+
+
+ + + +
+
{{ (configService.conf | async).bootstrap?.app.title }}
+
+ +
+ +
+
diff --git a/src/app/nav/nav.component.scss b/src/app/nav/nav.component.scss new file mode 100644 index 0000000..0f45bb5 --- /dev/null +++ b/src/app/nav/nav.component.scss @@ -0,0 +1,98 @@ +.sidenav-container { + height: 100%; +} + +.sidenav { + width: 150px; +} + +.sidenav { + background-color:rgba(250, 255, 220); +} + +.mat-drawer-container { + background-color: inherit; +} + +.mat-toolbar.mat-primary { + position: sticky; + top: 0; + z-index: 1; +} + +.mat-toolbar { + padding: 0; + height: 2em; +} + +.mat-toolbar .appTitle { + font-family: TenderLeaf; + font-style: italic; + font-weight: lighter; + font-variant-caps: petite-caps; + text-shadow: 5px 3px 5px #3e371c81; + opacity: .9; +} + +.mat-toolbar app-message { + padding: 1em; +} + +.mat-icon { + padding-right: 0.5em; + vertical-align: bottom; +} + +.mat-toolbar { + // Angular build cannot find the asset: removing for now + //background-image: url("assets/img/banner.jpg"); + background-color: #a9b15070; + background-size: contain; + border-bottom: groove; + border-color: rgb(187 210 186 / 70%); + font-weight: 700; +} + +.mat-toolbar .mat-icon { + vertical-align: baseline; +} + +.appTitle { + margin: auto; + height: inherit; + display: flex; + align-items: center +} + +.appTitle img { + height: inherit; +} + +.qrcode { + width: 100%; + text-align: center; + position: absolute; + bottom: 0; + img { + height: 5em; + } +} + +:host ::ng-deep { + .mat-mdc-form-field-subscript-wrapper { + display: none; + } + .mdc-line-ripple { + display: none; + } + + //.sidenav .mat-drawer-inner-container { + //background-image: url('assets/img/sidebar.jpg'); + //background-position: center; + //} + + .mat-sidenav-content > :last-child { + overflow: auto; + height: inherit; + } +} diff --git a/src/app/nav/nav.component.spec.ts b/src/app/nav/nav.component.spec.ts new file mode 100644 index 0000000..ef41e2c --- /dev/null +++ b/src/app/nav/nav.component.spec.ts @@ -0,0 +1,40 @@ +import { LayoutModule } from '@angular/cdk/layout'; +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { MatButtonModule } from '@angular/material/button'; +import { MatIconModule } from '@angular/material/icon'; +import { MatListModule } from '@angular/material/list'; +import { MatSidenavModule } from '@angular/material/sidenav'; +import { MatToolbarModule } from '@angular/material/toolbar'; + +import { NavComponent } from './nav.component'; + +describe('NavComponent', () => { + let component: NavComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [NavComponent], + imports: [ + NoopAnimationsModule, + LayoutModule, + MatButtonModule, + MatIconModule, + MatListModule, + MatSidenavModule, + MatToolbarModule, + ] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(NavComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should compile', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/nav/nav.component.ts b/src/app/nav/nav.component.ts new file mode 100644 index 0000000..3c02138 --- /dev/null +++ b/src/app/nav/nav.component.ts @@ -0,0 +1,36 @@ +import { Component, ViewChild, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' +import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout' +import { Router, NavigationEnd } from '@angular/router'; +import { MatSidenav } from '@angular/material/sidenav' +import { Observable } from 'rxjs' +import { map, shareReplay, withLatestFrom, filter } from 'rxjs/operators' + +import { DataService } from '../data.service' +import { ConfigService } from '../config.service' + +@Component({ + selector: 'app-nav', + templateUrl: './nav.component.html', + styleUrls: ['./nav.component.scss'], +}) +export class NavComponent { + @ViewChild('drawer') drawer: MatSidenav; + isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset) + .pipe( + map(result => result.matches), + shareReplay() + ) + + constructor( + private breakpointObserver: BreakpointObserver, + public dataService: DataService, + public router: Router, + public configService: ConfigService, + ) { + router.events.pipe( + withLatestFrom(this.isHandset$), + filter(([a, b]) => b && a instanceof NavigationEnd) + ).subscribe(_ => this.drawer.close()) + } +} diff --git a/src/app/openapi/core/ApiError.ts b/src/app/openapi/core/ApiError.ts new file mode 100644 index 0000000..36675d2 --- /dev/null +++ b/src/app/openapi/core/ApiError.ts @@ -0,0 +1,21 @@ +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; + +export class ApiError extends Error { + public readonly url: string; + public readonly status: number; + public readonly statusText: string; + public readonly body: unknown; + public readonly request: ApiRequestOptions; + + constructor(request: ApiRequestOptions, response: ApiResult, message: string) { + super(message); + + this.name = 'ApiError'; + this.url = response.url; + this.status = response.status; + this.statusText = response.statusText; + this.body = response.body; + this.request = request; + } +} \ No newline at end of file diff --git a/src/app/openapi/core/ApiRequestOptions.ts b/src/app/openapi/core/ApiRequestOptions.ts new file mode 100644 index 0000000..8f8d4d1 --- /dev/null +++ b/src/app/openapi/core/ApiRequestOptions.ts @@ -0,0 +1,13 @@ +export type ApiRequestOptions = { + readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH'; + readonly url: string; + readonly path?: Record; + readonly cookies?: Record; + readonly headers?: Record; + readonly query?: Record; + readonly formData?: Record; + readonly body?: any; + readonly mediaType?: string; + readonly responseHeader?: string; + readonly errors?: Record; +}; \ No newline at end of file diff --git a/src/app/openapi/core/ApiResult.ts b/src/app/openapi/core/ApiResult.ts new file mode 100644 index 0000000..4c58e39 --- /dev/null +++ b/src/app/openapi/core/ApiResult.ts @@ -0,0 +1,7 @@ +export type ApiResult = { + readonly body: TData; + readonly ok: boolean; + readonly status: number; + readonly statusText: string; + readonly url: string; +}; \ No newline at end of file diff --git a/src/app/openapi/core/OpenAPI.ts b/src/app/openapi/core/OpenAPI.ts new file mode 100644 index 0000000..5dd8c80 --- /dev/null +++ b/src/app/openapi/core/OpenAPI.ts @@ -0,0 +1,55 @@ +import type { HttpResponse } from '@angular/common/http'; +import type { ApiRequestOptions } from './ApiRequestOptions'; + +type Headers = Record; +type Middleware = (value: T) => T | Promise; +type Resolver = (options: ApiRequestOptions) => Promise; + +export class Interceptors { + _fns: Middleware[]; + + constructor() { + this._fns = []; + } + + eject(fn: Middleware) { + const index = this._fns.indexOf(fn); + if (index !== -1) { + this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)]; + } + } + + use(fn: Middleware) { + this._fns = [...this._fns, fn]; + } +} + +export type OpenAPIConfig = { + BASE: string; + CREDENTIALS: 'include' | 'omit' | 'same-origin'; + ENCODE_PATH?: ((path: string) => string) | undefined; + HEADERS?: Headers | Resolver | undefined; + PASSWORD?: string | Resolver | undefined; + TOKEN?: string | Resolver | undefined; + USERNAME?: string | Resolver | undefined; + VERSION: string; + WITH_CREDENTIALS: boolean; + interceptors: { + response: Interceptors>; + }; +}; + +export const OpenAPI: OpenAPIConfig = { + BASE: 'v1', + CREDENTIALS: 'include', + ENCODE_PATH: undefined, + HEADERS: undefined, + PASSWORD: undefined, + TOKEN: undefined, + USERNAME: undefined, + VERSION: '2023.4.dev53+g737a872.d20240606', + WITH_CREDENTIALS: false, + interceptors: { + response: new Interceptors(), + }, +}; diff --git a/src/app/openapi/core/request.ts b/src/app/openapi/core/request.ts new file mode 100644 index 0000000..251cb79 --- /dev/null +++ b/src/app/openapi/core/request.ts @@ -0,0 +1,327 @@ +import { HttpClient, HttpHeaders } from '@angular/common/http'; +import type { HttpResponse, HttpErrorResponse } from '@angular/common/http'; +import { forkJoin, of, throwError } from 'rxjs'; +import { catchError, map, switchMap } from 'rxjs/operators'; +import type { Observable } from 'rxjs'; + +import { ApiError } from './ApiError'; +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; +import type { OpenAPIConfig } from './OpenAPI'; + +export const isString = (value: unknown): value is string => { + return typeof value === 'string'; +}; + +export const isStringWithValue = (value: unknown): value is string => { + return isString(value) && value !== ''; +}; + +export const isBlob = (value: any): value is Blob => { + return value instanceof Blob; +}; + +export const isFormData = (value: unknown): value is FormData => { + return value instanceof FormData; +}; + +export const base64 = (str: string): string => { + try { + return btoa(str); + } catch (err) { + // @ts-ignore + return Buffer.from(str).toString('base64'); + } +}; + +export const getQueryString = (params: Record): string => { + const qs: string[] = []; + + const append = (key: string, value: unknown) => { + qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); + }; + + const encodePair = (key: string, value: unknown) => { + if (value === undefined || value === null) { + return; + } + + if (value instanceof Date) { + append(key, value.toISOString()); + } else if (Array.isArray(value)) { + value.forEach(v => encodePair(key, v)); + } else if (typeof value === 'object') { + Object.entries(value).forEach(([k, v]) => encodePair(`${key}[${k}]`, v)); + } else { + append(key, value); + } + }; + + Object.entries(params).forEach(([key, value]) => encodePair(key, value)); + + return qs.length ? `?${qs.join('&')}` : ''; +}; + +const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => { + const encoder = config.ENCODE_PATH || encodeURI; + + const path = options.url + .replace('{api-version}', config.VERSION) + .replace(/{(.*?)}/g, (substring: string, group: string) => { + if (options.path?.hasOwnProperty(group)) { + return encoder(String(options.path[group])); + } + return substring; + }); + + const url = config.BASE + path; + return options.query ? url + getQueryString(options.query) : url; +}; + +export const getFormData = (options: ApiRequestOptions): FormData | undefined => { + if (options.formData) { + const formData = new FormData(); + + const process = (key: string, value: unknown) => { + if (isString(value) || isBlob(value)) { + formData.append(key, value); + } else { + formData.append(key, JSON.stringify(value)); + } + }; + + Object.entries(options.formData) + .filter(([, value]) => value !== undefined && value !== null) + .forEach(([key, value]) => { + if (Array.isArray(value)) { + value.forEach(v => process(key, v)); + } else { + process(key, value); + } + }); + + return formData; + } + return undefined; +}; + +type Resolver = (options: ApiRequestOptions) => Promise; + +export const resolve = async (options: ApiRequestOptions, resolver?: T | Resolver): Promise => { + if (typeof resolver === 'function') { + return (resolver as Resolver)(options); + } + return resolver; +}; + +export const getHeaders = (config: OpenAPIConfig, options: ApiRequestOptions): Observable => { + return forkJoin({ + token: resolve(options, config.TOKEN), + username: resolve(options, config.USERNAME), + password: resolve(options, config.PASSWORD), + additionalHeaders: resolve(options, config.HEADERS), + }).pipe( + map(({ token, username, password, additionalHeaders }) => { + const headers = Object.entries({ + Accept: 'application/json', + ...additionalHeaders, + ...options.headers, + }) + .filter(([, value]) => value !== undefined && value !== null) + .reduce((headers, [key, value]) => ({ + ...headers, + [key]: String(value), + }), {} as Record); + + if (isStringWithValue(token)) { + headers['Authorization'] = `Bearer ${token}`; + } + + if (isStringWithValue(username) && isStringWithValue(password)) { + const credentials = base64(`${username}:${password}`); + headers['Authorization'] = `Basic ${credentials}`; + } + + if (options.body !== undefined) { + if (options.mediaType) { + headers['Content-Type'] = options.mediaType; + } else if (isBlob(options.body)) { + headers['Content-Type'] = options.body.type || 'application/octet-stream'; + } else if (isString(options.body)) { + headers['Content-Type'] = 'text/plain'; + } else if (!isFormData(options.body)) { + headers['Content-Type'] = 'application/json'; + } + } + + return new HttpHeaders(headers); + }), + ); +}; + +export const getRequestBody = (options: ApiRequestOptions): unknown => { + if (options.body) { + if (options.mediaType?.includes('application/json') || options.mediaType?.includes('+json')) { + return JSON.stringify(options.body); + } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) { + return options.body; + } else { + return JSON.stringify(options.body); + } + } + return undefined; +}; + +export const sendRequest = ( + config: OpenAPIConfig, + options: ApiRequestOptions, + http: HttpClient, + url: string, + body: unknown, + formData: FormData | undefined, + headers: HttpHeaders +): Observable> => { + return http.request(options.method, url, { + headers, + body: body ?? formData, + withCredentials: config.WITH_CREDENTIALS, + observe: 'response', + }); +}; + +export const getResponseHeader = (response: HttpResponse, responseHeader?: string): string | undefined => { + if (responseHeader) { + const value = response.headers.get(responseHeader); + if (isString(value)) { + return value; + } + } + return undefined; +}; + +export const getResponseBody = (response: HttpResponse): T | undefined => { + if (response.status !== 204 && response.body !== null) { + return response.body; + } + return undefined; +}; + +export const catchErrorCodes = (options: ApiRequestOptions, result: ApiResult): void => { + const errors: Record = { + 400: 'Bad Request', + 401: 'Unauthorized', + 402: 'Payment Required', + 403: 'Forbidden', + 404: 'Not Found', + 405: 'Method Not Allowed', + 406: 'Not Acceptable', + 407: 'Proxy Authentication Required', + 408: 'Request Timeout', + 409: 'Conflict', + 410: 'Gone', + 411: 'Length Required', + 412: 'Precondition Failed', + 413: 'Payload Too Large', + 414: 'URI Too Long', + 415: 'Unsupported Media Type', + 416: 'Range Not Satisfiable', + 417: 'Expectation Failed', + 418: 'Im a teapot', + 421: 'Misdirected Request', + 422: 'Unprocessable Content', + 423: 'Locked', + 424: 'Failed Dependency', + 425: 'Too Early', + 426: 'Upgrade Required', + 428: 'Precondition Required', + 429: 'Too Many Requests', + 431: 'Request Header Fields Too Large', + 451: 'Unavailable For Legal Reasons', + 500: 'Internal Server Error', + 501: 'Not Implemented', + 502: 'Bad Gateway', + 503: 'Service Unavailable', + 504: 'Gateway Timeout', + 505: 'HTTP Version Not Supported', + 506: 'Variant Also Negotiates', + 507: 'Insufficient Storage', + 508: 'Loop Detected', + 510: 'Not Extended', + 511: 'Network Authentication Required', + ...options.errors, + } + + const error = errors[result.status]; + if (error) { + throw new ApiError(options, result, error); + } + + if (!result.ok) { + const errorStatus = result.status ?? 'unknown'; + const errorStatusText = result.statusText ?? 'unknown'; + const errorBody = (() => { + try { + return JSON.stringify(result.body, null, 2); + } catch (e) { + return undefined; + } + })(); + + throw new ApiError(options, result, + `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}` + ); + } +}; + +/** + * Request method + * @param config The OpenAPI configuration object + * @param http The Angular HTTP client + * @param options The request options from the service + * @returns Observable + * @throws ApiError + */ +export const request = (config: OpenAPIConfig, http: HttpClient, options: ApiRequestOptions): Observable => { + const url = getUrl(config, options); + const formData = getFormData(options); + const body = getRequestBody(options); + + return getHeaders(config, options).pipe( + switchMap(headers => { + return sendRequest(config, options, http, url, body, formData, headers); + }), + switchMap(async response => { + for (const fn of config.interceptors.response._fns) { + response = await fn(response); + } + const responseBody = getResponseBody(response); + const responseHeader = getResponseHeader(response, options.responseHeader); + return { + url, + ok: response.ok, + status: response.status, + statusText: response.statusText, + body: responseHeader ?? responseBody, + } as ApiResult; + }), + catchError((error: HttpErrorResponse) => { + if (!error.status) { + return throwError(() => error); + } + return of({ + url, + ok: error.ok, + status: error.status, + statusText: error.statusText, + body: error.error ?? error.statusText, + } as ApiResult); + }), + map(result => { + catchErrorCodes(options, result); + return result.body as T; + }), + catchError((error: ApiError) => { + return throwError(() => error); + }), + ); +}; \ No newline at end of file diff --git a/src/app/openapi/index.ts b/src/app/openapi/index.ts new file mode 100644 index 0000000..39c1266 --- /dev/null +++ b/src/app/openapi/index.ts @@ -0,0 +1,6 @@ +// This file is auto-generated by @hey-api/openapi-ts +export { ApiError } from './core/ApiError'; +export { OpenAPI, type OpenAPIConfig } from './core/OpenAPI'; +export * from './schemas.gen'; +export * from './services.gen'; +export * from './types.gen'; \ No newline at end of file diff --git a/src/app/openapi/schemas.gen.ts b/src/app/openapi/schemas.gen.ts new file mode 100644 index 0000000..729385c --- /dev/null +++ b/src/app/openapi/schemas.gen.ts @@ -0,0 +1,584 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export const $App = { + properties: { + title: { + type: 'string', + title: 'Title', + default: 'Tree Trail' + } + }, + additionalProperties: false, + type: 'object', + title: 'App' +} as const; + +export const $BaseMapStyles = { + properties: { + embedded: { + items: { + type: 'string' + }, + type: 'array', + title: 'Embedded' + }, + external: { + additionalProperties: { + type: 'string' + }, + type: 'object', + title: 'External' + } + }, + type: 'object', + required: ['embedded', 'external'], + title: 'BaseMapStyles' +} as const; + +export const $Body_addTree_tree_post = { + properties: { + plantekey_id: { + type: 'string', + title: 'Plantekey Id' + }, + picture: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Picture' + }, + trail_ids: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Trail Ids' + }, + lng: { + type: 'string', + title: 'Lng' + }, + lat: { + type: 'string', + title: 'Lat' + }, + uuid1: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Uuid1' + }, + details: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Details' + } + }, + type: 'object', + required: ['plantekey_id', 'lng', 'lat'], + title: 'Body_addTree_tree_post' +} as const; + +export const $Body_login_for_access_token_token_post = { + properties: { + grant_type: { + anyOf: [ + { + type: 'string', + pattern: 'password' + }, + { + type: 'null' + } + ], + title: 'Grant Type' + }, + username: { + type: 'string', + title: 'Username' + }, + password: { + type: 'string', + title: 'Password' + }, + scope: { + type: 'string', + title: 'Scope', + default: '' + }, + client_id: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Client Id' + }, + client_secret: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Client Secret' + } + }, + type: 'object', + required: ['username', 'password'], + title: 'Body_login_for_access_token_token_post' +} as const; + +export const $Body_upload_trail_photo_trail_photo__id___file_name__put = { + properties: { + file: { + anyOf: [ + { + type: 'string', + format: 'binary' + }, + { + type: 'null' + } + ], + title: 'File' + } + }, + type: 'object', + title: 'Body_upload_trail_photo_trail_photo__id___file_name__put' +} as const; + +export const $Body_upload_tree_photo_tree_photo__id___file_name__put = { + properties: { + file: { + anyOf: [ + { + type: 'string', + format: 'binary' + }, + { + type: 'null' + } + ], + title: 'File' + } + }, + type: 'object', + title: 'Body_upload_tree_photo_tree_photo__id___file_name__put' +} as const; + +export const $Body_upload_upload__type___field___id__post = { + properties: { + file: { + type: 'string', + format: 'binary', + title: 'File' + } + }, + type: 'object', + required: ['file'], + title: 'Body_upload_upload__type___field___id__post' +} as const; + +export const $Bootstrap = { + properties: { + client: { + '$ref': '#/components/schemas/VersionedComponent' + }, + server: { + '$ref': '#/components/schemas/VersionedComponent' + }, + app: { + '$ref': '#/components/schemas/App' + }, + user: { + anyOf: [ + { + '$ref': '#/components/schemas/UserWithRoles' + }, + { + type: 'null' + } + ] + }, + map: { + '$ref': '#/components/schemas/Map' + }, + baseMapStyles: { + '$ref': '#/components/schemas/BaseMapStyles' + } + }, + type: 'object', + required: ['client', 'server', 'app', 'user', 'map', 'baseMapStyles'], + title: 'Bootstrap' +} as const; + +export const $HTTPValidationError = { + properties: { + detail: { + items: { + '$ref': '#/components/schemas/ValidationError' + }, + type: 'array', + title: 'Detail' + } + }, + type: 'object', + title: 'HTTPValidationError' +} as const; + +export const $Map = { + properties: { + zoom: { + type: 'number', + title: 'Zoom', + default: 14 + }, + pitch: { + type: 'number', + title: 'Pitch', + default: 0 + }, + lat: { + type: 'number', + title: 'Lat', + default: 12 + }, + lng: { + type: 'number', + title: 'Lng', + default: 79.8106 + }, + bearing: { + type: 'number', + title: 'Bearing', + default: 0 + }, + background: { + type: 'string', + title: 'Background', + default: 'osm' + } + }, + additionalProperties: false, + type: 'object', + title: 'Map' +} as const; + +export const $MapStyle = { + properties: { + id: { + type: 'integer', + title: 'Id' + }, + layer: { + type: 'string', + title: 'Layer' + }, + paint: { + anyOf: [ + { + type: 'object' + }, + { + type: 'null' + } + ], + title: 'Paint' + }, + layout: { + anyOf: [ + { + type: 'object' + }, + { + type: 'null' + } + ], + title: 'Layout' + } + }, + type: 'object', + required: ['id', 'layer', 'paint', 'layout'], + title: 'MapStyle' +} as const; + +export const $POI = { + properties: { + id: { + type: 'integer', + title: 'Id' + }, + name: { + type: 'string', + title: 'Name' + }, + description: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Description' + }, + create_date: { + type: 'string', + format: 'date-time', + title: 'Create Date' + }, + geom: { + type: 'string', + title: 'Geom' + }, + photo: { + type: 'string', + title: 'Photo' + }, + type: { + type: 'string', + title: 'Type' + }, + data: { + type: 'object', + title: 'Data' + } + }, + type: 'object', + required: ['id', 'name', 'geom', 'photo', 'type'], + title: 'POI' +} as const; + +export const $Role = { + properties: { + name: { + type: 'string', + title: 'Name' + } + }, + type: 'object', + required: ['name'], + title: 'Role' +} as const; + +export const $Token = { + properties: { + access_token: { + type: 'string', + title: 'Access Token' + }, + token_type: { + type: 'string', + title: 'Token Type' + } + }, + type: 'object', + required: ['access_token', 'token_type'], + title: 'Token' +} as const; + +export const $TreeTrail = { + properties: { + tree_id: { + anyOf: [ + { + type: 'string', + format: 'uuid' + }, + { + type: 'null' + } + ], + title: 'Tree Id' + }, + trail_id: { + anyOf: [ + { + type: 'integer' + }, + { + type: 'null' + } + ], + title: 'Trail Id' + } + }, + type: 'object', + title: 'TreeTrail' +} as const; + +export const $UserWithRoles = { + properties: { + username: { + type: 'string', + title: 'Username' + }, + full_name: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Full Name' + }, + email: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Email' + }, + roles: { + items: { + '$ref': '#/components/schemas/Role' + }, + type: 'array', + title: 'Roles' + } + }, + type: 'object', + required: ['username', 'full_name', 'email', 'roles'], + title: 'UserWithRoles' +} as const; + +export const $ValidationError = { + properties: { + loc: { + items: { + anyOf: [ + { + type: 'string' + }, + { + type: 'integer' + } + ] + }, + type: 'array', + title: 'Location' + }, + msg: { + type: 'string', + title: 'Message' + }, + type: { + type: 'string', + title: 'Error Type' + } + }, + type: 'object', + required: ['loc', 'msg', 'type'], + title: 'ValidationError' +} as const; + +export const $VersionedComponent = { + properties: { + version: { + type: 'string', + title: 'Version' + } + }, + type: 'object', + required: ['version'], + title: 'VersionedComponent' +} as const; + +export const $Zone = { + properties: { + id: { + type: 'integer', + title: 'Id' + }, + name: { + type: 'string', + title: 'Name' + }, + description: { + type: 'string', + title: 'Description' + }, + create_date: { + type: 'string', + format: 'date-time', + title: 'Create Date' + }, + geom: { + type: 'string', + title: 'Geom' + }, + photo: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Photo' + }, + type: { + type: 'string', + title: 'Type' + }, + data: { + anyOf: [ + { + type: 'object' + }, + { + type: 'null' + } + ], + title: 'Data' + }, + viewable_role_id: { + anyOf: [ + { + type: 'string' + }, + { + type: 'null' + } + ], + title: 'Viewable Role Id' + } + }, + type: 'object', + required: ['id', 'name', 'description', 'geom', 'photo', 'type', 'viewable_role_id'], + title: 'Zone' +} as const; \ No newline at end of file diff --git a/src/app/openapi/services.gen.ts b/src/app/openapi/services.gen.ts new file mode 100644 index 0000000..c8224da --- /dev/null +++ b/src/app/openapi/services.gen.ts @@ -0,0 +1,276 @@ +// This file is auto-generated by @hey-api/openapi-ts + +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import type { Observable } from 'rxjs'; +import { OpenAPI } from './core/OpenAPI'; +import { request as __request } from './core/request'; +import type { GetBootstrapBootstrapGetResponse, LoginForAccessTokenTokenPostData, LoginForAccessTokenTokenPostResponse, UploadUploadTypeFieldIdPostData, UploadUploadTypeFieldIdPostResponse, MakeAttachmentsTarFileMakeAttachmentsTarFileGetResponse, LogoutLogoutGetResponse, GetTrailsTrailGetResponse, GetTrailAllDetailsTrailDetailsGetResponse, GetTreeTrailTreeTrailGetResponse, GetTreesTreeGetResponse, AddTreeTreePostData, AddTreeTreePostResponse, GetPoisPoiGetResponse, GetZonesZoneGetResponse, GetStylesStyleGetResponse, UploadTrailPhotoTrailPhotoIdFileNamePutData, UploadTrailPhotoTrailPhotoIdFileNamePutResponse, UploadTreePhotoTreePhotoIdFileNamePutData, UploadTreePhotoTreePhotoIdFileNamePutResponse } from './types.gen'; + +@Injectable({ + providedIn: 'root' +}) +export class DefaultService { + constructor(public readonly http: HttpClient) { } + + /** + * Get Bootstrap + * @returns Bootstrap Successful Response + * @throws ApiError + */ + public getBootstrapBootstrapGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/bootstrap' + }); + } + + /** + * Login For Access Token + * @param data The data for the request. + * @param data.formData + * @returns Token Successful Response + * @throws ApiError + */ + public loginForAccessTokenTokenPost(data: LoginForAccessTokenTokenPostData): Observable { + return __request(OpenAPI, this.http, { + method: 'POST', + url: '/token', + formData: data.formData, + mediaType: 'application/x-www-form-urlencoded', + errors: { + 422: 'Validation Error' + } + }); + } + + /** + * Upload + * @param data The data for the request. + * @param data.type + * @param data.field + * @param data.id + * @param data.formData + * @returns unknown Successful Response + * @throws ApiError + */ + public uploadUploadTypeFieldIdPost(data: UploadUploadTypeFieldIdPostData): Observable { + return __request(OpenAPI, this.http, { + method: 'POST', + url: '/upload/{type}/{field}/{id}', + path: { + type: data.type, + field: data.field, + id: data.id + }, + formData: data.formData, + mediaType: 'multipart/form-data', + errors: { + 422: 'Validation Error' + } + }); + } + + /** + * Makeattachmentstarfile + * Create a tar file with all photos, used to feed clients' caches + * for offline use + * @returns unknown Successful Response + * @throws ApiError + */ + public makeAttachmentsTarFileMakeAttachmentsTarFileGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/makeAttachmentsTarFile' + }); + } + + /** + * Logout + * @returns unknown Successful Response + * @throws ApiError + */ + public logoutLogoutGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/logout' + }); + } + + /** + * Get Trails + * Get all trails + * @returns unknown Successful Response + * @throws ApiError + */ + public getTrailsTrailGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/trail' + }); + } + + /** + * Get Trail All Details + * Get details of all trails + * @returns unknown Successful Response + * @throws ApiError + */ + public getTrailAllDetailsTrailDetailsGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/trail/details' + }); + } + + /** + * Get Tree Trail + * Get all relations between trees and trails. + * Note that these are not checked for permissions, as there's no really + * valuable information. + * @returns TreeTrail Successful Response + * @throws ApiError + */ + public getTreeTrailTreeTrailGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/tree-trail' + }); + } + + /** + * Get Trees + * Get all trees + * @returns unknown Successful Response + * @throws ApiError + */ + public getTreesTreeGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/tree' + }); + } + + /** + * Addtree + * @param data The data for the request. + * @param data.formData + * @returns unknown Successful Response + * @throws ApiError + */ + public addTreeTreePost(data: AddTreeTreePostData): Observable { + return __request(OpenAPI, this.http, { + method: 'POST', + url: '/tree', + formData: data.formData, + mediaType: 'application/x-www-form-urlencoded', + errors: { + 422: 'Validation Error' + } + }); + } + + /** + * Get Pois + * Get all POI + * @returns POI Successful Response + * @throws ApiError + */ + public getPoisPoiGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/poi' + }); + } + + /** + * Get Zones + * Get all Zones + * @returns Zone Successful Response + * @throws ApiError + */ + public getZonesZoneGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/zone' + }); + } + + /** + * Get Styles + * Get all Styles + * @returns MapStyle Successful Response + * @throws ApiError + */ + public getStylesStyleGet(): Observable { + return __request(OpenAPI, this.http, { + method: 'GET', + url: '/style' + }); + } + + /** + * Upload Trail Photo + * This was tested with QGis, provided the properties for the trail layer + * have been defined correctly. + * This includes: in "Attributes Form", field "photo", "Widget Type" + * is set as WebDav storage, with store URL set correcly with a URL like: + * * 'http://localhost:4200/v1/trail/photo/' || "id" || '/' || file_name(@selected_file_path) + * * 'https://treetrail.avcsr.org/v1/trail/' || "id" || '/' || file_name(@selected_file_path) + * ## XXX: probably broken info as paths have changed + * @param data The data for the request. + * @param data.id + * @param data.fileName + * @param data.formData + * @returns unknown Successful Response + * @throws ApiError + */ + public uploadTrailPhotoTrailPhotoIdFileNamePut(data: UploadTrailPhotoTrailPhotoIdFileNamePutData): Observable { + return __request(OpenAPI, this.http, { + method: 'PUT', + url: '/trail/photo/{id}/{file_name}', + path: { + id: data.id, + file_name: data.fileName + }, + formData: data.formData, + mediaType: 'multipart/form-data', + errors: { + 422: 'Validation Error' + } + }); + } + + /** + * Upload Tree Photo + * This was tested with QGis, provided the properties for the tree layer + * have been defined correctly. + * This includes: in "Attributes Form", field "photo", "Widget Type" + * is set as WebDav storage, with store URL set correcly with a URL like: + * * 'http://localhost:4200/v1/tree/photo/' || "id" || '/' || file_name(@selected_file_path) + * * 'https://treetrail.avcsr.org/v1/tree/' || "id" || '/' || file_name(@selected_file_path) + * ## XXX: probably broken info as paths have changed + * @param data The data for the request. + * @param data.id + * @param data.fileName + * @param data.formData + * @returns unknown Successful Response + * @throws ApiError + */ + public uploadTreePhotoTreePhotoIdFileNamePut(data: UploadTreePhotoTreePhotoIdFileNamePutData): Observable { + return __request(OpenAPI, this.http, { + method: 'PUT', + url: '/tree/photo/{id}/{file_name}', + path: { + id: data.id, + file_name: data.fileName + }, + formData: data.formData, + mediaType: 'multipart/form-data', + errors: { + 422: 'Validation Error' + } + }); + } + +} \ No newline at end of file diff --git a/src/app/openapi/types.gen.ts b/src/app/openapi/types.gen.ts new file mode 100644 index 0000000..91ecf01 --- /dev/null +++ b/src/app/openapi/types.gen.ts @@ -0,0 +1,367 @@ +// This file is auto-generated by @hey-api/openapi-ts + +export type App = { + title?: string; +}; + +export type BaseMapStyles = { + embedded: Array<(string)>; + external: { + [key: string]: (string); + }; +}; + +export type Body_addTree_tree_post = { + plantekey_id: string; + picture?: string | null; + trail_ids?: string | null; + lng: string; + lat: string; + uuid1?: string | null; + details?: string | null; +}; + +export type Body_login_for_access_token_token_post = { + grant_type?: string | null; + username: string; + password: string; + scope?: string; + client_id?: string | null; + client_secret?: string | null; +}; + +export type Body_upload_trail_photo_trail_photo__id___file_name__put = { + file?: (Blob | File) | null; +}; + +export type Body_upload_tree_photo_tree_photo__id___file_name__put = { + file?: (Blob | File) | null; +}; + +export type Body_upload_upload__type___field___id__post = { + file: (Blob | File); +}; + +export type Bootstrap = { + client: VersionedComponent; + server: VersionedComponent; + app: App; + user: UserWithRoles | null; + map: Map; + baseMapStyles: BaseMapStyles; +}; + +export type HTTPValidationError = { + detail?: Array; +}; + +export type Map = { + zoom?: number; + pitch?: number; + lat?: number; + lng?: number; + bearing?: number; + background?: string; +}; + +export type MapStyle = { + id: number; + layer: string; + paint: { + [key: string]: unknown; +} | null; + layout: { + [key: string]: unknown; +} | null; +}; + +export type POI = { + id: number; + name: string; + description?: string | null; + create_date?: string; + geom: string; + photo: string; + type: string; + data?: { + [key: string]: unknown; + }; +}; + +export type Role = { + name: string; +}; + +export type Token = { + access_token: string; + token_type: string; +}; + +export type TreeTrail = { + tree_id?: string | null; + trail_id?: number | null; +}; + +export type UserWithRoles = { + username: string; + full_name: string | null; + email: string | null; + roles: Array; +}; + +export type ValidationError = { + loc: Array<(string | number)>; + msg: string; + type: string; +}; + +export type VersionedComponent = { + version: string; +}; + +export type Zone = { + id: number; + name: string; + description: string; + create_date?: string; + geom: string; + photo: string | null; + type: string; + data?: { + [key: string]: unknown; +} | null; + viewable_role_id: string | null; +}; + +export type GetBootstrapBootstrapGetResponse = Bootstrap; + +export type LoginForAccessTokenTokenPostData = { + formData: Body_login_for_access_token_token_post; +}; + +export type LoginForAccessTokenTokenPostResponse = Token; + +export type UploadUploadTypeFieldIdPostData = { + field: string; + formData: Body_upload_upload__type___field___id__post; + id: string; + type: string; +}; + +export type UploadUploadTypeFieldIdPostResponse = unknown; + +export type MakeAttachmentsTarFileMakeAttachmentsTarFileGetResponse = unknown; + +export type LogoutLogoutGetResponse = unknown; + +export type GetTrailsTrailGetResponse = unknown; + +export type GetTrailAllDetailsTrailDetailsGetResponse = unknown; + +export type GetTreeTrailTreeTrailGetResponse = Array; + +export type GetTreesTreeGetResponse = unknown; + +export type AddTreeTreePostData = { + formData: Body_addTree_tree_post; +}; + +export type AddTreeTreePostResponse = unknown; + +export type GetPoisPoiGetResponse = Array; + +export type GetZonesZoneGetResponse = Array; + +export type GetStylesStyleGetResponse = Array; + +export type UploadTrailPhotoTrailPhotoIdFileNamePutData = { + fileName: string; + formData?: Body_upload_trail_photo_trail_photo__id___file_name__put; + id: string; +}; + +export type UploadTrailPhotoTrailPhotoIdFileNamePutResponse = unknown; + +export type UploadTreePhotoTreePhotoIdFileNamePutData = { + fileName: string; + formData?: Body_upload_tree_photo_tree_photo__id___file_name__put; + id: string; +}; + +export type UploadTreePhotoTreePhotoIdFileNamePutResponse = unknown; + +export type $OpenApiTs = { + '/bootstrap': { + get: { + res: { + /** + * Successful Response + */ + 200: Bootstrap; + }; + }; + }; + '/token': { + post: { + req: LoginForAccessTokenTokenPostData; + res: { + /** + * Successful Response + */ + 200: Token; + /** + * Validation Error + */ + 422: HTTPValidationError; + }; + }; + }; + '/upload/{type}/{field}/{id}': { + post: { + req: UploadUploadTypeFieldIdPostData; + res: { + /** + * Successful Response + */ + 200: unknown; + /** + * Validation Error + */ + 422: HTTPValidationError; + }; + }; + }; + '/makeAttachmentsTarFile': { + get: { + res: { + /** + * Successful Response + */ + 200: unknown; + }; + }; + }; + '/logout': { + get: { + res: { + /** + * Successful Response + */ + 200: unknown; + }; + }; + }; + '/trail': { + get: { + res: { + /** + * Successful Response + */ + 200: unknown; + }; + }; + }; + '/trail/details': { + get: { + res: { + /** + * Successful Response + */ + 200: unknown; + }; + }; + }; + '/tree-trail': { + get: { + res: { + /** + * Successful Response + */ + 200: Array; + }; + }; + }; + '/tree': { + get: { + res: { + /** + * Successful Response + */ + 200: unknown; + }; + }; + post: { + req: AddTreeTreePostData; + res: { + /** + * Successful Response + */ + 200: unknown; + /** + * Validation Error + */ + 422: HTTPValidationError; + }; + }; + }; + '/poi': { + get: { + res: { + /** + * Successful Response + */ + 200: Array; + }; + }; + }; + '/zone': { + get: { + res: { + /** + * Successful Response + */ + 200: Array; + }; + }; + }; + '/style': { + get: { + res: { + /** + * Successful Response + */ + 200: Array; + }; + }; + }; + '/trail/photo/{id}/{file_name}': { + put: { + req: UploadTrailPhotoTrailPhotoIdFileNamePutData; + res: { + /** + * Successful Response + */ + 200: unknown; + /** + * Validation Error + */ + 422: HTTPValidationError; + }; + }; + }; + '/tree/photo/{id}/{file_name}': { + put: { + req: UploadTreePhotoTreePhotoIdFileNamePutData; + res: { + /** + * Successful Response + */ + 200: unknown; + /** + * Validation Error + */ + 422: HTTPValidationError; + }; + }; + }; +}; \ No newline at end of file diff --git a/src/app/plant-browser/plant-browser.component.html b/src/app/plant-browser/plant-browser.component.html new file mode 100644 index 0000000..b8b5b95 --- /dev/null +++ b/src/app/plant-browser/plant-browser.component.html @@ -0,0 +1,46 @@ + + + + + + + + ID + {{element['ID']}} + + + english + {{element['english']}} + + + hindi + {{element['hindi']}} + + + tamil + {{element['tamil']}} + + + family + {{element['family']}} + + + name + {{element['name']}} + + + spiritual + {{element['spiritual']}} + + + type + {{element['type']}} + + + + + + + + + diff --git a/src/app/plant-browser/plant-browser.component.scss b/src/app/plant-browser/plant-browser.component.scss new file mode 100644 index 0000000..fa49b05 --- /dev/null +++ b/src/app/plant-browser/plant-browser.component.scss @@ -0,0 +1,23 @@ +table { + width: 100%; +} + +th.mat-sort-header-sorted { + color: black; +} + +tr.mat-mdc-header-row { + height: inherit; +} + +.mat-column-img img { + height: inherit; +} + +.mat-column-card { + vertical-align: middle; +} + +td.mat-mdc-cell:last-of-type { + padding-right: 0; +} \ No newline at end of file diff --git a/src/app/plant-browser/plant-browser.component.spec.ts b/src/app/plant-browser/plant-browser.component.spec.ts new file mode 100644 index 0000000..6a36699 --- /dev/null +++ b/src/app/plant-browser/plant-browser.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PlantBrowserComponent } from './plant-browser.component'; + +describe('PlantBrowserComponent', () => { + let component: PlantBrowserComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ PlantBrowserComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(PlantBrowserComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/plant-browser/plant-browser.component.ts b/src/app/plant-browser/plant-browser.component.ts new file mode 100644 index 0000000..ec15bb3 --- /dev/null +++ b/src/app/plant-browser/plant-browser.component.ts @@ -0,0 +1,53 @@ +import { AfterViewInit, Component, OnInit, ViewChild } from '@angular/core' +import { MatTableDataSource } from '@angular/material/table' +import { MatSort, Sort } from '@angular/material/sort' + +import { MessageService } from '../message.service' +import { PlantekeyService } from '../plantekey.service' +import { Plant } from '../models' + +// XXX: not used anymore, needs to bu updated using dataService +@Component({ + selector: 'app-plant-browser', + templateUrl: './plant-browser.component.html', + styleUrls: ['./plant-browser.component.scss'] +}) +export class PlantBrowserComponent implements OnInit, AfterViewInit { + @ViewChild(MatSort) sort: MatSort + public plantsTableData: MatTableDataSource = new MatTableDataSource() + + constructor( + public plantekeyService: PlantekeyService, + public messageService: MessageService, + ) { } + + public displayedColumns = [ + 'card', + //'name', + //'ID', + //'english', + //'family', + //'hindi', + //'spiritual', + //'tamil', + //'type', + 'img', + ] + + ngOnInit(): void { + this.plantekeyService.getAllPlants().subscribe() + this.plantekeyService.plants.subscribe( + plants => { + this.plantsTableData.data = Object.values(plants) + } + ) + } + + ngAfterViewInit() { + this.plantsTableData.sort = this.sort + } + + getImgUrl(plant: Plant) { + return '/attachment/plantekey/thumb/' + plant.img + } +} diff --git a/src/app/plant-detail/plant-detail.component.html b/src/app/plant-detail/plant-detail.component.html new file mode 100644 index 0000000..641719c --- /dev/null +++ b/src/app/plant-detail/plant-detail.component.html @@ -0,0 +1,116 @@ +
+

{{ plant.english || plant.name }}

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
English name
Scientific name
Spiritual name
Description
Family
Type
Woody
Latex
Thorny
+ +
+
+
+
Leaf
+ + + + + + + + + + + + + + + + + + + + + +
Type
Arrangement
Aroma
Length{{ plant.leaf_length | number }} cm
Width{{ plant.leaf_width | number }} cm
+
+
+
Flower
+ + + + + + + + + + + + + +
Color
Aroma
Size{{ plant.flower_size | number }} cm
+
+
+
Fruit
+ + + + + + + + + + + + + +
Color
Size{{ plant.fruit_size | number }} cm
Type
+
+
+ +
+

Visible from these trails:

+
+ + +
+
+
\ No newline at end of file diff --git a/src/app/plant-detail/plant-detail.component.scss b/src/app/plant-detail/plant-detail.component.scss new file mode 100644 index 0000000..7fe6e7b --- /dev/null +++ b/src/app/plant-detail/plant-detail.component.scss @@ -0,0 +1,83 @@ +.container { + margin: .5em; + font-family: Arial, Helvetica, sans-serif; +} + +h1 { + text-align: center; + margin-bottom: initial; +} + +.mat-mdc-card-content { + display: flex; + flex-direction: column; +} + +.mat-mdc-card-title { + margin: auto; + height: 2em; + flex: 0 0 0; +} + +.mat-mdc-card-title > button { + float: left; +} + +.row { + display: flex; + flex-wrap: wrap; +} + +.row1 th { + width: 7.5em; +} + +.row > * { + margin: 5px; + flex-grow: 1; +} + +.row table { + flex: 1 1 0; + border-spacing: 0; + width: 100%; + border-right: 1px solid grey; + border-top: 1px solid grey; +} + +.row th, .row .title { + background: rgb(75 200 100 / 100%); + text-align: left; + color: #fff; + font-weight: 100; + padding: 2px 5px; +} + +th { + width: 0; +} + +th, td { + border-bottom: 1px solid grey; +} + +.row img { + border-right: 0; + flex-grow: 0; +} + +.row .title { + font-weight: bold; + text-align: center; +} + +.img { + height: fit-content; +} + +.trails-container { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + margin: 0.5em; +} \ No newline at end of file diff --git a/src/app/plant-detail/plant-detail.component.ts b/src/app/plant-detail/plant-detail.component.ts new file mode 100644 index 0000000..1fe2c28 --- /dev/null +++ b/src/app/plant-detail/plant-detail.component.ts @@ -0,0 +1,54 @@ +import { Component, OnInit } from '@angular/core' +import { Router, ActivatedRoute, ParamMap } from '@angular/router' +import { Observable } from 'rxjs' +import { map, switchMap } from 'rxjs/operators' + +import { Plant } from '../models' +import { DataService } from '../data.service' + +@Component({ + selector: 'app-plant-detail', + templateUrl: './plant-detail.component.html', + styleUrls: ['./plant-detail.component.scss'] +}) +export class PlantDetailComponent implements OnInit { + constructor( + private route: ActivatedRoute, + public router: Router, + public dataService: DataService + ) { } + + include = new Set([ + 'description', 'habit', 'landscape', 'uses', 'planting', 'propagation', + 'type', 'element', 'hindi', 'tamil', 'woody', 'latex', + 'leaf_style', 'leaf_type', 'leaf_arrangement', 'leaf_aroma', 'leaf_length', 'leaf_width', + 'flower_color', 'flower_aroma', 'flower_size', + 'fruit_color', 'fruit_size', 'fruit_type', + 'thorny']) + + plant: Plant + + ngOnInit(): void { + this.route.paramMap.pipe( + switchMap((params: ParamMap) => + this.dataService.all.pipe( + map( + all => this.plant = all.plants[params.get('pekid')] + ) + ) + ) + ) + .subscribe() + } + + get imgUrl() { + //return 'https://plantekey.com/slir/?p=1&w=300&i=/admin/images/plants/' + this.plant.img + return '/attachment/plantekey/thumb/' + this.plant.img + } + + /* + get details(): any[] { + return Object.entries(this.plant).filter(e => this.include.has(e[0])) + } + */ +} diff --git a/src/app/plant-list-item/plant-list-item.component.html b/src/app/plant-list-item/plant-list-item.component.html new file mode 100644 index 0000000..e4825ed --- /dev/null +++ b/src/app/plant-list-item/plant-list-item.component.html @@ -0,0 +1,28 @@ +
+ {{ plant?.english || plant?.name }} +
+
+
+
+ +
+
+
+
+
Scientific name
+
{{ plant?.name }}
+
Family
+
{{ plant?.type }}
+
Spiritual name
+
{{ plant?.spiritual }}
+
Number of plants
+
{{ count | i18nPlural: specimen }}
+
+
+ +
+
+
\ No newline at end of file diff --git a/src/app/plant-list-item/plant-list-item.component.scss b/src/app/plant-list-item/plant-list-item.component.scss new file mode 100644 index 0000000..cc4fc9d --- /dev/null +++ b/src/app/plant-list-item/plant-list-item.component.scss @@ -0,0 +1,106 @@ +:host { + width: 10em; + height: 15em; + border-radius: 8px; + background: rgb(75 200 100); + margin-bottom: 5px; +} + +.title { + margin: 0; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 800; + height: 1.5em; + background-color: inherit; + width: inherit; + border-radius: 8px 8px 0 0; +} + +.english { + font-weight: 600; +} + +.name { + font-style: italic; +} + +.img { + cursor: pointer; + object-fit: fill; + border-radius: 8px; + vertical-align: middle; + width: 100%; + height: 100%; + object-fit: contain; +} + +.trails { + display: flex; + flex-wrap: nowrap; + justify-content: space-around; +} + +.info { + padding: 3px; + dl { + margin-block-start: 0; + margin-block-end: 0; + dt { + font-size: x-small; + text-decoration: underline; + font-style: italic; + } + dd { + margin-inline-start: 0; + } + } +} + +.flip-card { + height: 13.5em; + width: inherit; + background-color: inherit; + font-family: Arial, Helvetica, sans-serif; + border-radius: 0 0 8px 8px; + dt { + float: left; + clear: both; + } + dd { + float: right; + text-align: right; + } + .info { + flex: 1 1 0; + } + button { + margin: 5px; + } + + .flip-card-inner { + position: relative; + height: 100%; + width: 100%; + transform-style: preserve-3d; + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); + border-radius: 8px; + } + + .flip-card-inner > div { + position: absolute; + width: 100%; + height: 100%; + backface-visibility: hidden; + } + + .flip-card-back { + transform: rotateY(180deg); + display: flex; + flex-direction: column; + justify-content: space-between; + background: rgb(75 200 100); + } +} \ No newline at end of file diff --git a/src/app/plant-list-item/plant-list-item.component.ts b/src/app/plant-list-item/plant-list-item.component.ts new file mode 100644 index 0000000..20f7053 --- /dev/null +++ b/src/app/plant-list-item/plant-list-item.component.ts @@ -0,0 +1,46 @@ +import { Component, OnInit, Input } from '@angular/core' +import { Router } from '@angular/router' + +import { DataService } from '../data.service' +import { Plant } from '../models' +import { flipAnimation } from '../map/animation' + +export class Detail { + constructor( + public key: string, + public value: string + ) {} +} + +@Component({ + selector: 'app-plant-list-item', + templateUrl: './plant-list-item.component.html', + styleUrls: ['./plant-list-item.component.scss'], + animations: [flipAnimation], +}) +export class PlantListItemComponent { + constructor( + private router: Router, + public dataService: DataService + ) {} + + @Input() plant: Plant + @Input() withImage: boolean = false + @Input() count: number + + public isFlipped: boolean + + navigateToDetail() { + this.router.navigate(['plant', this.plant.id]) + } + + public flipCard(): void { + this.isFlipped = !this.isFlipped; + } + + specimen: {[k: string]: string} = { + '=0': 'No specimen', + '=1': '1 specimen', + 'other': '# specimen' + } +} \ No newline at end of file diff --git a/src/app/plant-list/plant-list.component.html b/src/app/plant-list/plant-list.component.html new file mode 100644 index 0000000..b7bb9c0 --- /dev/null +++ b/src/app/plant-list/plant-list.component.html @@ -0,0 +1,24 @@ + + + Search plant + + + + View all plants + + +
+ + + + + + +
\ No newline at end of file diff --git a/src/app/plant-list/plant-list.component.scss b/src/app/plant-list/plant-list.component.scss new file mode 100644 index 0000000..fe30e09 --- /dev/null +++ b/src/app/plant-list/plant-list.component.scss @@ -0,0 +1,20 @@ +.mat-toolbar { + justify-content: space-between; + background-color: inherit; +} + +.container { + display: flex; + flex-wrap: wrap; + justify-content: space-around; +} + +:host ::ng-deep .mdc-text-field { + background-color: inherit; + border: 1px dashed whitesmoke; +} + +.mat-toolbar { + margin-top: 2px; + margin-bottom: 5px; +} \ No newline at end of file diff --git a/src/app/plant-list/plant-list.component.ts b/src/app/plant-list/plant-list.component.ts new file mode 100644 index 0000000..3044908 --- /dev/null +++ b/src/app/plant-list/plant-list.component.ts @@ -0,0 +1,39 @@ +import { Component, OnInit, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' +import { DataService } from '../data.service' + +import { MessageService } from '../message.service' +import { Plant } from '../models' + +@Component({ + selector: 'app-plant-list', + templateUrl: './plant-list.component.html', + styleUrls: ['./plant-list.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class PlantListComponent implements OnInit { + showAll: boolean = false + searchText: string + constructor( + public messageService: MessageService, + private cdr: ChangeDetectorRef, + public dataService: DataService + ) {} + + filter() { + this.cdr.markForCheck() + } + + filterView(plant: Plant) { + if (!!this.searchText) { + return plant.isMatch(this.searchText) + } + else { + return this.showAll || this.dataService.plant_in_some_trail(plant.id) + } + } + + ngOnInit(): void { + this.dataService.all.subscribe() + } +} diff --git a/src/app/plantekey.service.spec.ts b/src/app/plantekey.service.spec.ts new file mode 100644 index 0000000..4a36acb --- /dev/null +++ b/src/app/plantekey.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { PlantekeyService } from './plantekey.service'; + +describe('PlantekeyService', () => { + let service: PlantekeyService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(PlantekeyService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/plantekey.service.ts b/src/app/plantekey.service.ts new file mode 100644 index 0000000..09e1af8 --- /dev/null +++ b/src/app/plantekey.service.ts @@ -0,0 +1,87 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpErrorResponse } from '@angular/common/http' +import { Observable, BehaviorSubject, Subject, EMPTY, of } from 'rxjs' +import { catchError, map , takeUntil } from 'rxjs/operators' + +import { MessageService } from './message.service' +import { Plant, Plants } from './models' + +@Injectable({ + providedIn: 'root' +}) +export class PlantekeyService { + public stopRequest: Subject = new Subject() + public plants: BehaviorSubject = new BehaviorSubject({}) + + constructor( + public httpClient: HttpClient, + public messageService: MessageService, + ) { + this.stopRequest.subscribe(_=>this.messageService.spinner.next(false)) + } + + getAllPlants(): Observable { + this.messageService.spinner.next(true) + return this.httpClient + .get('v1/plantekey/details') + .pipe(takeUntil(this.stopRequest)) + .pipe( + map( + plantList => { + this.messageService.spinner.next(false) + let plants: Plants = {} + plantList.forEach( + p => + plants[p.id] = new Plant( + p['ID'], + p['id'], + p['english'], + p['family'], + p['hindi'], + p['img'], + p['name'], + p['spiritual'], + p['tamil'], + p['type'], + p['description'], + p['habit'], + p['landscape'], + p['uses'], + p['planting'], + p['propagation'], + p['element'], + p['woody'], + p['latex'], + p['leaf_style'], + p['leaf_type'], + p['leaf_arrangement'], + p['leaf_aroma'], + p['leaf_length'], + p['leaf_width'], + p['flower_color'], + p['flower_aroma'], + p['flower_size'], + p['fruit_color'], + p['fruit_size'], + p['fruit_type'], + p['thorny'], + p['images'], + p['symbol'], + ) + ) + this.plants.next(plants) + this.plants.complete() + return plants + } + ), + catchError( + (err, caught) => { + console.error(err, caught) + this.messageService.message.next(`Network issue (${err.status})`) + this.messageService.spinner.next(false) + return EMPTY + } + ) + ) + } +} diff --git a/src/app/poi-popup/poi-popup.component.html b/src/app/poi-popup/poi-popup.component.html new file mode 100644 index 0000000..e7f8b0a --- /dev/null +++ b/src/app/poi-popup/poi-popup.component.html @@ -0,0 +1,24 @@ +
+ {{ poi?.name }} +
+
+
+
+
+ + +
+
{{ poi.type }}
+
+
+
+
+
Description
+
{{ poi?.description }}
+
Type
+
{{ poi?.type }}
+
+
+
+
+
\ No newline at end of file diff --git a/src/app/poi-popup/poi-popup.component.scss b/src/app/poi-popup/poi-popup.component.scss new file mode 100644 index 0000000..2e05801 --- /dev/null +++ b/src/app/poi-popup/poi-popup.component.scss @@ -0,0 +1,76 @@ +:host { + width: 10em; + height: 15em; + border-radius: 8px; + background: rgb(255, 247, 133); + margin-bottom: 5px; +} + +.title { + margin: 0; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 800; + height: 1.5em; + background-color: inherit; + width: inherit; + border-radius: 8px 8px 0 0; +} + +.dndZone { + height: 85%; + width: 100%; +} + +.img { + cursor: pointer; + object-fit: fill; + border-radius: 8px; + vertical-align: middle; + width: 100%; + height: 100%; + object-fit: contain; +} + +.type { + font-style: italic; + text-align: center; +} + +.flip-card { + height: 13.5em; + width: inherit; + background-color: inherit; + font-family: Arial, Helvetica, sans-serif; + border-radius: 0 0 8px 8px; + .flip-card-inner { + position: relative; + height: 100%; + width: 100%; + transform-style: preserve-3d; + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); + border-radius: 8px; + } + + .flip-card-inner > div { + position: absolute; + width: 100%; + height: 100%; + backface-visibility: hidden; + } + + .flip-card-back { + transform: rotateY(180deg); + display: flex; + flex-direction: column; + justify-content: space-between; + background: rgb(255, 247, 133); + dd { + max-height: 3em; + text-overflow: ellipsis; + line-height: normal; + } + } +} \ No newline at end of file diff --git a/src/app/poi-popup/poi-popup.component.ts b/src/app/poi-popup/poi-popup.component.ts new file mode 100644 index 0000000..5c835e2 --- /dev/null +++ b/src/app/poi-popup/poi-popup.component.ts @@ -0,0 +1,40 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from '@angular/core' + +import { Poi } from '../models' +import { ActionService } from '../action.service' +import { flipAnimation } from '../map/animation' + +@Component({ + selector: 'app-poi-popup', + templateUrl: './poi-popup.component.html', + styleUrls: ['./poi-popup.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + animations: [flipAnimation]}) +export class PoiPopupComponent { + @Input() poi: Poi + @ViewChild("fileDropRef", { static: false }) fileDropEl: ElementRef + public isFlipped: boolean + constructor( + public cdr: ChangeDetectorRef, + public actionService: ActionService + ) {} + + public flipCard(): void { + this.isFlipped = !this.isFlipped; + } + + onFileDropped(fileList: FileList) { + const formData = new FormData() + formData.set("file", fileList.item(0)) + this.actionService.upload('poi', 'photo', this.poi.id.toString(), formData).subscribe( + res => { + this.poi.photo = res['filename'] + this.cdr.markForCheck() + } + ) + } + + fileBrowseHandler(evt) { + console.log(evt) + } +} diff --git a/src/app/profile/profile.component.html b/src/app/profile/profile.component.html new file mode 100644 index 0000000..9df0576 --- /dev/null +++ b/src/app/profile/profile.component.html @@ -0,0 +1 @@ +

profile works!

diff --git a/src/app/profile/profile.component.scss b/src/app/profile/profile.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/app/profile/profile.component.spec.ts b/src/app/profile/profile.component.spec.ts new file mode 100644 index 0000000..246039d --- /dev/null +++ b/src/app/profile/profile.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ProfileComponent } from './profile.component'; + +describe('ProfileComponent', () => { + let component: ProfileComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ ProfileComponent ] + }) + .compileComponents(); + + fixture = TestBed.createComponent(ProfileComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/profile/profile.component.ts b/src/app/profile/profile.component.ts new file mode 100644 index 0000000..16fa22f --- /dev/null +++ b/src/app/profile/profile.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-profile', + templateUrl: './profile.component.html', + styleUrls: ['./profile.component.scss'] +}) +export class ProfileComponent { + +} diff --git a/src/app/services/auth-guard.service.spec.ts b/src/app/services/auth-guard.service.spec.ts new file mode 100644 index 0000000..35afd37 --- /dev/null +++ b/src/app/services/auth-guard.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthGuardService } from './auth-guard.service'; + +describe('AuthGuardService', () => { + let service: AuthGuardService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthGuardService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/auth-guard.service.ts b/src/app/services/auth-guard.service.ts new file mode 100644 index 0000000..74fe971 --- /dev/null +++ b/src/app/services/auth-guard.service.ts @@ -0,0 +1,22 @@ +import { Injectable } from '@angular/core' +import { ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router' +import { Observable } from 'rxjs' +import { AuthService } from './auth.service' + +@Injectable({ + providedIn: 'root' +}) +export class AuthGuardService {constructor( + private _authService: AuthService, + private _router: Router + ) { } + canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | Promise | boolean { + if (this._authService.getToken()) { + return true + } + // navigate to login page + this._router.navigate(['/login']) + // you can save redirect url so after authing we can move them back to the page they requested + return false + } +} \ No newline at end of file diff --git a/src/app/services/auth.service.spec.ts b/src/app/services/auth.service.spec.ts new file mode 100644 index 0000000..f1251ca --- /dev/null +++ b/src/app/services/auth.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let service: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(AuthService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts new file mode 100644 index 0000000..366c154 --- /dev/null +++ b/src/app/services/auth.service.ts @@ -0,0 +1,33 @@ +import { Injectable } from '@angular/core' +import { Router, ActivatedRoute, ParamMap } from '@angular/router' + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + constructor( + public router: Router, + public route: ActivatedRoute, + ) { + } + + getUserDetails() { + return localStorage.getItem('userInfo') ? JSON.parse(localStorage.getItem('userInfo')) : null + } + + setDataInLocalStorage(variableName, data) { + localStorage.setItem(variableName, data) + } + + getToken() { + return localStorage.getItem('token') + } + + clearToken() { + localStorage.removeItem('token') + } + + clearStorage() { + localStorage.clear() + } +} \ No newline at end of file diff --git a/src/app/services/interceptor-service.service.spec.ts b/src/app/services/interceptor-service.service.spec.ts new file mode 100644 index 0000000..000b114 --- /dev/null +++ b/src/app/services/interceptor-service.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { InterceptorService } from './interceptor-service.service'; + +describe('InterceptorServiceService', () => { + let service: InterceptorService + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(InterceptorService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/interceptor-service.service.ts b/src/app/services/interceptor-service.service.ts new file mode 100644 index 0000000..2779815 --- /dev/null +++ b/src/app/services/interceptor-service.service.ts @@ -0,0 +1,34 @@ +import { Injectable } from '@angular/core' +import { HttpEvent, HttpHandler, HttpRequest } from '@angular/common/http' +import { Observable } from 'rxjs' + +import { AuthService } from './auth.service' + +@Injectable({ + providedIn: 'root' +}) +export class InterceptorService { + + constructor( + private _auth: AuthService + ) { + } + + intercept( + request: HttpRequest, + next: HttpHandler + ): Observable> { + // XXX: Breaks form/multipart HTTP POST requests + //if (!request.headers.has('Content-Type')) { + // request = request.clone({ headers: request.headers.set('Content-Type', 'application/json') }) + //} + //request = request.clone({ headers: request.headers.set('Accept', 'application/json') }).clone({ + request = request.clone({ + setHeaders: { + Authorization: `Bearer ${this._auth.getToken()}` + } + }) + + return next.handle(request) + } +} \ No newline at end of file diff --git a/src/app/settings/settings.component.html b/src/app/settings/settings.component.html new file mode 100644 index 0000000..d1b7a8b --- /dev/null +++ b/src/app/settings/settings.component.html @@ -0,0 +1,126 @@ +
+

+ Settings +

+
+ {{ conf.user }} + +
+
+ + + + + + + + + Admin + + + + + + + Map + +
+ Background +
+ + {{ bms }} + {{ bms.key }} + +
+
+
+ Types of zones displayed on the map +
+ + {{ item.key }} + +
+
+ + Misc. +
+ + Vibrate + +
+
+ + + + Local data + + + Note: these options are temporary as data updates will be integrated + seamlessly in the future + + + + + + + About Tree Trail + +

Tree Trail is a free and Open Source project, + developped in Auroville, India. + It can also be used for other places, please contact us if you need help.

+

Who are we?

+
    +
  • Philippe May: project lead, technical design, development
  • +
  • Island Lescure: data contribution, botanical consultant
  • +
  • Dave Storey: communication
  • +
+

Contact: phil.treetrail at philome.mooo.com

+

Version: {{conf.bootstrap?.client.version }}

+
+ + + + Thank you notes + + We wish to address special thanks to all those who made Tree Trail possible, especially: +
    +
  • Auroville Botanical Garden (Paul Blanchflower and Glenn Baldwin): financial support, botanical data, feedbacks +
  • +
  • Auroville Project Coordination Group: help with funding
  • +
  • Foundation for World Education: financing of GPS equipments, hosting
  • +
+
+ diff --git a/src/app/settings/settings.component.scss b/src/app/settings/settings.component.scss new file mode 100644 index 0000000..51be5d1 --- /dev/null +++ b/src/app/settings/settings.component.scss @@ -0,0 +1,58 @@ +:host { + height: 100%; + padding: 5px 5px 0; + font-family: Arial, Helvetica, sans-serif; + + ::ng-deep .mat-expansion-panel-body { + font-family: Arial, Helvetica, sans-serif; + } +} + +.mat-mdc-card-actions { + text-align: center; +} + +.user-actions { + display: flex; + flex-direction: column; +} + +.user-actions button { + margin: 3px; +} + +.header { + display: flex; +} + +h1 { + text-align: center; + margin-bottom: 0; + flex: auto; +} + +.userCreds { + margin: 0 0 5px 0; +} + +.settings { + display: flex; + flex-direction: column; +} + +.admin { + .mat-expansion-panel-header-title { + color: red + } +} + +.h { + font-style: italic; + font-weight: bold; +} + +.mat-button-toggle-group { + --mat-standard-button-toggle-shape: 1em; + --mat-standard-button-toggle-selected-state-background-color: #88FF88AA; + --mat-standard-button-toggle-background-color: #44664422; +} \ No newline at end of file diff --git a/src/app/settings/settings.component.spec.ts b/src/app/settings/settings.component.spec.ts new file mode 100644 index 0000000..a3a508b --- /dev/null +++ b/src/app/settings/settings.component.spec.ts @@ -0,0 +1,25 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SettingsComponent } from './settings.component'; + +describe('SettingsComponent', () => { + let component: SettingsComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ SettingsComponent ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(SettingsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/settings/settings.component.ts b/src/app/settings/settings.component.ts new file mode 100644 index 0000000..498387d --- /dev/null +++ b/src/app/settings/settings.component.ts @@ -0,0 +1,25 @@ +import { Component, OnInit } from '@angular/core' +import { Router } from '@angular/router' + +import { ActionService } from '../action.service' +import { ConfigService, Config } from '../config.service' + +@Component({ + selector: 'app-settings', + templateUrl: './settings.component.html', + styleUrls: ['./settings.component.scss'] +}) +export class SettingsComponent implements OnInit { + public conf: Config + constructor( + public actionService: ActionService, + public configService: ConfigService, + public router: Router, + ) { } + + ngOnInit(): void { + this.configService.conf.subscribe( + conf => this.conf = conf + ) + } +} diff --git a/src/app/trail-detail/trail-detail.component.html b/src/app/trail-detail/trail-detail.component.html new file mode 100644 index 0000000..c7e084b --- /dev/null +++ b/src/app/trail-detail/trail-detail.component.html @@ -0,0 +1,34 @@ +
+

+ Trail: {{ trail.name }} +

+
+
+ +
+
+
Length
+
{{ trail.length.toFixed() }} m
+
Number of trees
+
{{ trail.treeList.length }}
+
Number of species
+
{{ (trail.getTreeBucket() | keyvalue).length }}
+ +
+
+ +

+ Discover these species on this trail: +

+
+
+ + +
+
+
diff --git a/src/app/trail-detail/trail-detail.component.scss b/src/app/trail-detail/trail-detail.component.scss new file mode 100644 index 0000000..c92a205 --- /dev/null +++ b/src/app/trail-detail/trail-detail.component.scss @@ -0,0 +1,53 @@ +:host { + font-family: Arial, Helvetica, sans-serif; + background: rgb(250 200 100 / 50%); +} + +.container { + margin: 0.5em; +} + +h1 { + margin: 0; + text-align: center; +} + +.name { + font-style: italic; +} + +.plant { + cursor: pointer; +} + +.mat-toolbar { + background-color: inherit; +} + +.plants { + display: flex; + flex-wrap: wrap; + justify-content: space-around; +} + +.viewport { + height: 100%; +} + +.mat-mdc-card-actions { + text-align: center; +} + +.content { + display: flex; + align-items: center; +} + +.photo { + max-height: 15em; + flex: 2 1 0; +} + +.content dl { + flex: 2 1 0; +} \ No newline at end of file diff --git a/src/app/trail-detail/trail-detail.component.ts b/src/app/trail-detail/trail-detail.component.ts new file mode 100644 index 0000000..b0d20f5 --- /dev/null +++ b/src/app/trail-detail/trail-detail.component.ts @@ -0,0 +1,44 @@ +import { Component, OnInit, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' +import { Router, ActivatedRoute, ParamMap } from '@angular/router' +import { switchMap, map } from 'rxjs/operators' + +import { DataService } from '../data.service' +import { All, Trail, Trails } from '../models' + +@Component({ + selector: 'app-trail-detail', + templateUrl: './trail-detail.component.html', + styleUrls: ['./trail-detail.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class TrailDetailComponent implements OnInit { + trail: Trail + + constructor( + private route: ActivatedRoute, + public router: Router, + public dataService: DataService, + public cdr: ChangeDetectorRef, + ) { } + + ngOnInit(): void { + this.route.paramMap.pipe( + switchMap((params: ParamMap) => + this.dataService.all.pipe(map( + (all: All) => all.trails[params.get('id')] + ) + ) + ) + ).subscribe( + trail => { + this.trail = trail + this.cdr.markForCheck() + } + ) + } + + showOnMap() { + this.router.navigate(['map'], this.trail.mapRouteArgs) + } +} diff --git a/src/app/trail-list-item/trail-list-item.component.html b/src/app/trail-list-item/trail-list-item.component.html new file mode 100644 index 0000000..72aec19 --- /dev/null +++ b/src/app/trail-list-item/trail-list-item.component.html @@ -0,0 +1,30 @@ +
+ {{ trail?.name }} +
+
+
+
+
+ +
+

{{ trail?.description }}

+
+
+
+
+
Length
{{ trail?.length.toFixed() }} m
+
Number of trees
{{ trail?.treeList.length }}
+
Number of species
{{ (trail?.getTreeBucket() | keyvalue)?.length }}
+
+
+ + +
+
+
\ No newline at end of file diff --git a/src/app/trail-list-item/trail-list-item.component.scss b/src/app/trail-list-item/trail-list-item.component.scss new file mode 100644 index 0000000..f4ffecd --- /dev/null +++ b/src/app/trail-list-item/trail-list-item.component.scss @@ -0,0 +1,123 @@ +:host { + width: 10em; + height: 15em; + border-radius: 8px; + background: rgb(250 200 100); + margin-bottom: 5px; +} + +.title { + margin: 0; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 800; + height: 1.5em; + background-color: inherit; + width: inherit; + border-radius: 8px 8px 0 0; +} + +.desc { + text-align: center; + padding: 3px; +} + +.dndZone { + height: 100%; + width: 100%; +} + +.img { + cursor: pointer; + object-fit: fill; + border-radius: 8px; + vertical-align: middle; + width: 100%; + height: 100%; + object-fit: contain; +} + +.trails { + display: flex; + flex-wrap: nowrap; + justify-content: space-around; +} + +.info { + padding: 3px; + dl { + margin-block-start: 0; + margin-block-end: 0; + dt { + font-size: x-small; + text-decoration: underline; + font-style: italic; + } + dd { + margin-inline-start: 0; + max-height: 3em; + text-overflow: ellipsis; + line-height: normal; + } + } +} + +.flip-card { + height: 13.5em; + width: inherit; + background-color: inherit; + font-family: Arial, Helvetica, sans-serif; + border-radius: 0 0 8px 8px; + dt { + float: left; + clear: both; + } + dd { + float: right; + text-align: right; + } + .info { + flex: 1 1 0; + } + button { + margin: 5px; + } + + .flip-card-inner { + position: relative; + height: 100%; + width: 100%; + transform-style: preserve-3d; + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); + border-radius: 8px; + } + + .flip-card-inner > div { + position: absolute; + width: 100%; + height: 100%; + backface-visibility: hidden; + } + + .flip-card-front { + display: flex; + flex-direction: column; + justify-content: space-between; + line-height: 100%; + img { + object-fit: cover; + max-height: 10em; + } + } + + .flip-card-back { + transform: rotateY(180deg); + display: flex; + flex-direction: column; + justify-content: space-between; + background: rgb(250 200 100); + line-height: 100%; + } +} \ No newline at end of file diff --git a/src/app/trail-list-item/trail-list-item.component.ts b/src/app/trail-list-item/trail-list-item.component.ts new file mode 100644 index 0000000..f9b5738 --- /dev/null +++ b/src/app/trail-list-item/trail-list-item.component.ts @@ -0,0 +1,78 @@ +import { Component, Input, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' +import { ActivatedRoute, Params, Router } from '@angular/router' + +import length from '@turf/length' + +import { Trail, Tree, TreeTrail, Plant } from '../models' +import { DataService } from '../data.service' +import { ActionService } from '../action.service' +import { flipAnimation } from '../map/animation' + +@Component({ + selector: 'app-trail-list-item', + templateUrl: './trail-list-item.component.html', + styleUrls: ['./trail-list-item.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + animations: [flipAnimation], +}) +export class TrailListItemComponent { + @Input() trail: Trail + @Input() withMapButton: Boolean = true + trees: Tree[] = [] + //treeBucket: {[plantekeyId: string]: Tree[]} = {} + + constructor( + public dataService: DataService, + public actionService: ActionService, + protected router: Router, + public cdr: ChangeDetectorRef, + ) {} + + public isFlipped: boolean + + public flipCard(): void { + this.isFlipped = !this.isFlipped; + } + + showOnMap(trail: Trail) { + this.router.navigate(['map'], trail.mapRouteArgs) + } + + showDetails(trail: Trail) { + this.router.navigate(['trail', trail.id]) + } + + onFileDropped(fileList: FileList) { + const formData = new FormData() + formData.set("file", fileList.item(0)) + this.actionService.upload('trail', 'photo', this.trail.id.toString(), formData).subscribe( + res => { + this.trail.photo = res['filename'] + this.cdr.markForCheck() + } + ) + } + + /* + compute() { + this.trees.forEach( + tree => { + if (!this.treeBucket[tree.plantekeyId]) { + this.treeBucket[tree.plantekeyId] = [] + } + this.treeBucket[tree.plantekeyId].push(tree) + } + ) + this.cdr.markForCheck() + } + */ + + /* + getTrees(): string { + return Object.entries(this.treeBucket).map( + ([plantekeyId, trees]) => `${trees[0].plant.english} (${trees.length})` + ).join(', ') + } + */ +} diff --git a/src/app/trail-list/trail-list.component.html b/src/app/trail-list/trail-list.component.html new file mode 100644 index 0000000..239dd57 --- /dev/null +++ b/src/app/trail-list/trail-list.component.html @@ -0,0 +1,7 @@ +
+ + +
\ No newline at end of file diff --git a/src/app/trail-list/trail-list.component.scss b/src/app/trail-list/trail-list.component.scss new file mode 100644 index 0000000..0ad3692 --- /dev/null +++ b/src/app/trail-list/trail-list.component.scss @@ -0,0 +1,10 @@ +:host { + background: rgb(250 200 100 / 50%); +} + +.container { + display: flex; + flex-wrap: wrap; + justify-content: space-around; + margin: 0.5em; +} diff --git a/src/app/trail-list/trail-list.component.ts b/src/app/trail-list/trail-list.component.ts new file mode 100644 index 0000000..42189ba --- /dev/null +++ b/src/app/trail-list/trail-list.component.ts @@ -0,0 +1,23 @@ +import { Component, OnInit, + ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core' + +import { DataService } from '../data.service' +import { ActionService } from '../action.service' + + +@Component({ + selector: 'app-trail-list', + templateUrl: './trail-list.component.html', + styleUrls: ['./trail-list.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, +}) +export class TrailListComponent implements OnInit { + constructor( + public actionService: ActionService, + public dataService: DataService, + public cdr: ChangeDetectorRef, + ) {} + + ngOnInit() { + } +} diff --git a/src/app/tree-detail/tree-detail.component.html b/src/app/tree-detail/tree-detail.component.html new file mode 100644 index 0000000..6c92aa5 --- /dev/null +++ b/src/app/tree-detail/tree-detail.component.html @@ -0,0 +1,46 @@ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ Scientific name + + {{ tree?.plant.name }} +
Trails + + {{ trail.name }} + +
Height
Comments
+ +
+
diff --git a/src/app/tree-detail/tree-detail.component.scss b/src/app/tree-detail/tree-detail.component.scss new file mode 100644 index 0000000..e2c7b85 --- /dev/null +++ b/src/app/tree-detail/tree-detail.component.scss @@ -0,0 +1,85 @@ +.container { + margin: .5em; + font-family: Arial, Helvetica, sans-serif; +} + +h1 { + cursor: pointer; + text-align: center; + margin-bottom: initial; +} + +.mat-mdc-card-content { + display: flex; + flex-direction: column; +} + +.mat-mdc-card-title { + margin: auto; + height: 2em; + flex: 0 0 0; +} + +.mat-mdc-card-title > button { + float: left; +} + +.row { + display: flex; + flex-wrap: wrap; +} + +.row1 th { + width: 7.5em; +} + +.row > * { + margin: 5px; + flex-grow: 1; +} + +.row table { + flex: 1 1 0; + border-spacing: 0; + width: 100%; + border-left: 1px solid grey; + border-right: 1px solid grey; + border-top: 1px solid grey; +} + +.row th, .row .title { + background: rgb(75 200 100 / 100%); + text-align: left; + color: #fff; + font-weight: 100; + padding: 2px 5px; +} + +th { + width: 0; +} + +th, td { + border-bottom: 1px solid grey; +} + +.row img { + border-right: 0; + flex-grow: 0; + max-width: 14em; + max-height: 20em; +} + +.row .title { + font-weight: bold; + text-align: center; +} + +.img { + height: fit-content; +} + +.plant-link { + text-align: center; + width: 100%; +} \ No newline at end of file diff --git a/src/app/tree-detail/tree-detail.component.ts b/src/app/tree-detail/tree-detail.component.ts new file mode 100644 index 0000000..2b875da --- /dev/null +++ b/src/app/tree-detail/tree-detail.component.ts @@ -0,0 +1,49 @@ +import { Component, OnInit } from '@angular/core'; +import { Router, ActivatedRoute, ParamMap } from '@angular/router' +import { Observable } from 'rxjs' +import { map, switchMap } from 'rxjs/operators' + +import { Tree } from '../models' +import { DataService } from '../data.service' + +@Component({ + selector: 'app-tree-detail', + templateUrl: './tree-detail.component.html', + styleUrls: ['./tree-detail.component.scss'] +}) +export class TreeDetailComponent implements OnInit { + constructor( + private route: ActivatedRoute, + public router: Router, + public dataService: DataService + ) { } + + tree: Tree + + ngOnInit(): void { + this.route.paramMap.pipe( + switchMap((params: ParamMap) => + this.dataService.all.pipe( + map( + all => { + if (all.trees) { + this.tree = all.trees[params.get('pekid')] + console.log(this.tree) + } + } + ) + ) + ) + ) + .subscribe() + } + + navigateToDetail() { + // this.router.navigate(['plant', this.tree.plant.id]) + this.router.navigate(['plant', this.tree.plant.id]) + } + + navigateToTrail(trail) { + this.router.navigate(['trail', trail.id]) + } +} \ No newline at end of file diff --git a/src/app/tree-popup/tree-popup.component.html b/src/app/tree-popup/tree-popup.component.html new file mode 100644 index 0000000..328d899 --- /dev/null +++ b/src/app/tree-popup/tree-popup.component.html @@ -0,0 +1,29 @@ +
+ {{ tree?.plant.english || tree?.plant.name }} +
+
+
+
+
+ +
+
+
+
+
+
Scientific name
+
{{ tree?.plant.name }}
+
Comment
+
{{ tree?.comments }}
+
Family
+
{{ tree?.plant.type }}
+
Spiritual name
+
{{ tree?.plant.spiritual }}
+
+
+ +
+
+
\ No newline at end of file diff --git a/src/app/tree-popup/tree-popup.component.scss b/src/app/tree-popup/tree-popup.component.scss new file mode 100644 index 0000000..88a3836 --- /dev/null +++ b/src/app/tree-popup/tree-popup.component.scss @@ -0,0 +1,114 @@ +:host { + width: 10em; + height: 15em; + border-radius: 8px; + background: rgb(75 200 100); + margin-bottom: 5px; +} + +.title { + margin: 0; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 800; + height: 1.5em; + background-color: inherit; + width: inherit; + border-radius: 8px 8px 0 0; +} + +.english { + font-weight: 600; +} + +.name { + font-style: italic; +} + +.img { + cursor: pointer; + object-fit: fill; + border-radius: 8px; + vertical-align: middle; + width: 100%; + height: 100%; + object-fit: contain; +} + +.trails { + display: flex; + flex-wrap: nowrap; + justify-content: space-around; +} + +.info { + padding: 3px; + dl { + margin-block-start: 0; + margin-block-end: 0; + dt { + font-size: x-small; + text-decoration: underline; + font-style: italic; + } + dd { + margin-inline-start: 0; + max-height: 3em; + text-overflow: ellipsis; + line-height: normal; + } + } +} + +.dndZone { + height: 100%; + width: 100%; +} + +.flip-card { + height: 13.5em; + width: inherit; + background-color: inherit; + font-family: Arial, Helvetica, sans-serif; + border-radius: 0 0 8px 8px; + dt { + float: left; + clear: both; + } + dd { + float: right; + text-align: right; + } + .info { + flex: 1 1 0; + } + button { + margin: 5px; + } + + .flip-card-inner { + position: relative; + height: 100%; + width: 100%; + transform-style: preserve-3d; + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); + border-radius: 8px; + } + + .flip-card-inner > div { + position: absolute; + width: 100%; + height: 100%; + backface-visibility: hidden; + } + + .flip-card-back { + transform: rotateY(180deg); + display: flex; + flex-direction: column; + justify-content: space-between; + background: rgb(75 200 100); + } +} diff --git a/src/app/tree-popup/tree-popup.component.ts b/src/app/tree-popup/tree-popup.component.ts new file mode 100644 index 0000000..4add185 --- /dev/null +++ b/src/app/tree-popup/tree-popup.component.ts @@ -0,0 +1,43 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core' +import { Router } from '@angular/router' + +import { Tree } from '../models' +import { ActionService } from '../action.service' +import { flipAnimation } from '../map/animation' + +@Component({ + selector: 'app-tree-popup', + templateUrl: './tree-popup.component.html', + styleUrls: ['./tree-popup.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush, + animations: [flipAnimation], +}) +export class TreePopupComponent { + @Input() tree: Tree + public isFlipped: boolean + + constructor( + public actionService: ActionService, + private router: Router, + public cdr: ChangeDetectorRef, + ) {} + + public flipCard(): void { + this.isFlipped = !this.isFlipped; + } + + navigateToDetail() { + this.router.navigate(['tree', this.tree.id]) + } + + onFileDropped(fileList: FileList) { + const formData = new FormData() + formData.set("file", fileList.item(0)) + this.actionService.upload('tree', 'photo', this.tree.id.toString(), formData).subscribe( + res => { + this.tree.photo = res['filename'] + this.cdr.markForCheck() + } + ) + } +} diff --git a/src/app/zone-popup/zone-popup.component.html b/src/app/zone-popup/zone-popup.component.html new file mode 100644 index 0000000..8dabf96 --- /dev/null +++ b/src/app/zone-popup/zone-popup.component.html @@ -0,0 +1,23 @@ +
+ {{ zone?.name }} +
+
+
+
+
Type: {{ zone.type }}
+
+
+
+
Description
+
{{ zone?.description }}
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/src/app/zone-popup/zone-popup.component.scss b/src/app/zone-popup/zone-popup.component.scss new file mode 100644 index 0000000..9334a71 --- /dev/null +++ b/src/app/zone-popup/zone-popup.component.scss @@ -0,0 +1,117 @@ +:host { + width: 10em; + height: 15em; + border-radius: 8px; + background: rgb(250 200 100); + margin-bottom: 5px; +} + +.title { + margin: 0; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + font-weight: 800; + height: 1.5em; + background-color: inherit; + width: inherit; + border-radius: 8px 8px 0 0; +} + +.desc { + text-align: center; + padding: 3px; +} + +.dndZone { + height: 100%; + width: 100%; +} + +.img { + cursor: pointer; + object-fit: fill; + border-radius: 8px; + vertical-align: middle; + width: 100%; + height: 100%; + object-fit: contain; +} + +.trails { + display: flex; + flex-wrap: nowrap; + justify-content: space-around; +} + +.info { + padding: 3px; + dl { + margin-block-start: 0; + margin-block-end: 0; + dt { + font-size: x-small; + text-decoration: underline; + font-style: italic; + } + dd { + margin-inline-start: 0; + max-height: 3em; + text-overflow: ellipsis; + line-height: normal; + } + } +} + +.flip-card { + height: 13.5em; + width: inherit; + background-color: inherit; + font-family: Arial, Helvetica, sans-serif; + border-radius: 0 0 8px 8px; + dt { + float: left; + clear: both; + } + dd { + float: right; + text-align: right; + } + .info { + flex: 1 1 0; + } + button { + margin: 5px; + } + + .flip-card-inner { + position: relative; + height: 100%; + width: 100%; + transform-style: preserve-3d; + box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2); + border-radius: 8px; + } + + .flip-card-inner > div { + position: absolute; + width: 100%; + height: 100%; + backface-visibility: hidden; + } + + .flip-card-front { + display: flex; + flex-direction: column; + justify-content: space-between; + } + + .flip-card-back { + transform: rotateY(180deg); + display: flex; + flex-direction: column; + justify-content: space-between; + background: rgb(250 200 100); + } +} diff --git a/src/app/zone-popup/zone-popup.component.ts b/src/app/zone-popup/zone-popup.component.ts new file mode 100644 index 0000000..31ce4cb --- /dev/null +++ b/src/app/zone-popup/zone-popup.component.ts @@ -0,0 +1,26 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core' +import { Router } from '@angular/router' + +import { Zone } from '../models' +import { flipAnimation } from '../map/animation' + +@Component({ + selector: 'app-zone-popup', + templateUrl: './zone-popup.component.html', + styleUrl: './zone-popup.component.scss', + changeDetection: ChangeDetectionStrategy.OnPush, + animations: [flipAnimation], +}) +export class ZonePopupComponent { + @Input() zone: Zone + public isFlipped: boolean + + constructor( + private router: Router, + public cdr: ChangeDetectorRef, + ) {} + + public flipCard(): void { + this.isFlipped = !this.isFlipped; + } +} diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/fonts/.gitignore b/src/assets/fonts/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/src/assets/fonts/TenderleafRegular.ttf b/src/assets/fonts/TenderleafRegular.ttf new file mode 100644 index 0000000..1d24270 Binary files /dev/null and b/src/assets/fonts/TenderleafRegular.ttf differ diff --git a/src/assets/fonts/TreetrailSymbols.ttf b/src/assets/fonts/TreetrailSymbols.ttf new file mode 100644 index 0000000..bbcfbcf Binary files /dev/null and b/src/assets/fonts/TreetrailSymbols.ttf differ diff --git a/src/assets/fonts/gisafSymbols.bf b/src/assets/fonts/gisafSymbols.bf new file mode 100644 index 0000000..81de10a --- /dev/null +++ b/src/assets/fonts/gisafSymbols.bf @@ -0,0 +1,1888 @@ + + +3.16 + + +GisafSymbols +GisafSymbols +Regular +false +false +GisafSymbols +GisafSymbols +Version 1.0 +Font for Gisaf symbols +SIL Open Font License + + +SIL Open Font License + + +http://scripts.sil.org/OFL +400 +1024 + + +Philippe May + + +-10 +3.5 +false +false + + + 84 + 70.26179 + 56 + 0 + -20 + -27 + 10 + + + + + + + + +GisafSymbols + +true +true +false +false +true +true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/0-255.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/0-255.pbf new file mode 100644 index 0000000..449deea Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/0-255.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/1024-1279.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/1024-1279.pbf new file mode 100644 index 0000000..0f9110d Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/1024-1279.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/10240-10495.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/10240-10495.pbf new file mode 100644 index 0000000..6d814e9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/10240-10495.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 10240-10495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/10496-10751.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/10496-10751.pbf new file mode 100644 index 0000000..137018d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/10496-10751.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 10496-10751 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/10752-11007.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/10752-11007.pbf new file mode 100644 index 0000000..2203a84 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/10752-11007.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 10752-11007 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/11008-11263.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/11008-11263.pbf new file mode 100644 index 0000000..7be7a67 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/11008-11263.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 11008-11263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/11264-11519.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/11264-11519.pbf new file mode 100644 index 0000000..2a0a167 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/11264-11519.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/11520-11775.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/11520-11775.pbf new file mode 100644 index 0000000..2537cbb Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/11520-11775.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/11776-12031.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/11776-12031.pbf new file mode 100644 index 0000000..9fd68f6 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/11776-12031.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/12032-12287.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/12032-12287.pbf new file mode 100644 index 0000000..c102a30 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/12032-12287.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 12032-12287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/12288-12543.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/12288-12543.pbf new file mode 100644 index 0000000..4f8d440 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/12288-12543.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 12288-12543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/12544-12799.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/12544-12799.pbf new file mode 100644 index 0000000..557807e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/12544-12799.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 12544-12799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/1280-1535.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/1280-1535.pbf new file mode 100644 index 0000000..67e9d82 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/1280-1535.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/12800-13055.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/12800-13055.pbf new file mode 100644 index 0000000..51e624b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/12800-13055.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 12800-13055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/13056-13311.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/13056-13311.pbf new file mode 100644 index 0000000..f9a8b5e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/13056-13311.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 13056-13311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/13312-13567.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/13312-13567.pbf new file mode 100644 index 0000000..d16fc60 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/13312-13567.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 13312-13567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/13568-13823.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/13568-13823.pbf new file mode 100644 index 0000000..489446e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/13568-13823.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 13568-13823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/13824-14079.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/13824-14079.pbf new file mode 100644 index 0000000..cbc322d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/13824-14079.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 13824-14079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/14080-14335.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/14080-14335.pbf new file mode 100644 index 0000000..a798fbc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/14080-14335.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 14080-14335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/14336-14591.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/14336-14591.pbf new file mode 100644 index 0000000..bc8f462 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/14336-14591.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 14336-14591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/14592-14847.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/14592-14847.pbf new file mode 100644 index 0000000..0f3fb3a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/14592-14847.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 14592-14847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/14848-15103.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/14848-15103.pbf new file mode 100644 index 0000000..b5802c5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/14848-15103.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 14848-15103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/15104-15359.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/15104-15359.pbf new file mode 100644 index 0000000..e6aaef8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/15104-15359.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 15104-15359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/1536-1791.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/1536-1791.pbf new file mode 100644 index 0000000..3088024 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/1536-1791.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 1536-1791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/15360-15615.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/15360-15615.pbf new file mode 100644 index 0000000..7040e42 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/15360-15615.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 15360-15615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/15616-15871.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/15616-15871.pbf new file mode 100644 index 0000000..d32123e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/15616-15871.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 15616-15871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/15872-16127.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/15872-16127.pbf new file mode 100644 index 0000000..27055cb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/15872-16127.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 15872-16127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/16128-16383.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/16128-16383.pbf new file mode 100644 index 0000000..a887533 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/16128-16383.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 16128-16383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/16384-16639.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/16384-16639.pbf new file mode 100644 index 0000000..e1eceb1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/16384-16639.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 16384-16639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/16640-16895.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/16640-16895.pbf new file mode 100644 index 0000000..d4209c4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/16640-16895.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 16640-16895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/16896-17151.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/16896-17151.pbf new file mode 100644 index 0000000..f769104 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/16896-17151.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 16896-17151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/17152-17407.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/17152-17407.pbf new file mode 100644 index 0000000..7de85fe --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/17152-17407.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 17152-17407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/17408-17663.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/17408-17663.pbf new file mode 100644 index 0000000..6f2eb05 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/17408-17663.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 17408-17663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/17664-17919.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/17664-17919.pbf new file mode 100644 index 0000000..470fcfd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/17664-17919.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 17664-17919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/1792-2047.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/1792-2047.pbf new file mode 100644 index 0000000..f72a8ad --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/1792-2047.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 1792-2047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/17920-18175.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/17920-18175.pbf new file mode 100644 index 0000000..811a000 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/17920-18175.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 17920-18175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/18176-18431.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/18176-18431.pbf new file mode 100644 index 0000000..c799970 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/18176-18431.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 18176-18431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/18432-18687.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/18432-18687.pbf new file mode 100644 index 0000000..2e62272 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/18432-18687.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 18432-18687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/18688-18943.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/18688-18943.pbf new file mode 100644 index 0000000..55f33d3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/18688-18943.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 18688-18943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/18944-19199.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/18944-19199.pbf new file mode 100644 index 0000000..276c3c2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/18944-19199.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 18944-19199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/19200-19455.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/19200-19455.pbf new file mode 100644 index 0000000..96bc219 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/19200-19455.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 19200-19455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/19456-19711.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/19456-19711.pbf new file mode 100644 index 0000000..17f642f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/19456-19711.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 19456-19711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/19712-19967.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/19712-19967.pbf new file mode 100644 index 0000000..f66d081 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/19712-19967.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 19712-19967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/19968-20223.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/19968-20223.pbf new file mode 100644 index 0000000..469f142 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/19968-20223.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 19968-20223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/20224-20479.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/20224-20479.pbf new file mode 100644 index 0000000..1999957 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/20224-20479.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 20224-20479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/2048-2303.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/2048-2303.pbf new file mode 100644 index 0000000..9f5ef44 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/2048-2303.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 2048-2303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/20480-20735.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/20480-20735.pbf new file mode 100644 index 0000000..69d6076 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/20480-20735.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 20480-20735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/20736-20991.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/20736-20991.pbf new file mode 100644 index 0000000..5570d1c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/20736-20991.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 20736-20991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/20992-21247.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/20992-21247.pbf new file mode 100644 index 0000000..8fa0761 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/20992-21247.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 20992-21247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/21248-21503.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/21248-21503.pbf new file mode 100644 index 0000000..27644d6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/21248-21503.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 21248-21503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/21504-21759.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/21504-21759.pbf new file mode 100644 index 0000000..72bc8f0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/21504-21759.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 21504-21759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/21760-22015.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/21760-22015.pbf new file mode 100644 index 0000000..3c74c0f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/21760-22015.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 21760-22015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/22016-22271.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/22016-22271.pbf new file mode 100644 index 0000000..f7d2a04 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/22016-22271.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 22016-22271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/22272-22527.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/22272-22527.pbf new file mode 100644 index 0000000..f5aecdb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/22272-22527.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 22272-22527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/22528-22783.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/22528-22783.pbf new file mode 100644 index 0000000..f6816d0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/22528-22783.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 22528-22783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/22784-23039.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/22784-23039.pbf new file mode 100644 index 0000000..99874db --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/22784-23039.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 22784-23039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/2304-2559.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/2304-2559.pbf new file mode 100644 index 0000000..21bc470 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/2304-2559.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 2304-2559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/23040-23295.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/23040-23295.pbf new file mode 100644 index 0000000..c3456ad --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/23040-23295.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 23040-23295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/23296-23551.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/23296-23551.pbf new file mode 100644 index 0000000..ff91d90 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/23296-23551.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 23296-23551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/23552-23807.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/23552-23807.pbf new file mode 100644 index 0000000..5754a47 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/23552-23807.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 23552-23807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/23808-24063.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/23808-24063.pbf new file mode 100644 index 0000000..18e03b4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/23808-24063.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 23808-24063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/24064-24319.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/24064-24319.pbf new file mode 100644 index 0000000..2217ced --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/24064-24319.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 24064-24319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/24320-24575.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/24320-24575.pbf new file mode 100644 index 0000000..346af82 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/24320-24575.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 24320-24575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/24576-24831.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/24576-24831.pbf new file mode 100644 index 0000000..c826382 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/24576-24831.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 24576-24831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/24832-25087.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/24832-25087.pbf new file mode 100644 index 0000000..3369b41 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/24832-25087.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 24832-25087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/25088-25343.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/25088-25343.pbf new file mode 100644 index 0000000..af00107 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/25088-25343.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 25088-25343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/25344-25599.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/25344-25599.pbf new file mode 100644 index 0000000..66a162f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/25344-25599.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 25344-25599 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/256-511.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/256-511.pbf new file mode 100644 index 0000000..0bff339 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/256-511.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/2560-2815.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/2560-2815.pbf new file mode 100644 index 0000000..97f9c88 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/2560-2815.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 2560-2815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/25600-25855.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/25600-25855.pbf new file mode 100644 index 0000000..2f55711 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/25600-25855.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 25600-25855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/25856-26111.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/25856-26111.pbf new file mode 100644 index 0000000..311d925 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/25856-26111.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 25856-26111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/26112-26367.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/26112-26367.pbf new file mode 100644 index 0000000..6a00244 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/26112-26367.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 26112-26367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/26368-26623.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/26368-26623.pbf new file mode 100644 index 0000000..e0e00c1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/26368-26623.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 26368-26623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/26624-26879.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/26624-26879.pbf new file mode 100644 index 0000000..0a7ad2a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/26624-26879.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 26624-26879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/26880-27135.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/26880-27135.pbf new file mode 100644 index 0000000..1ca845a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/26880-27135.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 26880-27135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/27136-27391.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/27136-27391.pbf new file mode 100644 index 0000000..eb05272 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/27136-27391.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 27136-27391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/27392-27647.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/27392-27647.pbf new file mode 100644 index 0000000..4376976 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/27392-27647.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 27392-27647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/27648-27903.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/27648-27903.pbf new file mode 100644 index 0000000..073b70b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/27648-27903.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 27648-27903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/27904-28159.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/27904-28159.pbf new file mode 100644 index 0000000..fda9312 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/27904-28159.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 27904-28159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/2816-3071.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/2816-3071.pbf new file mode 100644 index 0000000..51c2d76 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/2816-3071.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 2816-3071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/28160-28415.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/28160-28415.pbf new file mode 100644 index 0000000..ebec463 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/28160-28415.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 28160-28415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/28416-28671.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/28416-28671.pbf new file mode 100644 index 0000000..e930822 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/28416-28671.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 28416-28671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/28672-28927.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/28672-28927.pbf new file mode 100644 index 0000000..e9d95ce --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/28672-28927.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 28672-28927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/28928-29183.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/28928-29183.pbf new file mode 100644 index 0000000..887c9d2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/28928-29183.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 28928-29183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/29184-29439.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/29184-29439.pbf new file mode 100644 index 0000000..7915fed --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/29184-29439.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 29184-29439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/29440-29695.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/29440-29695.pbf new file mode 100644 index 0000000..e9ae7f6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/29440-29695.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 29440-29695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/29696-29951.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/29696-29951.pbf new file mode 100644 index 0000000..9776dd4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/29696-29951.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 29696-29951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/29952-30207.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/29952-30207.pbf new file mode 100644 index 0000000..51331ca --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/29952-30207.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 29952-30207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/30208-30463.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/30208-30463.pbf new file mode 100644 index 0000000..43d7dd4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/30208-30463.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 30208-30463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/30464-30719.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/30464-30719.pbf new file mode 100644 index 0000000..66953cf --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/30464-30719.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 30464-30719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/3072-3327.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/3072-3327.pbf new file mode 100644 index 0000000..b485dde --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/3072-3327.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 3072-3327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/30720-30975.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/30720-30975.pbf new file mode 100644 index 0000000..00dce24 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/30720-30975.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 30720-30975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/30976-31231.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/30976-31231.pbf new file mode 100644 index 0000000..de35f45 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/30976-31231.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 30976-31231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/31232-31487.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/31232-31487.pbf new file mode 100644 index 0000000..50cc15a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/31232-31487.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 31232-31487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/31488-31743.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/31488-31743.pbf new file mode 100644 index 0000000..db12f48 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/31488-31743.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 31488-31743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/31744-31999.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/31744-31999.pbf new file mode 100644 index 0000000..23029fb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/31744-31999.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 31744-31999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/32000-32255.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/32000-32255.pbf new file mode 100644 index 0000000..01ea9be --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/32000-32255.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 32000-32255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/32256-32511.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/32256-32511.pbf new file mode 100644 index 0000000..298a0c9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/32256-32511.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 32256-32511 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/32512-32767.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/32512-32767.pbf new file mode 100644 index 0000000..6edf2fe --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/32512-32767.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 32512-32767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/32768-33023.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/32768-33023.pbf new file mode 100644 index 0000000..3592082 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/32768-33023.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 32768-33023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/33024-33279.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/33024-33279.pbf new file mode 100644 index 0000000..9a6c78b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/33024-33279.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 33024-33279 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/3328-3583.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/3328-3583.pbf new file mode 100644 index 0000000..3363d6e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/3328-3583.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 3328-3583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/33280-33535.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/33280-33535.pbf new file mode 100644 index 0000000..95cbf8f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/33280-33535.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 33280-33535 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/33536-33791.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/33536-33791.pbf new file mode 100644 index 0000000..31bff95 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/33536-33791.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 33536-33791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/33792-34047.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/33792-34047.pbf new file mode 100644 index 0000000..2911920 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/33792-34047.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 33792-34047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/34048-34303.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/34048-34303.pbf new file mode 100644 index 0000000..6a40dc3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/34048-34303.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 34048-34303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/34304-34559.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/34304-34559.pbf new file mode 100644 index 0000000..2a1ae36 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/34304-34559.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 34304-34559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/34560-34815.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/34560-34815.pbf new file mode 100644 index 0000000..7e8015c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/34560-34815.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 34560-34815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/34816-35071.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/34816-35071.pbf new file mode 100644 index 0000000..cc12033 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/34816-35071.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 34816-35071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/35072-35327.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/35072-35327.pbf new file mode 100644 index 0000000..51cae4a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/35072-35327.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 35072-35327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/35328-35583.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/35328-35583.pbf new file mode 100644 index 0000000..599454e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/35328-35583.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 35328-35583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/35584-35839.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/35584-35839.pbf new file mode 100644 index 0000000..1dbb54b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/35584-35839.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 35584-35839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/3584-3839.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/3584-3839.pbf new file mode 100644 index 0000000..4ebb2b6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/3584-3839.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 3584-3839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/35840-36095.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/35840-36095.pbf new file mode 100644 index 0000000..87db399 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/35840-36095.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 35840-36095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/36096-36351.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/36096-36351.pbf new file mode 100644 index 0000000..9a529c9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/36096-36351.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 36096-36351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/36352-36607.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/36352-36607.pbf new file mode 100644 index 0000000..5a6f938 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/36352-36607.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 36352-36607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/36608-36863.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/36608-36863.pbf new file mode 100644 index 0000000..7df4e70 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/36608-36863.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 36608-36863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/36864-37119.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/36864-37119.pbf new file mode 100644 index 0000000..07db67f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/36864-37119.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 36864-37119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/37120-37375.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/37120-37375.pbf new file mode 100644 index 0000000..a90912d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/37120-37375.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 37120-37375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/37376-37631.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/37376-37631.pbf new file mode 100644 index 0000000..7354a9d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/37376-37631.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 37376-37631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/37632-37887.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/37632-37887.pbf new file mode 100644 index 0000000..4d89145 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/37632-37887.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 37632-37887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/37888-38143.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/37888-38143.pbf new file mode 100644 index 0000000..60d11f2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/37888-38143.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 37888-38143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/38144-38399.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/38144-38399.pbf new file mode 100644 index 0000000..b90a03f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/38144-38399.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 38144-38399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/3840-4095.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/3840-4095.pbf new file mode 100644 index 0000000..f66a413 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/3840-4095.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 3840-4095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/38400-38655.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/38400-38655.pbf new file mode 100644 index 0000000..6c6d371 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/38400-38655.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 38400-38655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/38656-38911.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/38656-38911.pbf new file mode 100644 index 0000000..f0f7d4e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/38656-38911.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 38656-38911 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/38912-39167.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/38912-39167.pbf new file mode 100644 index 0000000..892c3b5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/38912-39167.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 38912-39167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/39168-39423.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/39168-39423.pbf new file mode 100644 index 0000000..77d45f7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/39168-39423.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 39168-39423 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/39424-39679.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/39424-39679.pbf new file mode 100644 index 0000000..2d8bc55 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/39424-39679.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 39424-39679 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/39680-39935.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/39680-39935.pbf new file mode 100644 index 0000000..1cae594 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/39680-39935.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 39680-39935 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/39936-40191.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/39936-40191.pbf new file mode 100644 index 0000000..a88c9ef --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/39936-40191.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 39936-40191 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/40192-40447.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/40192-40447.pbf new file mode 100644 index 0000000..e49d1cc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/40192-40447.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 40192-40447 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/40448-40703.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/40448-40703.pbf new file mode 100644 index 0000000..93fc022 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/40448-40703.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 40448-40703 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/40704-40959.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/40704-40959.pbf new file mode 100644 index 0000000..421d7fa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/40704-40959.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 40704-40959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/4096-4351.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/4096-4351.pbf new file mode 100644 index 0000000..b0340b9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/4096-4351.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 4096-4351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/40960-41215.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/40960-41215.pbf new file mode 100644 index 0000000..9d5a701 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/40960-41215.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 40960-41215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/41216-41471.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/41216-41471.pbf new file mode 100644 index 0000000..c2d22aa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/41216-41471.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 41216-41471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/41472-41727.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/41472-41727.pbf new file mode 100644 index 0000000..5d06204 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/41472-41727.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 41472-41727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/41728-41983.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/41728-41983.pbf new file mode 100644 index 0000000..f9b1961 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/41728-41983.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 41728-41983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/41984-42239.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/41984-42239.pbf new file mode 100644 index 0000000..ba3392e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/41984-42239.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 41984-42239 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/42240-42495.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/42240-42495.pbf new file mode 100644 index 0000000..543bd75 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/42240-42495.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 42240-42495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/42496-42751.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/42496-42751.pbf new file mode 100644 index 0000000..1057613 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/42496-42751.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/42752-43007.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/42752-43007.pbf new file mode 100644 index 0000000..5f786da Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/42752-43007.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/43008-43263.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/43008-43263.pbf new file mode 100644 index 0000000..1e2cd55 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/43008-43263.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 43008-43263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/43264-43519.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/43264-43519.pbf new file mode 100644 index 0000000..670dee9 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/43264-43519.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/4352-4607.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/4352-4607.pbf new file mode 100644 index 0000000..e41870c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/4352-4607.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 4352-4607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/43520-43775.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/43520-43775.pbf new file mode 100644 index 0000000..b4bd4da --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/43520-43775.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 43520-43775 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/43776-44031.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/43776-44031.pbf new file mode 100644 index 0000000..7f6e1b1 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/43776-44031.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/44032-44287.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/44032-44287.pbf new file mode 100644 index 0000000..19a3992 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/44032-44287.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 44032-44287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/44288-44543.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/44288-44543.pbf new file mode 100644 index 0000000..a61f0ef --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/44288-44543.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 44288-44543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/44544-44799.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/44544-44799.pbf new file mode 100644 index 0000000..b189200 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/44544-44799.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 44544-44799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/44800-45055.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/44800-45055.pbf new file mode 100644 index 0000000..9172083 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/44800-45055.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 44800-45055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/45056-45311.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/45056-45311.pbf new file mode 100644 index 0000000..8a2adee --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/45056-45311.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 45056-45311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/45312-45567.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/45312-45567.pbf new file mode 100644 index 0000000..1b49a6e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/45312-45567.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 45312-45567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/45568-45823.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/45568-45823.pbf new file mode 100644 index 0000000..a4823c3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/45568-45823.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 45568-45823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/45824-46079.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/45824-46079.pbf new file mode 100644 index 0000000..33ee166 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/45824-46079.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 45824-46079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/4608-4863.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/4608-4863.pbf new file mode 100644 index 0000000..c395a75 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/4608-4863.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 4608-4863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/46080-46335.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/46080-46335.pbf new file mode 100644 index 0000000..fea983b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/46080-46335.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 46080-46335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/46336-46591.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/46336-46591.pbf new file mode 100644 index 0000000..1cddc40 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/46336-46591.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 46336-46591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/46592-46847.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/46592-46847.pbf new file mode 100644 index 0000000..5ca9c9b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/46592-46847.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 46592-46847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/46848-47103.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/46848-47103.pbf new file mode 100644 index 0000000..6cd7519 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/46848-47103.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 46848-47103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/47104-47359.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/47104-47359.pbf new file mode 100644 index 0000000..e560668 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/47104-47359.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 47104-47359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/47360-47615.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/47360-47615.pbf new file mode 100644 index 0000000..c19dea9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/47360-47615.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 47360-47615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/47616-47871.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/47616-47871.pbf new file mode 100644 index 0000000..87de915 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/47616-47871.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 47616-47871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/47872-48127.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/47872-48127.pbf new file mode 100644 index 0000000..188d2c9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/47872-48127.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 47872-48127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/48128-48383.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/48128-48383.pbf new file mode 100644 index 0000000..4a98639 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/48128-48383.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 48128-48383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/48384-48639.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/48384-48639.pbf new file mode 100644 index 0000000..2ee1deb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/48384-48639.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 48384-48639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/4864-5119.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/4864-5119.pbf new file mode 100644 index 0000000..f1bbc0b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/4864-5119.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 4864-5119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/48640-48895.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/48640-48895.pbf new file mode 100644 index 0000000..6836230 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/48640-48895.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 48640-48895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/48896-49151.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/48896-49151.pbf new file mode 100644 index 0000000..2d08277 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/48896-49151.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 48896-49151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/49152-49407.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/49152-49407.pbf new file mode 100644 index 0000000..0c6e98a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/49152-49407.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 49152-49407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/49408-49663.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/49408-49663.pbf new file mode 100644 index 0000000..2dbe866 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/49408-49663.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 49408-49663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/49664-49919.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/49664-49919.pbf new file mode 100644 index 0000000..a1d3e0a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/49664-49919.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 49664-49919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/49920-50175.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/49920-50175.pbf new file mode 100644 index 0000000..83abdc2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/49920-50175.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 49920-50175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/50176-50431.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/50176-50431.pbf new file mode 100644 index 0000000..1522f0d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/50176-50431.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 50176-50431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/50432-50687.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/50432-50687.pbf new file mode 100644 index 0000000..5c93d55 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/50432-50687.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 50432-50687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/50688-50943.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/50688-50943.pbf new file mode 100644 index 0000000..c7a040b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/50688-50943.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 50688-50943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/50944-51199.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/50944-51199.pbf new file mode 100644 index 0000000..3185d49 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/50944-51199.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 50944-51199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/512-767.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/512-767.pbf new file mode 100644 index 0000000..4c53917 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/512-767.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/5120-5375.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/5120-5375.pbf new file mode 100644 index 0000000..b88115e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/5120-5375.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 5120-5375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/51200-51455.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/51200-51455.pbf new file mode 100644 index 0000000..e159bb8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/51200-51455.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 51200-51455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/51456-51711.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/51456-51711.pbf new file mode 100644 index 0000000..344a894 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/51456-51711.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 51456-51711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/51712-51967.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/51712-51967.pbf new file mode 100644 index 0000000..c2f8355 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/51712-51967.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 51712-51967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/51968-52223.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/51968-52223.pbf new file mode 100644 index 0000000..7c2bfe2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/51968-52223.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 51968-52223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/52224-52479.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/52224-52479.pbf new file mode 100644 index 0000000..0bbe69d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/52224-52479.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 52224-52479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/52480-52735.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/52480-52735.pbf new file mode 100644 index 0000000..60c757a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/52480-52735.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 52480-52735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/52736-52991.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/52736-52991.pbf new file mode 100644 index 0000000..6cf29ee --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/52736-52991.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 52736-52991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/52992-53247.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/52992-53247.pbf new file mode 100644 index 0000000..093b95b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/52992-53247.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 52992-53247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/53248-53503.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/53248-53503.pbf new file mode 100644 index 0000000..748ba71 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/53248-53503.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 53248-53503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/53504-53759.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/53504-53759.pbf new file mode 100644 index 0000000..0fd1723 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/53504-53759.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 53504-53759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/5376-5631.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/5376-5631.pbf new file mode 100644 index 0000000..6145670 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/5376-5631.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 5376-5631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/53760-54015.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/53760-54015.pbf new file mode 100644 index 0000000..4bfc5a6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/53760-54015.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 53760-54015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/54016-54271.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/54016-54271.pbf new file mode 100644 index 0000000..e5a0b4c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/54016-54271.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 54016-54271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/54272-54527.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/54272-54527.pbf new file mode 100644 index 0000000..73d48fa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/54272-54527.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 54272-54527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/54528-54783.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/54528-54783.pbf new file mode 100644 index 0000000..0cf6eca --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/54528-54783.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 54528-54783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/54784-55039.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/54784-55039.pbf new file mode 100644 index 0000000..9e2bbb6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/54784-55039.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 54784-55039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/55040-55295.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/55040-55295.pbf new file mode 100644 index 0000000..f9e0260 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/55040-55295.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 55040-55295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/55296-55551.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/55296-55551.pbf new file mode 100644 index 0000000..12b76d2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/55296-55551.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 55296-55551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/55552-55807.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/55552-55807.pbf new file mode 100644 index 0000000..9571f86 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/55552-55807.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 55552-55807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/55808-56063.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/55808-56063.pbf new file mode 100644 index 0000000..c7487dc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/55808-56063.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 55808-56063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/56064-56319.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/56064-56319.pbf new file mode 100644 index 0000000..484d6bd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/56064-56319.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 56064-56319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/5632-5887.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/5632-5887.pbf new file mode 100644 index 0000000..a9ece78 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/5632-5887.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 5632-5887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/56320-56575.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/56320-56575.pbf new file mode 100644 index 0000000..316ce6a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/56320-56575.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 56320-56575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/56576-56831.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/56576-56831.pbf new file mode 100644 index 0000000..e3b97df --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/56576-56831.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 56576-56831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/56832-57087.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/56832-57087.pbf new file mode 100644 index 0000000..6745026 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/56832-57087.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 56832-57087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/57088-57343.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/57088-57343.pbf new file mode 100644 index 0000000..11c3b4a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/57088-57343.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 57088-57343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/57344-57599.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/57344-57599.pbf new file mode 100644 index 0000000..405daa3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/57344-57599.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 57344-57599 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/57600-57855.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/57600-57855.pbf new file mode 100644 index 0000000..05e2338 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/57600-57855.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 57600-57855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/57856-58111.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/57856-58111.pbf new file mode 100644 index 0000000..6914b70 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/57856-58111.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 57856-58111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/58112-58367.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/58112-58367.pbf new file mode 100644 index 0000000..903c1a3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/58112-58367.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 58112-58367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/58368-58623.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/58368-58623.pbf new file mode 100644 index 0000000..e8c2490 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/58368-58623.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 58368-58623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/58624-58879.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/58624-58879.pbf new file mode 100644 index 0000000..8e265bb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/58624-58879.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 58624-58879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/5888-6143.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/5888-6143.pbf new file mode 100644 index 0000000..d382095 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/5888-6143.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 5888-6143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/58880-59135.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/58880-59135.pbf new file mode 100644 index 0000000..9fded37 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/58880-59135.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 58880-59135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/59136-59391.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/59136-59391.pbf new file mode 100644 index 0000000..fc2d8c5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/59136-59391.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 59136-59391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/59392-59647.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/59392-59647.pbf new file mode 100644 index 0000000..7dd053a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/59392-59647.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 59392-59647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/59648-59903.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/59648-59903.pbf new file mode 100644 index 0000000..26d7971 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/59648-59903.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 59648-59903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/59904-60159.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/59904-60159.pbf new file mode 100644 index 0000000..959a5b1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/59904-60159.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 59904-60159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/60160-60415.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/60160-60415.pbf new file mode 100644 index 0000000..b7f44c4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/60160-60415.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 60160-60415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/60416-60671.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/60416-60671.pbf new file mode 100644 index 0000000..e1491ce --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/60416-60671.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 60416-60671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/60672-60927.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/60672-60927.pbf new file mode 100644 index 0000000..c2048d8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/60672-60927.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 60672-60927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/60928-61183.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/60928-61183.pbf new file mode 100644 index 0000000..df0330f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/60928-61183.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 60928-61183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/61184-61439.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/61184-61439.pbf new file mode 100644 index 0000000..4611ed7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/61184-61439.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 61184-61439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/6144-6399.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/6144-6399.pbf new file mode 100644 index 0000000..d5ef0d3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/6144-6399.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 6144-6399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/61440-61695.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/61440-61695.pbf new file mode 100644 index 0000000..fee1414 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/61440-61695.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 61440-61695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/61696-61951.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/61696-61951.pbf new file mode 100644 index 0000000..476556b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/61696-61951.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 61696-61951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/61952-62207.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/61952-62207.pbf new file mode 100644 index 0000000..582dd5d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/61952-62207.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 61952-62207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/62208-62463.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/62208-62463.pbf new file mode 100644 index 0000000..64f7dde --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/62208-62463.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 62208-62463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/62464-62719.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/62464-62719.pbf new file mode 100644 index 0000000..be911af --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/62464-62719.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 62464-62719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/62720-62975.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/62720-62975.pbf new file mode 100644 index 0000000..28f528d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/62720-62975.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 62720-62975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/62976-63231.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/62976-63231.pbf new file mode 100644 index 0000000..70c883a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/62976-63231.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 62976-63231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/63232-63487.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/63232-63487.pbf new file mode 100644 index 0000000..1c8b9e2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/63232-63487.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 63232-63487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/63488-63743.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/63488-63743.pbf new file mode 100644 index 0000000..c9f6608 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/63488-63743.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 63488-63743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/63744-63999.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/63744-63999.pbf new file mode 100644 index 0000000..38d7d7a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/63744-63999.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 63744-63999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/6400-6655.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/6400-6655.pbf new file mode 100644 index 0000000..5e7d7cc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/6400-6655.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 6400-6655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/64000-64255.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/64000-64255.pbf new file mode 100644 index 0000000..9755c45 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/64000-64255.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 64000-64255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/64256-64511.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/64256-64511.pbf new file mode 100644 index 0000000..3d832ee Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/64256-64511.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/64512-64767.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/64512-64767.pbf new file mode 100644 index 0000000..6453856 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/64512-64767.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 64512-64767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/64768-65023.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/64768-65023.pbf new file mode 100644 index 0000000..bb800da --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/64768-65023.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 64768-65023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/65024-65279.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/65024-65279.pbf new file mode 100644 index 0000000..a93f4c1 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/65024-65279.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/65280-65535.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/65280-65535.pbf new file mode 100644 index 0000000..3693555 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/65280-65535.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/6656-6911.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/6656-6911.pbf new file mode 100644 index 0000000..c75e3f0 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/6656-6911.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/6912-7167.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/6912-7167.pbf new file mode 100644 index 0000000..3713b70 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/6912-7167.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 6912-7167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/7168-7423.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/7168-7423.pbf new file mode 100644 index 0000000..8d22ae5 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/7168-7423.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/7424-7679.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/7424-7679.pbf new file mode 100644 index 0000000..df53d8a Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/7424-7679.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/768-1023.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/768-1023.pbf new file mode 100644 index 0000000..82ad3bc Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/768-1023.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/7680-7935.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/7680-7935.pbf new file mode 100644 index 0000000..ba5a3c0 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/7680-7935.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/7936-8191.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/7936-8191.pbf new file mode 100644 index 0000000..c11fa96 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/7936-8191.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/8192-8447.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/8192-8447.pbf new file mode 100644 index 0000000..f95eadd Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/8192-8447.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/8448-8703.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/8448-8703.pbf new file mode 100644 index 0000000..4dd4dd6 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Bold/8448-8703.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/8704-8959.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/8704-8959.pbf new file mode 100644 index 0000000..782619e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/8704-8959.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 8704-8959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/8960-9215.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/8960-9215.pbf new file mode 100644 index 0000000..6f1480d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/8960-9215.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 8960-9215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/9216-9471.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/9216-9471.pbf new file mode 100644 index 0000000..55e5ac9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/9216-9471.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 9216-9471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/9472-9727.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/9472-9727.pbf new file mode 100644 index 0000000..fef3904 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/9472-9727.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 9472-9727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/9728-9983.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/9728-9983.pbf new file mode 100644 index 0000000..2ec083d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/9728-9983.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Bold 9728-9983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Bold/9984-10239.pbf b/src/assets/fonts/glyphs/Noto Sans Bold/9984-10239.pbf new file mode 100644 index 0000000..9bcb570 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Bold/9984-10239.pbf @@ -0,0 +1,4 @@ + + +Noto Sans Bold +9984-10239 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/0-255.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/0-255.pbf new file mode 100644 index 0000000..c1d96da Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/0-255.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/1024-1279.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/1024-1279.pbf new file mode 100644 index 0000000..cbf24f8 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/1024-1279.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/10240-10495.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/10240-10495.pbf new file mode 100644 index 0000000..2642581 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/10240-10495.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 10240-10495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/10496-10751.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/10496-10751.pbf new file mode 100644 index 0000000..7359094 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/10496-10751.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 10496-10751 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/10752-11007.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/10752-11007.pbf new file mode 100644 index 0000000..6b2dff3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/10752-11007.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 10752-11007 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/11008-11263.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/11008-11263.pbf new file mode 100644 index 0000000..15630af --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/11008-11263.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 11008-11263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/11264-11519.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/11264-11519.pbf new file mode 100644 index 0000000..ab248e0 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/11264-11519.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/11520-11775.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/11520-11775.pbf new file mode 100644 index 0000000..c6a5028 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/11520-11775.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/11776-12031.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/11776-12031.pbf new file mode 100644 index 0000000..3752844 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/11776-12031.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/12032-12287.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/12032-12287.pbf new file mode 100644 index 0000000..4499997 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/12032-12287.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 12032-12287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/12288-12543.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/12288-12543.pbf new file mode 100644 index 0000000..dfc8c6b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/12288-12543.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 12288-12543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/12544-12799.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/12544-12799.pbf new file mode 100644 index 0000000..97e1e6a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/12544-12799.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 12544-12799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/1280-1535.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/1280-1535.pbf new file mode 100644 index 0000000..a5f75af Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/1280-1535.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/12800-13055.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/12800-13055.pbf new file mode 100644 index 0000000..bd7df23 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/12800-13055.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 12800-13055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/13056-13311.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/13056-13311.pbf new file mode 100644 index 0000000..e2216d0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/13056-13311.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 13056-13311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/13312-13567.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/13312-13567.pbf new file mode 100644 index 0000000..487b551 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/13312-13567.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 13312-13567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/13568-13823.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/13568-13823.pbf new file mode 100644 index 0000000..5e92f83 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/13568-13823.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 13568-13823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/13824-14079.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/13824-14079.pbf new file mode 100644 index 0000000..1af0b3e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/13824-14079.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 13824-14079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/14080-14335.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/14080-14335.pbf new file mode 100644 index 0000000..7c6f26e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/14080-14335.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 14080-14335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/14336-14591.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/14336-14591.pbf new file mode 100644 index 0000000..ed8e2ee --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/14336-14591.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 14336-14591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/14592-14847.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/14592-14847.pbf new file mode 100644 index 0000000..d62698f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/14592-14847.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 14592-14847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/14848-15103.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/14848-15103.pbf new file mode 100644 index 0000000..3524eee --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/14848-15103.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 14848-15103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/15104-15359.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/15104-15359.pbf new file mode 100644 index 0000000..bd53acc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/15104-15359.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 15104-15359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/1536-1791.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/1536-1791.pbf new file mode 100644 index 0000000..7fc1456 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/1536-1791.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 1536-1791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/15360-15615.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/15360-15615.pbf new file mode 100644 index 0000000..82ebba5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/15360-15615.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 15360-15615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/15616-15871.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/15616-15871.pbf new file mode 100644 index 0000000..9aefa13 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/15616-15871.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 15616-15871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/15872-16127.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/15872-16127.pbf new file mode 100644 index 0000000..efa8d2d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/15872-16127.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 15872-16127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/16128-16383.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/16128-16383.pbf new file mode 100644 index 0000000..d24e939 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/16128-16383.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 16128-16383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/16384-16639.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/16384-16639.pbf new file mode 100644 index 0000000..732747e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/16384-16639.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 16384-16639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/16640-16895.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/16640-16895.pbf new file mode 100644 index 0000000..39a7666 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/16640-16895.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 16640-16895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/16896-17151.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/16896-17151.pbf new file mode 100644 index 0000000..0d0319b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/16896-17151.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 16896-17151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/17152-17407.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/17152-17407.pbf new file mode 100644 index 0000000..6051fc0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/17152-17407.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 17152-17407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/17408-17663.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/17408-17663.pbf new file mode 100644 index 0000000..5d4e09f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/17408-17663.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 17408-17663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/17664-17919.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/17664-17919.pbf new file mode 100644 index 0000000..43f707e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/17664-17919.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 17664-17919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/1792-2047.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/1792-2047.pbf new file mode 100644 index 0000000..d43914d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/1792-2047.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 1792-2047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/17920-18175.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/17920-18175.pbf new file mode 100644 index 0000000..da48188 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/17920-18175.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 17920-18175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/18176-18431.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/18176-18431.pbf new file mode 100644 index 0000000..2581bd7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/18176-18431.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 18176-18431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/18432-18687.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/18432-18687.pbf new file mode 100644 index 0000000..263a6f2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/18432-18687.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 18432-18687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/18688-18943.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/18688-18943.pbf new file mode 100644 index 0000000..5eb457b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/18688-18943.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 18688-18943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/18944-19199.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/18944-19199.pbf new file mode 100644 index 0000000..32c381a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/18944-19199.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 18944-19199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/19200-19455.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/19200-19455.pbf new file mode 100644 index 0000000..cce727f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/19200-19455.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 19200-19455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/19456-19711.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/19456-19711.pbf new file mode 100644 index 0000000..b473016 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/19456-19711.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 19456-19711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/19712-19967.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/19712-19967.pbf new file mode 100644 index 0000000..6582953 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/19712-19967.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 19712-19967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/19968-20223.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/19968-20223.pbf new file mode 100644 index 0000000..5adf309 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/19968-20223.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 19968-20223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/20224-20479.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/20224-20479.pbf new file mode 100644 index 0000000..f0fdfa7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/20224-20479.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 20224-20479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/2048-2303.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/2048-2303.pbf new file mode 100644 index 0000000..020e387 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/2048-2303.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 2048-2303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/20480-20735.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/20480-20735.pbf new file mode 100644 index 0000000..670517f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/20480-20735.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 20480-20735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/20736-20991.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/20736-20991.pbf new file mode 100644 index 0000000..84b878e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/20736-20991.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 20736-20991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/20992-21247.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/20992-21247.pbf new file mode 100644 index 0000000..49b476d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/20992-21247.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 20992-21247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/21248-21503.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/21248-21503.pbf new file mode 100644 index 0000000..c97f71b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/21248-21503.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 21248-21503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/21504-21759.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/21504-21759.pbf new file mode 100644 index 0000000..390dfda --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/21504-21759.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 21504-21759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/21760-22015.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/21760-22015.pbf new file mode 100644 index 0000000..848b314 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/21760-22015.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 21760-22015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/22016-22271.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/22016-22271.pbf new file mode 100644 index 0000000..dc836e4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/22016-22271.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 22016-22271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/22272-22527.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/22272-22527.pbf new file mode 100644 index 0000000..05463f7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/22272-22527.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 22272-22527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/22528-22783.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/22528-22783.pbf new file mode 100644 index 0000000..28ea2e9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/22528-22783.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 22528-22783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/22784-23039.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/22784-23039.pbf new file mode 100644 index 0000000..cb63cdd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/22784-23039.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 22784-23039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/2304-2559.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/2304-2559.pbf new file mode 100644 index 0000000..b0efa91 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/2304-2559.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 2304-2559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/23040-23295.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/23040-23295.pbf new file mode 100644 index 0000000..0fc9ec7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/23040-23295.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 23040-23295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/23296-23551.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/23296-23551.pbf new file mode 100644 index 0000000..848b131 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/23296-23551.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 23296-23551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/23552-23807.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/23552-23807.pbf new file mode 100644 index 0000000..ece31cd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/23552-23807.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 23552-23807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/23808-24063.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/23808-24063.pbf new file mode 100644 index 0000000..42c78fe --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/23808-24063.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 23808-24063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/24064-24319.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/24064-24319.pbf new file mode 100644 index 0000000..f282d4e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/24064-24319.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 24064-24319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/24320-24575.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/24320-24575.pbf new file mode 100644 index 0000000..fdb0ab6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/24320-24575.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 24320-24575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/24576-24831.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/24576-24831.pbf new file mode 100644 index 0000000..d2e2849 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/24576-24831.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 24576-24831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/24832-25087.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/24832-25087.pbf new file mode 100644 index 0000000..00e3583 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/24832-25087.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 24832-25087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/25088-25343.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/25088-25343.pbf new file mode 100644 index 0000000..049a3d4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/25088-25343.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 25088-25343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/25344-25599.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/25344-25599.pbf new file mode 100644 index 0000000..5752e32 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/25344-25599.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 25344-25599 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/256-511.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/256-511.pbf new file mode 100644 index 0000000..37410da Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/256-511.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/2560-2815.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/2560-2815.pbf new file mode 100644 index 0000000..ffef503 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/2560-2815.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 2560-2815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/25600-25855.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/25600-25855.pbf new file mode 100644 index 0000000..bdee7e0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/25600-25855.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 25600-25855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/25856-26111.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/25856-26111.pbf new file mode 100644 index 0000000..262b77e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/25856-26111.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 25856-26111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/26112-26367.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/26112-26367.pbf new file mode 100644 index 0000000..24bd948 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/26112-26367.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 26112-26367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/26368-26623.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/26368-26623.pbf new file mode 100644 index 0000000..0df601f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/26368-26623.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 26368-26623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/26624-26879.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/26624-26879.pbf new file mode 100644 index 0000000..95b95fc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/26624-26879.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 26624-26879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/26880-27135.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/26880-27135.pbf new file mode 100644 index 0000000..8acaa4e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/26880-27135.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 26880-27135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/27136-27391.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/27136-27391.pbf new file mode 100644 index 0000000..298e7cd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/27136-27391.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 27136-27391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/27392-27647.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/27392-27647.pbf new file mode 100644 index 0000000..bfa12b9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/27392-27647.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 27392-27647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/27648-27903.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/27648-27903.pbf new file mode 100644 index 0000000..065b864 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/27648-27903.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 27648-27903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/27904-28159.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/27904-28159.pbf new file mode 100644 index 0000000..a76a2ee --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/27904-28159.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 27904-28159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/2816-3071.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/2816-3071.pbf new file mode 100644 index 0000000..4148d35 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/2816-3071.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 2816-3071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/28160-28415.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/28160-28415.pbf new file mode 100644 index 0000000..8b779af --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/28160-28415.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 28160-28415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/28416-28671.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/28416-28671.pbf new file mode 100644 index 0000000..113b8f9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/28416-28671.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 28416-28671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/28672-28927.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/28672-28927.pbf new file mode 100644 index 0000000..1c1076e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/28672-28927.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 28672-28927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/28928-29183.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/28928-29183.pbf new file mode 100644 index 0000000..3364699 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/28928-29183.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 28928-29183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/29184-29439.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/29184-29439.pbf new file mode 100644 index 0000000..0211047 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/29184-29439.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 29184-29439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/29440-29695.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/29440-29695.pbf new file mode 100644 index 0000000..2725f0e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/29440-29695.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 29440-29695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/29696-29951.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/29696-29951.pbf new file mode 100644 index 0000000..d4fa4ef --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/29696-29951.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 29696-29951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/29952-30207.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/29952-30207.pbf new file mode 100644 index 0000000..7754904 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/29952-30207.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 29952-30207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/30208-30463.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/30208-30463.pbf new file mode 100644 index 0000000..0ed03be --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/30208-30463.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 30208-30463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/30464-30719.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/30464-30719.pbf new file mode 100644 index 0000000..ce9b7ea --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/30464-30719.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 30464-30719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/3072-3327.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/3072-3327.pbf new file mode 100644 index 0000000..e407088 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/3072-3327.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 3072-3327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/30720-30975.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/30720-30975.pbf new file mode 100644 index 0000000..ab38523 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/30720-30975.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 30720-30975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/30976-31231.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/30976-31231.pbf new file mode 100644 index 0000000..30162da --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/30976-31231.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 30976-31231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/31232-31487.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/31232-31487.pbf new file mode 100644 index 0000000..10b829e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/31232-31487.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 31232-31487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/31488-31743.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/31488-31743.pbf new file mode 100644 index 0000000..c1a787f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/31488-31743.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 31488-31743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/31744-31999.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/31744-31999.pbf new file mode 100644 index 0000000..ec51133 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/31744-31999.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 31744-31999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/32000-32255.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/32000-32255.pbf new file mode 100644 index 0000000..3929788 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/32000-32255.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 32000-32255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/32256-32511.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/32256-32511.pbf new file mode 100644 index 0000000..d70bf14 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/32256-32511.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 32256-32511 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/32512-32767.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/32512-32767.pbf new file mode 100644 index 0000000..9e48626 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/32512-32767.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 32512-32767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/32768-33023.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/32768-33023.pbf new file mode 100644 index 0000000..84205aa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/32768-33023.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 32768-33023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/33024-33279.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/33024-33279.pbf new file mode 100644 index 0000000..dbbba9e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/33024-33279.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 33024-33279 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/3328-3583.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/3328-3583.pbf new file mode 100644 index 0000000..f10dd8f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/3328-3583.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 3328-3583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/33280-33535.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/33280-33535.pbf new file mode 100644 index 0000000..a107683 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/33280-33535.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 33280-33535 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/33536-33791.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/33536-33791.pbf new file mode 100644 index 0000000..1ae4d68 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/33536-33791.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 33536-33791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/33792-34047.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/33792-34047.pbf new file mode 100644 index 0000000..524259d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/33792-34047.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 33792-34047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/34048-34303.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/34048-34303.pbf new file mode 100644 index 0000000..4d7e02c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/34048-34303.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 34048-34303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/34304-34559.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/34304-34559.pbf new file mode 100644 index 0000000..5247938 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/34304-34559.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 34304-34559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/34560-34815.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/34560-34815.pbf new file mode 100644 index 0000000..0f30f92 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/34560-34815.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 34560-34815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/34816-35071.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/34816-35071.pbf new file mode 100644 index 0000000..af31d11 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/34816-35071.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 34816-35071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/35072-35327.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/35072-35327.pbf new file mode 100644 index 0000000..75efa1c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/35072-35327.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 35072-35327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/35328-35583.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/35328-35583.pbf new file mode 100644 index 0000000..665b33b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/35328-35583.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 35328-35583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/35584-35839.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/35584-35839.pbf new file mode 100644 index 0000000..76deda6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/35584-35839.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 35584-35839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/3584-3839.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/3584-3839.pbf new file mode 100644 index 0000000..356678c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/3584-3839.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 3584-3839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/35840-36095.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/35840-36095.pbf new file mode 100644 index 0000000..3963e04 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/35840-36095.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 35840-36095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/36096-36351.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/36096-36351.pbf new file mode 100644 index 0000000..ec80ee5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/36096-36351.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 36096-36351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/36352-36607.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/36352-36607.pbf new file mode 100644 index 0000000..6c82845 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/36352-36607.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 36352-36607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/36608-36863.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/36608-36863.pbf new file mode 100644 index 0000000..240d3cb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/36608-36863.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 36608-36863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/36864-37119.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/36864-37119.pbf new file mode 100644 index 0000000..baa1b57 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/36864-37119.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 36864-37119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/37120-37375.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/37120-37375.pbf new file mode 100644 index 0000000..c26dc91 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/37120-37375.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 37120-37375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/37376-37631.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/37376-37631.pbf new file mode 100644 index 0000000..beb2994 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/37376-37631.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 37376-37631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/37632-37887.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/37632-37887.pbf new file mode 100644 index 0000000..4e924bf --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/37632-37887.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 37632-37887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/37888-38143.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/37888-38143.pbf new file mode 100644 index 0000000..5d71065 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/37888-38143.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 37888-38143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/38144-38399.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/38144-38399.pbf new file mode 100644 index 0000000..4bc42ae --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/38144-38399.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 38144-38399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/3840-4095.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/3840-4095.pbf new file mode 100644 index 0000000..726e145 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/3840-4095.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 3840-4095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/38400-38655.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/38400-38655.pbf new file mode 100644 index 0000000..a100d9e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/38400-38655.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 38400-38655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/38656-38911.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/38656-38911.pbf new file mode 100644 index 0000000..8327a6e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/38656-38911.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 38656-38911 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/38912-39167.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/38912-39167.pbf new file mode 100644 index 0000000..b9a6ca0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/38912-39167.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 38912-39167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/39168-39423.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/39168-39423.pbf new file mode 100644 index 0000000..ec115a6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/39168-39423.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 39168-39423 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/39424-39679.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/39424-39679.pbf new file mode 100644 index 0000000..a74c614 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/39424-39679.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 39424-39679 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/39680-39935.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/39680-39935.pbf new file mode 100644 index 0000000..2dfaee8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/39680-39935.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 39680-39935 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/39936-40191.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/39936-40191.pbf new file mode 100644 index 0000000..ca3bf1f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/39936-40191.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 39936-40191 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/40192-40447.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/40192-40447.pbf new file mode 100644 index 0000000..88a2136 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/40192-40447.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 40192-40447 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/40448-40703.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/40448-40703.pbf new file mode 100644 index 0000000..6ee6bcc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/40448-40703.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 40448-40703 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/40704-40959.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/40704-40959.pbf new file mode 100644 index 0000000..0a76fd2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/40704-40959.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 40704-40959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/4096-4351.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/4096-4351.pbf new file mode 100644 index 0000000..cf08dc7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/4096-4351.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 4096-4351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/40960-41215.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/40960-41215.pbf new file mode 100644 index 0000000..a5231de --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/40960-41215.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 40960-41215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/41216-41471.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/41216-41471.pbf new file mode 100644 index 0000000..c55bc69 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/41216-41471.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 41216-41471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/41472-41727.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/41472-41727.pbf new file mode 100644 index 0000000..0c02164 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/41472-41727.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 41472-41727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/41728-41983.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/41728-41983.pbf new file mode 100644 index 0000000..a0a2028 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/41728-41983.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 41728-41983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/41984-42239.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/41984-42239.pbf new file mode 100644 index 0000000..8515111 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/41984-42239.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 41984-42239 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/42240-42495.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/42240-42495.pbf new file mode 100644 index 0000000..792c21e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/42240-42495.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 42240-42495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/42496-42751.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/42496-42751.pbf new file mode 100644 index 0000000..48f0f13 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/42496-42751.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/42752-43007.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/42752-43007.pbf new file mode 100644 index 0000000..afd167b Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/42752-43007.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/43008-43263.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/43008-43263.pbf new file mode 100644 index 0000000..1f72146 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/43008-43263.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 43008-43263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/43264-43519.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/43264-43519.pbf new file mode 100644 index 0000000..240add4 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/43264-43519.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/4352-4607.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/4352-4607.pbf new file mode 100644 index 0000000..a52c07e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/4352-4607.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 4352-4607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/43520-43775.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/43520-43775.pbf new file mode 100644 index 0000000..89219e4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/43520-43775.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 43520-43775 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/43776-44031.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/43776-44031.pbf new file mode 100644 index 0000000..6453b31 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/43776-44031.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/44032-44287.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/44032-44287.pbf new file mode 100644 index 0000000..dbceb3a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/44032-44287.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 44032-44287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/44288-44543.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/44288-44543.pbf new file mode 100644 index 0000000..112a031 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/44288-44543.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 44288-44543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/44544-44799.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/44544-44799.pbf new file mode 100644 index 0000000..90aaad4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/44544-44799.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 44544-44799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/44800-45055.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/44800-45055.pbf new file mode 100644 index 0000000..28ec3a0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/44800-45055.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 44800-45055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/45056-45311.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/45056-45311.pbf new file mode 100644 index 0000000..0d9358e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/45056-45311.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 45056-45311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/45312-45567.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/45312-45567.pbf new file mode 100644 index 0000000..42b2cd1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/45312-45567.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 45312-45567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/45568-45823.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/45568-45823.pbf new file mode 100644 index 0000000..a9128ab --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/45568-45823.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 45568-45823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/45824-46079.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/45824-46079.pbf new file mode 100644 index 0000000..456b092 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/45824-46079.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 45824-46079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/4608-4863.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/4608-4863.pbf new file mode 100644 index 0000000..d57fc34 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/4608-4863.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 4608-4863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/46080-46335.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/46080-46335.pbf new file mode 100644 index 0000000..9d08b64 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/46080-46335.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 46080-46335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/46336-46591.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/46336-46591.pbf new file mode 100644 index 0000000..c6f4bf4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/46336-46591.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 46336-46591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/46592-46847.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/46592-46847.pbf new file mode 100644 index 0000000..bb9dbb3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/46592-46847.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 46592-46847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/46848-47103.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/46848-47103.pbf new file mode 100644 index 0000000..b9e0bbe --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/46848-47103.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 46848-47103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/47104-47359.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/47104-47359.pbf new file mode 100644 index 0000000..9ce53e1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/47104-47359.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 47104-47359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/47360-47615.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/47360-47615.pbf new file mode 100644 index 0000000..27711ad --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/47360-47615.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 47360-47615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/47616-47871.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/47616-47871.pbf new file mode 100644 index 0000000..2452b83 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/47616-47871.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 47616-47871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/47872-48127.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/47872-48127.pbf new file mode 100644 index 0000000..84e7018 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/47872-48127.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 47872-48127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/48128-48383.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/48128-48383.pbf new file mode 100644 index 0000000..41f9647 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/48128-48383.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 48128-48383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/48384-48639.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/48384-48639.pbf new file mode 100644 index 0000000..bfa3466 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/48384-48639.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 48384-48639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/4864-5119.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/4864-5119.pbf new file mode 100644 index 0000000..3c1ba25 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/4864-5119.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 4864-5119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/48640-48895.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/48640-48895.pbf new file mode 100644 index 0000000..30136f5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/48640-48895.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 48640-48895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/48896-49151.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/48896-49151.pbf new file mode 100644 index 0000000..61c3032 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/48896-49151.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 48896-49151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/49152-49407.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/49152-49407.pbf new file mode 100644 index 0000000..ceed7ff --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/49152-49407.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 49152-49407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/49408-49663.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/49408-49663.pbf new file mode 100644 index 0000000..8661b6a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/49408-49663.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 49408-49663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/49664-49919.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/49664-49919.pbf new file mode 100644 index 0000000..7835d1d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/49664-49919.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 49664-49919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/49920-50175.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/49920-50175.pbf new file mode 100644 index 0000000..189b614 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/49920-50175.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 49920-50175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/50176-50431.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/50176-50431.pbf new file mode 100644 index 0000000..ffb51d4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/50176-50431.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 50176-50431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/50432-50687.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/50432-50687.pbf new file mode 100644 index 0000000..b49ee2b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/50432-50687.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 50432-50687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/50688-50943.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/50688-50943.pbf new file mode 100644 index 0000000..be4e1bf --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/50688-50943.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 50688-50943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/50944-51199.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/50944-51199.pbf new file mode 100644 index 0000000..d2aea0e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/50944-51199.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 50944-51199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/512-767.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/512-767.pbf new file mode 100644 index 0000000..8c2ff2a Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/512-767.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/5120-5375.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/5120-5375.pbf new file mode 100644 index 0000000..77808dc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/5120-5375.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 5120-5375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/51200-51455.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/51200-51455.pbf new file mode 100644 index 0000000..1f485fa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/51200-51455.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 51200-51455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/51456-51711.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/51456-51711.pbf new file mode 100644 index 0000000..5af07ac --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/51456-51711.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 51456-51711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/51712-51967.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/51712-51967.pbf new file mode 100644 index 0000000..3a229bb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/51712-51967.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 51712-51967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/51968-52223.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/51968-52223.pbf new file mode 100644 index 0000000..1dc95df --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/51968-52223.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 51968-52223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/52224-52479.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/52224-52479.pbf new file mode 100644 index 0000000..282ccd7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/52224-52479.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 52224-52479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/52480-52735.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/52480-52735.pbf new file mode 100644 index 0000000..5860abb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/52480-52735.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 52480-52735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/52736-52991.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/52736-52991.pbf new file mode 100644 index 0000000..74b1f21 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/52736-52991.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 52736-52991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/52992-53247.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/52992-53247.pbf new file mode 100644 index 0000000..61cc52f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/52992-53247.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 52992-53247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/53248-53503.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/53248-53503.pbf new file mode 100644 index 0000000..7bbffee --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/53248-53503.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 53248-53503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/53504-53759.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/53504-53759.pbf new file mode 100644 index 0000000..1b15fcf --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/53504-53759.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 53504-53759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/5376-5631.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/5376-5631.pbf new file mode 100644 index 0000000..7fc0e36 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/5376-5631.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 5376-5631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/53760-54015.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/53760-54015.pbf new file mode 100644 index 0000000..0086e9e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/53760-54015.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 53760-54015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/54016-54271.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/54016-54271.pbf new file mode 100644 index 0000000..2278eb4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/54016-54271.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 54016-54271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/54272-54527.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/54272-54527.pbf new file mode 100644 index 0000000..5db454a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/54272-54527.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 54272-54527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/54528-54783.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/54528-54783.pbf new file mode 100644 index 0000000..050414e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/54528-54783.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 54528-54783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/54784-55039.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/54784-55039.pbf new file mode 100644 index 0000000..dfee7e9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/54784-55039.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 54784-55039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/55040-55295.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/55040-55295.pbf new file mode 100644 index 0000000..82fe101 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/55040-55295.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 55040-55295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/55296-55551.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/55296-55551.pbf new file mode 100644 index 0000000..e0b008d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/55296-55551.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 55296-55551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/55552-55807.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/55552-55807.pbf new file mode 100644 index 0000000..d2a5911 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/55552-55807.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 55552-55807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/55808-56063.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/55808-56063.pbf new file mode 100644 index 0000000..edf77b0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/55808-56063.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 55808-56063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/56064-56319.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/56064-56319.pbf new file mode 100644 index 0000000..ca48801 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/56064-56319.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 56064-56319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/5632-5887.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/5632-5887.pbf new file mode 100644 index 0000000..038a7bc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/5632-5887.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 5632-5887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/56320-56575.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/56320-56575.pbf new file mode 100644 index 0000000..51ebf12 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/56320-56575.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 56320-56575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/56576-56831.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/56576-56831.pbf new file mode 100644 index 0000000..df8c017 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/56576-56831.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 56576-56831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/56832-57087.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/56832-57087.pbf new file mode 100644 index 0000000..0dccc54 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/56832-57087.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 56832-57087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/57088-57343.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/57088-57343.pbf new file mode 100644 index 0000000..b0c41f8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/57088-57343.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 57088-57343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/57344-57599.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/57344-57599.pbf new file mode 100644 index 0000000..f8ba5de --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/57344-57599.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 57344-57599 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/57600-57855.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/57600-57855.pbf new file mode 100644 index 0000000..dc8b9eb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/57600-57855.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 57600-57855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/57856-58111.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/57856-58111.pbf new file mode 100644 index 0000000..cc803ca --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/57856-58111.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 57856-58111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/58112-58367.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/58112-58367.pbf new file mode 100644 index 0000000..d1b0a89 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/58112-58367.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 58112-58367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/58368-58623.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/58368-58623.pbf new file mode 100644 index 0000000..dbde33c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/58368-58623.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 58368-58623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/58624-58879.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/58624-58879.pbf new file mode 100644 index 0000000..3ea1963 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/58624-58879.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 58624-58879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/5888-6143.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/5888-6143.pbf new file mode 100644 index 0000000..01812c2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/5888-6143.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 5888-6143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/58880-59135.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/58880-59135.pbf new file mode 100644 index 0000000..d66e3ee --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/58880-59135.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 58880-59135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/59136-59391.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/59136-59391.pbf new file mode 100644 index 0000000..571d6c3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/59136-59391.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 59136-59391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/59392-59647.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/59392-59647.pbf new file mode 100644 index 0000000..d150c0c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/59392-59647.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 59392-59647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/59648-59903.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/59648-59903.pbf new file mode 100644 index 0000000..9116c24 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/59648-59903.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 59648-59903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/59904-60159.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/59904-60159.pbf new file mode 100644 index 0000000..a68f60d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/59904-60159.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 59904-60159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/60160-60415.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/60160-60415.pbf new file mode 100644 index 0000000..383ee51 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/60160-60415.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 60160-60415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/60416-60671.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/60416-60671.pbf new file mode 100644 index 0000000..f222f2e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/60416-60671.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 60416-60671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/60672-60927.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/60672-60927.pbf new file mode 100644 index 0000000..e9b7ad7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/60672-60927.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 60672-60927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/60928-61183.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/60928-61183.pbf new file mode 100644 index 0000000..db757f4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/60928-61183.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 60928-61183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/61184-61439.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/61184-61439.pbf new file mode 100644 index 0000000..56c37ec --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/61184-61439.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 61184-61439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/6144-6399.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/6144-6399.pbf new file mode 100644 index 0000000..31a4507 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/6144-6399.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 6144-6399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/61440-61695.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/61440-61695.pbf new file mode 100644 index 0000000..a27c1db --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/61440-61695.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 61440-61695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/61696-61951.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/61696-61951.pbf new file mode 100644 index 0000000..e6b88de --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/61696-61951.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 61696-61951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/61952-62207.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/61952-62207.pbf new file mode 100644 index 0000000..6e046e1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/61952-62207.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 61952-62207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/62208-62463.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/62208-62463.pbf new file mode 100644 index 0000000..4ebc4e4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/62208-62463.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 62208-62463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/62464-62719.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/62464-62719.pbf new file mode 100644 index 0000000..2293257 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/62464-62719.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 62464-62719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/62720-62975.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/62720-62975.pbf new file mode 100644 index 0000000..578d425 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/62720-62975.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 62720-62975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/62976-63231.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/62976-63231.pbf new file mode 100644 index 0000000..f80c97b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/62976-63231.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 62976-63231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/63232-63487.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/63232-63487.pbf new file mode 100644 index 0000000..dcc6d09 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/63232-63487.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 63232-63487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/63488-63743.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/63488-63743.pbf new file mode 100644 index 0000000..65506aa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/63488-63743.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 63488-63743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/63744-63999.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/63744-63999.pbf new file mode 100644 index 0000000..b488e8b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/63744-63999.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 63744-63999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/6400-6655.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/6400-6655.pbf new file mode 100644 index 0000000..c7deb95 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/6400-6655.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 6400-6655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/64000-64255.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/64000-64255.pbf new file mode 100644 index 0000000..0fb48d8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/64000-64255.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 64000-64255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/64256-64511.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/64256-64511.pbf new file mode 100644 index 0000000..04383ea Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/64256-64511.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/64512-64767.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/64512-64767.pbf new file mode 100644 index 0000000..c2d4562 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/64512-64767.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 64512-64767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/64768-65023.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/64768-65023.pbf new file mode 100644 index 0000000..e0f2e5b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/64768-65023.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 64768-65023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/65024-65279.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/65024-65279.pbf new file mode 100644 index 0000000..fba1fac Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/65024-65279.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/65280-65535.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/65280-65535.pbf new file mode 100644 index 0000000..fcaeef9 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/65280-65535.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/6656-6911.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/6656-6911.pbf new file mode 100644 index 0000000..a905da4 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/6656-6911.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/6912-7167.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/6912-7167.pbf new file mode 100644 index 0000000..82fb745 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/6912-7167.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 6912-7167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/7168-7423.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/7168-7423.pbf new file mode 100644 index 0000000..419d43e Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/7168-7423.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/7424-7679.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/7424-7679.pbf new file mode 100644 index 0000000..2d6c138 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/7424-7679.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/768-1023.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/768-1023.pbf new file mode 100644 index 0000000..7cea618 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/768-1023.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/7680-7935.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/7680-7935.pbf new file mode 100644 index 0000000..87910cb Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/7680-7935.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/7936-8191.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/7936-8191.pbf new file mode 100644 index 0000000..cceba91 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/7936-8191.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/8192-8447.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/8192-8447.pbf new file mode 100644 index 0000000..edb9534 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/8192-8447.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/8448-8703.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/8448-8703.pbf new file mode 100644 index 0000000..603062f Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Italic/8448-8703.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/8704-8959.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/8704-8959.pbf new file mode 100644 index 0000000..708a973 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/8704-8959.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 8704-8959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/8960-9215.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/8960-9215.pbf new file mode 100644 index 0000000..513e190 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/8960-9215.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 8960-9215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/9216-9471.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/9216-9471.pbf new file mode 100644 index 0000000..8e3a2ad --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/9216-9471.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 9216-9471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/9472-9727.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/9472-9727.pbf new file mode 100644 index 0000000..0e1be6e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/9472-9727.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 9472-9727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/9728-9983.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/9728-9983.pbf new file mode 100644 index 0000000..89ddea3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/9728-9983.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Italic 9728-9983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Italic/9984-10239.pbf b/src/assets/fonts/glyphs/Noto Sans Italic/9984-10239.pbf new file mode 100644 index 0000000..9cecf28 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Italic/9984-10239.pbf @@ -0,0 +1,4 @@ + + +Noto Sans Italic +9984-10239 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/0-255.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/0-255.pbf new file mode 100644 index 0000000..693ea82 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/0-255.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/1024-1279.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/1024-1279.pbf new file mode 100644 index 0000000..9edb4b8 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/1024-1279.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/10240-10495.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/10240-10495.pbf new file mode 100644 index 0000000..d2d5e44 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/10240-10495.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 10240-10495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/10496-10751.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/10496-10751.pbf new file mode 100644 index 0000000..d6ba34a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/10496-10751.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 10496-10751 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/10752-11007.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/10752-11007.pbf new file mode 100644 index 0000000..8db94d9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/10752-11007.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 10752-11007 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/11008-11263.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/11008-11263.pbf new file mode 100644 index 0000000..d1fcf3d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/11008-11263.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 11008-11263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/11264-11519.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/11264-11519.pbf new file mode 100644 index 0000000..0ace3cd Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/11264-11519.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/11520-11775.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/11520-11775.pbf new file mode 100644 index 0000000..1501117 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/11520-11775.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/11776-12031.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/11776-12031.pbf new file mode 100644 index 0000000..3108c22 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/11776-12031.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/12032-12287.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/12032-12287.pbf new file mode 100644 index 0000000..156a66b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/12032-12287.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 12032-12287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/12288-12543.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/12288-12543.pbf new file mode 100644 index 0000000..f0f721a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/12288-12543.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 12288-12543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/12544-12799.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/12544-12799.pbf new file mode 100644 index 0000000..9263778 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/12544-12799.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 12544-12799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/1280-1535.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/1280-1535.pbf new file mode 100644 index 0000000..d2760ad Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/1280-1535.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/12800-13055.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/12800-13055.pbf new file mode 100644 index 0000000..ac25d7a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/12800-13055.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 12800-13055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/13056-13311.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/13056-13311.pbf new file mode 100644 index 0000000..13e418b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/13056-13311.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 13056-13311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/13312-13567.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/13312-13567.pbf new file mode 100644 index 0000000..ff13e03 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/13312-13567.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 13312-13567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/13568-13823.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/13568-13823.pbf new file mode 100644 index 0000000..86278c1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/13568-13823.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 13568-13823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/13824-14079.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/13824-14079.pbf new file mode 100644 index 0000000..70b0ac2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/13824-14079.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 13824-14079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/14080-14335.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/14080-14335.pbf new file mode 100644 index 0000000..d35a712 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/14080-14335.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 14080-14335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/14336-14591.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/14336-14591.pbf new file mode 100644 index 0000000..45909b1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/14336-14591.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 14336-14591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/14592-14847.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/14592-14847.pbf new file mode 100644 index 0000000..793de65 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/14592-14847.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 14592-14847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/14848-15103.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/14848-15103.pbf new file mode 100644 index 0000000..87b9650 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/14848-15103.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 14848-15103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/15104-15359.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/15104-15359.pbf new file mode 100644 index 0000000..787fce8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/15104-15359.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 15104-15359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/1536-1791.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/1536-1791.pbf new file mode 100644 index 0000000..2b91f88 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/1536-1791.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 1536-1791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/15360-15615.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/15360-15615.pbf new file mode 100644 index 0000000..21f1664 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/15360-15615.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 15360-15615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/15616-15871.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/15616-15871.pbf new file mode 100644 index 0000000..d678d2e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/15616-15871.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 15616-15871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/15872-16127.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/15872-16127.pbf new file mode 100644 index 0000000..f1f4074 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/15872-16127.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 15872-16127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/16128-16383.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/16128-16383.pbf new file mode 100644 index 0000000..9656a9e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/16128-16383.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 16128-16383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/16384-16639.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/16384-16639.pbf new file mode 100644 index 0000000..e0e011e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/16384-16639.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 16384-16639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/16640-16895.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/16640-16895.pbf new file mode 100644 index 0000000..8c39286 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/16640-16895.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 16640-16895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/16896-17151.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/16896-17151.pbf new file mode 100644 index 0000000..5b96f8b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/16896-17151.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 16896-17151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/17152-17407.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/17152-17407.pbf new file mode 100644 index 0000000..e5704d2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/17152-17407.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 17152-17407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/17408-17663.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/17408-17663.pbf new file mode 100644 index 0000000..2f01888 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/17408-17663.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 17408-17663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/17664-17919.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/17664-17919.pbf new file mode 100644 index 0000000..22b7ccc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/17664-17919.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 17664-17919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/1792-2047.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/1792-2047.pbf new file mode 100644 index 0000000..377c252 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/1792-2047.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 1792-2047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/17920-18175.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/17920-18175.pbf new file mode 100644 index 0000000..ad08e6b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/17920-18175.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 17920-18175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/18176-18431.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/18176-18431.pbf new file mode 100644 index 0000000..9b43ff2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/18176-18431.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 18176-18431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/18432-18687.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/18432-18687.pbf new file mode 100644 index 0000000..26fef1d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/18432-18687.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 18432-18687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/18688-18943.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/18688-18943.pbf new file mode 100644 index 0000000..0bfe6bf --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/18688-18943.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 18688-18943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/18944-19199.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/18944-19199.pbf new file mode 100644 index 0000000..36cce12 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/18944-19199.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 18944-19199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/19200-19455.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/19200-19455.pbf new file mode 100644 index 0000000..d9a9c89 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/19200-19455.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 19200-19455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/19456-19711.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/19456-19711.pbf new file mode 100644 index 0000000..09a4173 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/19456-19711.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 19456-19711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/19712-19967.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/19712-19967.pbf new file mode 100644 index 0000000..e39d17d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/19712-19967.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 19712-19967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/19968-20223.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/19968-20223.pbf new file mode 100644 index 0000000..1806932 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/19968-20223.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 19968-20223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/20224-20479.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/20224-20479.pbf new file mode 100644 index 0000000..a3cacd5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/20224-20479.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 20224-20479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/2048-2303.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/2048-2303.pbf new file mode 100644 index 0000000..9450f75 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/2048-2303.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 2048-2303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/20480-20735.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/20480-20735.pbf new file mode 100644 index 0000000..981bbad --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/20480-20735.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 20480-20735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/20736-20991.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/20736-20991.pbf new file mode 100644 index 0000000..a8c43e4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/20736-20991.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 20736-20991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/20992-21247.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/20992-21247.pbf new file mode 100644 index 0000000..189dc16 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/20992-21247.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 20992-21247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/21248-21503.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/21248-21503.pbf new file mode 100644 index 0000000..ef8507e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/21248-21503.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 21248-21503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/21504-21759.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/21504-21759.pbf new file mode 100644 index 0000000..26674a5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/21504-21759.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 21504-21759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/21760-22015.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/21760-22015.pbf new file mode 100644 index 0000000..ebdc959 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/21760-22015.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 21760-22015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/22016-22271.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/22016-22271.pbf new file mode 100644 index 0000000..4b4a1c8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/22016-22271.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 22016-22271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/22272-22527.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/22272-22527.pbf new file mode 100644 index 0000000..583a683 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/22272-22527.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 22272-22527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/22528-22783.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/22528-22783.pbf new file mode 100644 index 0000000..5137eac --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/22528-22783.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 22528-22783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/22784-23039.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/22784-23039.pbf new file mode 100644 index 0000000..81e817b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/22784-23039.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 22784-23039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/2304-2559.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/2304-2559.pbf new file mode 100644 index 0000000..6061839 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/2304-2559.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 2304-2559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/23040-23295.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/23040-23295.pbf new file mode 100644 index 0000000..55d5ed6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/23040-23295.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 23040-23295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/23296-23551.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/23296-23551.pbf new file mode 100644 index 0000000..b96081c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/23296-23551.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 23296-23551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/23552-23807.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/23552-23807.pbf new file mode 100644 index 0000000..e1833d7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/23552-23807.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 23552-23807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/23808-24063.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/23808-24063.pbf new file mode 100644 index 0000000..e00969f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/23808-24063.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 23808-24063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/24064-24319.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/24064-24319.pbf new file mode 100644 index 0000000..a65734e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/24064-24319.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 24064-24319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/24320-24575.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/24320-24575.pbf new file mode 100644 index 0000000..58c02a6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/24320-24575.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 24320-24575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/24576-24831.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/24576-24831.pbf new file mode 100644 index 0000000..99cab08 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/24576-24831.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 24576-24831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/24832-25087.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/24832-25087.pbf new file mode 100644 index 0000000..bcdacb3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/24832-25087.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 24832-25087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/25088-25343.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/25088-25343.pbf new file mode 100644 index 0000000..44eeeb1 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/25088-25343.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 25088-25343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/25344-25599.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/25344-25599.pbf new file mode 100644 index 0000000..2fd29db --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/25344-25599.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 25344-25599 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/256-511.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/256-511.pbf new file mode 100644 index 0000000..6ae5c18 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/256-511.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/2560-2815.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/2560-2815.pbf new file mode 100644 index 0000000..33ad2ea --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/2560-2815.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 2560-2815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/25600-25855.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/25600-25855.pbf new file mode 100644 index 0000000..c5606c9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/25600-25855.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 25600-25855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/25856-26111.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/25856-26111.pbf new file mode 100644 index 0000000..80b6eed --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/25856-26111.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 25856-26111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/26112-26367.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/26112-26367.pbf new file mode 100644 index 0000000..05521ae --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/26112-26367.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 26112-26367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/26368-26623.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/26368-26623.pbf new file mode 100644 index 0000000..e751e55 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/26368-26623.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 26368-26623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/26624-26879.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/26624-26879.pbf new file mode 100644 index 0000000..a4cbbfd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/26624-26879.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 26624-26879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/26880-27135.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/26880-27135.pbf new file mode 100644 index 0000000..5ddf830 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/26880-27135.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 26880-27135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/27136-27391.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/27136-27391.pbf new file mode 100644 index 0000000..734a48b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/27136-27391.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 27136-27391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/27392-27647.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/27392-27647.pbf new file mode 100644 index 0000000..d29b5e5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/27392-27647.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 27392-27647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/27648-27903.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/27648-27903.pbf new file mode 100644 index 0000000..e5e92ac --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/27648-27903.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 27648-27903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/27904-28159.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/27904-28159.pbf new file mode 100644 index 0000000..5605e7a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/27904-28159.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 27904-28159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/2816-3071.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/2816-3071.pbf new file mode 100644 index 0000000..44a8fd2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/2816-3071.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 2816-3071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/28160-28415.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/28160-28415.pbf new file mode 100644 index 0000000..301c121 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/28160-28415.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 28160-28415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/28416-28671.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/28416-28671.pbf new file mode 100644 index 0000000..78d3adc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/28416-28671.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 28416-28671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/28672-28927.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/28672-28927.pbf new file mode 100644 index 0000000..15fc099 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/28672-28927.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 28672-28927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/28928-29183.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/28928-29183.pbf new file mode 100644 index 0000000..9d3ba3d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/28928-29183.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 28928-29183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/29184-29439.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/29184-29439.pbf new file mode 100644 index 0000000..019dffb --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/29184-29439.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 29184-29439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/29440-29695.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/29440-29695.pbf new file mode 100644 index 0000000..01d1484 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/29440-29695.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 29440-29695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/29696-29951.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/29696-29951.pbf new file mode 100644 index 0000000..63bbdb6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/29696-29951.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 29696-29951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/29952-30207.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/29952-30207.pbf new file mode 100644 index 0000000..091956e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/29952-30207.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 29952-30207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/30208-30463.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/30208-30463.pbf new file mode 100644 index 0000000..61cc776 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/30208-30463.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 30208-30463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/30464-30719.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/30464-30719.pbf new file mode 100644 index 0000000..9bc462f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/30464-30719.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 30464-30719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/3072-3327.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/3072-3327.pbf new file mode 100644 index 0000000..c3feb45 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/3072-3327.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 3072-3327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/30720-30975.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/30720-30975.pbf new file mode 100644 index 0000000..f07aa94 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/30720-30975.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 30720-30975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/30976-31231.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/30976-31231.pbf new file mode 100644 index 0000000..99baacc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/30976-31231.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 30976-31231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/31232-31487.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/31232-31487.pbf new file mode 100644 index 0000000..df0da1b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/31232-31487.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 31232-31487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/31488-31743.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/31488-31743.pbf new file mode 100644 index 0000000..8ae2b38 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/31488-31743.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 31488-31743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/31744-31999.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/31744-31999.pbf new file mode 100644 index 0000000..a4e5eea --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/31744-31999.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 31744-31999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/32000-32255.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/32000-32255.pbf new file mode 100644 index 0000000..4408b27 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/32000-32255.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 32000-32255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/32256-32511.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/32256-32511.pbf new file mode 100644 index 0000000..31dcbf0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/32256-32511.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 32256-32511 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/32512-32767.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/32512-32767.pbf new file mode 100644 index 0000000..945a749 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/32512-32767.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 32512-32767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/32768-33023.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/32768-33023.pbf new file mode 100644 index 0000000..bbd2675 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/32768-33023.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 32768-33023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/33024-33279.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/33024-33279.pbf new file mode 100644 index 0000000..f213ece --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/33024-33279.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 33024-33279 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/3328-3583.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/3328-3583.pbf new file mode 100644 index 0000000..4446b19 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/3328-3583.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 3328-3583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/33280-33535.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/33280-33535.pbf new file mode 100644 index 0000000..274cbfe --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/33280-33535.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 33280-33535 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/33536-33791.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/33536-33791.pbf new file mode 100644 index 0000000..20fdc05 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/33536-33791.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 33536-33791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/33792-34047.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/33792-34047.pbf new file mode 100644 index 0000000..89d3287 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/33792-34047.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 33792-34047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/34048-34303.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/34048-34303.pbf new file mode 100644 index 0000000..6c8a469 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/34048-34303.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 34048-34303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/34304-34559.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/34304-34559.pbf new file mode 100644 index 0000000..82b5ccf --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/34304-34559.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 34304-34559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/34560-34815.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/34560-34815.pbf new file mode 100644 index 0000000..4966f17 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/34560-34815.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 34560-34815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/34816-35071.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/34816-35071.pbf new file mode 100644 index 0000000..42a1a37 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/34816-35071.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 34816-35071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/35072-35327.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/35072-35327.pbf new file mode 100644 index 0000000..74adc73 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/35072-35327.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 35072-35327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/35328-35583.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/35328-35583.pbf new file mode 100644 index 0000000..6f89359 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/35328-35583.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 35328-35583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/35584-35839.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/35584-35839.pbf new file mode 100644 index 0000000..14dd1f0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/35584-35839.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 35584-35839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/3584-3839.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/3584-3839.pbf new file mode 100644 index 0000000..7cdbca5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/3584-3839.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 3584-3839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/35840-36095.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/35840-36095.pbf new file mode 100644 index 0000000..155313b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/35840-36095.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 35840-36095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/36096-36351.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/36096-36351.pbf new file mode 100644 index 0000000..4f6f949 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/36096-36351.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 36096-36351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/36352-36607.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/36352-36607.pbf new file mode 100644 index 0000000..1274e2a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/36352-36607.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 36352-36607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/36608-36863.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/36608-36863.pbf new file mode 100644 index 0000000..89b6027 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/36608-36863.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 36608-36863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/36864-37119.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/36864-37119.pbf new file mode 100644 index 0000000..422920e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/36864-37119.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 36864-37119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/37120-37375.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/37120-37375.pbf new file mode 100644 index 0000000..8a484cc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/37120-37375.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 37120-37375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/37376-37631.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/37376-37631.pbf new file mode 100644 index 0000000..a249485 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/37376-37631.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 37376-37631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/37632-37887.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/37632-37887.pbf new file mode 100644 index 0000000..ba3751d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/37632-37887.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 37632-37887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/37888-38143.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/37888-38143.pbf new file mode 100644 index 0000000..08f8388 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/37888-38143.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 37888-38143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/38144-38399.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/38144-38399.pbf new file mode 100644 index 0000000..856bef2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/38144-38399.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 38144-38399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/3840-4095.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/3840-4095.pbf new file mode 100644 index 0000000..60c3821 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/3840-4095.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 3840-4095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/38400-38655.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/38400-38655.pbf new file mode 100644 index 0000000..13a58d3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/38400-38655.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 38400-38655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/38656-38911.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/38656-38911.pbf new file mode 100644 index 0000000..dce693f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/38656-38911.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 38656-38911 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/38912-39167.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/38912-39167.pbf new file mode 100644 index 0000000..d51ad3e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/38912-39167.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 38912-39167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/39168-39423.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/39168-39423.pbf new file mode 100644 index 0000000..e12d8e2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/39168-39423.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 39168-39423 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/39424-39679.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/39424-39679.pbf new file mode 100644 index 0000000..4b46ea4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/39424-39679.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 39424-39679 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/39680-39935.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/39680-39935.pbf new file mode 100644 index 0000000..8a39eb5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/39680-39935.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 39680-39935 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/39936-40191.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/39936-40191.pbf new file mode 100644 index 0000000..0990ace --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/39936-40191.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 39936-40191 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/40192-40447.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/40192-40447.pbf new file mode 100644 index 0000000..9f5bbaa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/40192-40447.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 40192-40447 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/40448-40703.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/40448-40703.pbf new file mode 100644 index 0000000..ead7da4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/40448-40703.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 40448-40703 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/40704-40959.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/40704-40959.pbf new file mode 100644 index 0000000..99253c3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/40704-40959.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 40704-40959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/4096-4351.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/4096-4351.pbf new file mode 100644 index 0000000..75480af --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/4096-4351.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 4096-4351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/40960-41215.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/40960-41215.pbf new file mode 100644 index 0000000..f4f9f96 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/40960-41215.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 40960-41215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/41216-41471.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/41216-41471.pbf new file mode 100644 index 0000000..bee774c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/41216-41471.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 41216-41471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/41472-41727.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/41472-41727.pbf new file mode 100644 index 0000000..e1cc595 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/41472-41727.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 41472-41727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/41728-41983.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/41728-41983.pbf new file mode 100644 index 0000000..f248763 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/41728-41983.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 41728-41983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/41984-42239.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/41984-42239.pbf new file mode 100644 index 0000000..5dec3a0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/41984-42239.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 41984-42239 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/42240-42495.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/42240-42495.pbf new file mode 100644 index 0000000..6fdfc14 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/42240-42495.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 42240-42495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/42496-42751.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/42496-42751.pbf new file mode 100644 index 0000000..f2eeb86 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/42496-42751.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/42752-43007.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/42752-43007.pbf new file mode 100644 index 0000000..4ba6493 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/42752-43007.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/43008-43263.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/43008-43263.pbf new file mode 100644 index 0000000..f68c752 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/43008-43263.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 43008-43263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/43264-43519.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/43264-43519.pbf new file mode 100644 index 0000000..9d8b980 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/43264-43519.pbf @@ -0,0 +1,4 @@ + +Ä +Noto Sans Regular 43264-43519¡®Ò#8JYequyxtnbVF48Qevƒ•™˜”Œ€saL3Le~‘¡¬µ¹·´ªžy`G`y’«½ÊÔÑÒÔǺ§tZp¦¿Ð¿¶±²·ÂÓº¡†i|š·Ò¸¤—‘’™¨¾Î°’t~³³¦‹yqr{’­³±•vr‰““Žy_RSf‘““„k\msspbL29RfrssiV + (0#8 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/4352-4607.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/4352-4607.pbf new file mode 100644 index 0000000..5a6e0ec --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/4352-4607.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 4352-4607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/43520-43775.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/43520-43775.pbf new file mode 100644 index 0000000..e5b29e5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/43520-43775.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 43520-43775 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/43776-44031.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/43776-44031.pbf new file mode 100644 index 0000000..e8ade05 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/43776-44031.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/44032-44287.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/44032-44287.pbf new file mode 100644 index 0000000..5725d87 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/44032-44287.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 44032-44287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/44288-44543.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/44288-44543.pbf new file mode 100644 index 0000000..f8eaf91 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/44288-44543.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 44288-44543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/44544-44799.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/44544-44799.pbf new file mode 100644 index 0000000..b857745 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/44544-44799.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 44544-44799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/44800-45055.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/44800-45055.pbf new file mode 100644 index 0000000..f00ad6c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/44800-45055.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 44800-45055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/45056-45311.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/45056-45311.pbf new file mode 100644 index 0000000..e112dcf --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/45056-45311.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 45056-45311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/45312-45567.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/45312-45567.pbf new file mode 100644 index 0000000..cf692a4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/45312-45567.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 45312-45567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/45568-45823.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/45568-45823.pbf new file mode 100644 index 0000000..b02f039 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/45568-45823.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 45568-45823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/45824-46079.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/45824-46079.pbf new file mode 100644 index 0000000..7a10106 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/45824-46079.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 45824-46079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/4608-4863.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/4608-4863.pbf new file mode 100644 index 0000000..bb1efb9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/4608-4863.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 4608-4863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/46080-46335.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/46080-46335.pbf new file mode 100644 index 0000000..fa8ccf6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/46080-46335.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 46080-46335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/46336-46591.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/46336-46591.pbf new file mode 100644 index 0000000..06d42f6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/46336-46591.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 46336-46591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/46592-46847.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/46592-46847.pbf new file mode 100644 index 0000000..3c847a4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/46592-46847.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 46592-46847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/46848-47103.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/46848-47103.pbf new file mode 100644 index 0000000..0b74878 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/46848-47103.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 46848-47103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/47104-47359.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/47104-47359.pbf new file mode 100644 index 0000000..263ee26 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/47104-47359.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 47104-47359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/47360-47615.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/47360-47615.pbf new file mode 100644 index 0000000..33a8669 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/47360-47615.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 47360-47615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/47616-47871.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/47616-47871.pbf new file mode 100644 index 0000000..1cd1877 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/47616-47871.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 47616-47871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/47872-48127.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/47872-48127.pbf new file mode 100644 index 0000000..61f8417 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/47872-48127.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 47872-48127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/48128-48383.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/48128-48383.pbf new file mode 100644 index 0000000..ee33172 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/48128-48383.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 48128-48383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/48384-48639.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/48384-48639.pbf new file mode 100644 index 0000000..366067d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/48384-48639.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 48384-48639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/4864-5119.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/4864-5119.pbf new file mode 100644 index 0000000..8879dec --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/4864-5119.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 4864-5119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/48640-48895.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/48640-48895.pbf new file mode 100644 index 0000000..76244d3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/48640-48895.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 48640-48895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/48896-49151.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/48896-49151.pbf new file mode 100644 index 0000000..d4d1204 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/48896-49151.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 48896-49151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/49152-49407.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/49152-49407.pbf new file mode 100644 index 0000000..6a09463 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/49152-49407.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 49152-49407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/49408-49663.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/49408-49663.pbf new file mode 100644 index 0000000..72732fa --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/49408-49663.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 49408-49663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/49664-49919.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/49664-49919.pbf new file mode 100644 index 0000000..09151e2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/49664-49919.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 49664-49919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/49920-50175.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/49920-50175.pbf new file mode 100644 index 0000000..ac24bb3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/49920-50175.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 49920-50175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/50176-50431.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/50176-50431.pbf new file mode 100644 index 0000000..caf0f80 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/50176-50431.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 50176-50431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/50432-50687.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/50432-50687.pbf new file mode 100644 index 0000000..4abcef0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/50432-50687.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 50432-50687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/50688-50943.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/50688-50943.pbf new file mode 100644 index 0000000..cd22694 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/50688-50943.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 50688-50943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/50944-51199.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/50944-51199.pbf new file mode 100644 index 0000000..17a0b1b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/50944-51199.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 50944-51199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/512-767.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/512-767.pbf new file mode 100644 index 0000000..48b08b9 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/512-767.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/5120-5375.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/5120-5375.pbf new file mode 100644 index 0000000..bc9447b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/5120-5375.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 5120-5375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/51200-51455.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/51200-51455.pbf new file mode 100644 index 0000000..43409bd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/51200-51455.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 51200-51455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/51456-51711.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/51456-51711.pbf new file mode 100644 index 0000000..9ab26fd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/51456-51711.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 51456-51711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/51712-51967.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/51712-51967.pbf new file mode 100644 index 0000000..0fc2760 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/51712-51967.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 51712-51967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/51968-52223.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/51968-52223.pbf new file mode 100644 index 0000000..3a29c41 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/51968-52223.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 51968-52223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/52224-52479.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/52224-52479.pbf new file mode 100644 index 0000000..81af9b2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/52224-52479.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 52224-52479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/52480-52735.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/52480-52735.pbf new file mode 100644 index 0000000..958296b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/52480-52735.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 52480-52735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/52736-52991.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/52736-52991.pbf new file mode 100644 index 0000000..5d729f4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/52736-52991.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 52736-52991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/52992-53247.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/52992-53247.pbf new file mode 100644 index 0000000..c091818 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/52992-53247.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 52992-53247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/53248-53503.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/53248-53503.pbf new file mode 100644 index 0000000..97a2c9a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/53248-53503.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 53248-53503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/53504-53759.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/53504-53759.pbf new file mode 100644 index 0000000..4e1bd62 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/53504-53759.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 53504-53759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/5376-5631.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/5376-5631.pbf new file mode 100644 index 0000000..deed8a5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/5376-5631.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 5376-5631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/53760-54015.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/53760-54015.pbf new file mode 100644 index 0000000..b706b3f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/53760-54015.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 53760-54015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/54016-54271.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/54016-54271.pbf new file mode 100644 index 0000000..4425612 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/54016-54271.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 54016-54271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/54272-54527.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/54272-54527.pbf new file mode 100644 index 0000000..e9b4782 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/54272-54527.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 54272-54527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/54528-54783.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/54528-54783.pbf new file mode 100644 index 0000000..2c6866e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/54528-54783.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 54528-54783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/54784-55039.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/54784-55039.pbf new file mode 100644 index 0000000..09decd5 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/54784-55039.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 54784-55039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/55040-55295.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/55040-55295.pbf new file mode 100644 index 0000000..5781ddc --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/55040-55295.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 55040-55295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/55296-55551.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/55296-55551.pbf new file mode 100644 index 0000000..c40557a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/55296-55551.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 55296-55551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/55552-55807.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/55552-55807.pbf new file mode 100644 index 0000000..a824998 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/55552-55807.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 55552-55807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/55808-56063.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/55808-56063.pbf new file mode 100644 index 0000000..ad0953f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/55808-56063.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 55808-56063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/56064-56319.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/56064-56319.pbf new file mode 100644 index 0000000..f3ee3a7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/56064-56319.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 56064-56319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/5632-5887.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/5632-5887.pbf new file mode 100644 index 0000000..b840be7 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/5632-5887.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 5632-5887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/56320-56575.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/56320-56575.pbf new file mode 100644 index 0000000..f32394b --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/56320-56575.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 56320-56575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/56576-56831.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/56576-56831.pbf new file mode 100644 index 0000000..3e30578 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/56576-56831.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 56576-56831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/56832-57087.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/56832-57087.pbf new file mode 100644 index 0000000..fff651c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/56832-57087.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 56832-57087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/57088-57343.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/57088-57343.pbf new file mode 100644 index 0000000..571a2ae --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/57088-57343.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 57088-57343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/57344-57599.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/57344-57599.pbf new file mode 100644 index 0000000..b1bf936 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/57344-57599.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 57344-57599 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/57600-57855.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/57600-57855.pbf new file mode 100644 index 0000000..ce10f31 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/57600-57855.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 57600-57855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/57856-58111.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/57856-58111.pbf new file mode 100644 index 0000000..a9dbbd3 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/57856-58111.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 57856-58111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/58112-58367.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/58112-58367.pbf new file mode 100644 index 0000000..1ac4de0 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/58112-58367.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 58112-58367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/58368-58623.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/58368-58623.pbf new file mode 100644 index 0000000..ffcc72f --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/58368-58623.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 58368-58623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/58624-58879.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/58624-58879.pbf new file mode 100644 index 0000000..7422334 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/58624-58879.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 58624-58879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/5888-6143.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/5888-6143.pbf new file mode 100644 index 0000000..fd39091 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/5888-6143.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 5888-6143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/58880-59135.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/58880-59135.pbf new file mode 100644 index 0000000..604e3a8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/58880-59135.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 58880-59135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/59136-59391.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/59136-59391.pbf new file mode 100644 index 0000000..acff212 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/59136-59391.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 59136-59391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/59392-59647.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/59392-59647.pbf new file mode 100644 index 0000000..34bb633 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/59392-59647.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 59392-59647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/59648-59903.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/59648-59903.pbf new file mode 100644 index 0000000..fb8a908 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/59648-59903.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 59648-59903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/59904-60159.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/59904-60159.pbf new file mode 100644 index 0000000..5a04ed2 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/59904-60159.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 59904-60159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/60160-60415.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/60160-60415.pbf new file mode 100644 index 0000000..3636be4 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/60160-60415.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 60160-60415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/60416-60671.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/60416-60671.pbf new file mode 100644 index 0000000..35edd93 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/60416-60671.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 60416-60671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/60672-60927.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/60672-60927.pbf new file mode 100644 index 0000000..d368efd --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/60672-60927.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 60672-60927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/60928-61183.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/60928-61183.pbf new file mode 100644 index 0000000..2b33182 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/60928-61183.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 60928-61183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/61184-61439.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/61184-61439.pbf new file mode 100644 index 0000000..a79f1b8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/61184-61439.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 61184-61439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/6144-6399.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/6144-6399.pbf new file mode 100644 index 0000000..a20fbec --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/6144-6399.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 6144-6399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/61440-61695.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/61440-61695.pbf new file mode 100644 index 0000000..acf96f6 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/61440-61695.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 61440-61695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/61696-61951.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/61696-61951.pbf new file mode 100644 index 0000000..be08733 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/61696-61951.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 61696-61951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/61952-62207.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/61952-62207.pbf new file mode 100644 index 0000000..22d6fef --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/61952-62207.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 61952-62207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/62208-62463.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/62208-62463.pbf new file mode 100644 index 0000000..55ef180 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/62208-62463.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 62208-62463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/62464-62719.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/62464-62719.pbf new file mode 100644 index 0000000..3736862 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/62464-62719.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 62464-62719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/62720-62975.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/62720-62975.pbf new file mode 100644 index 0000000..d4cc129 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/62720-62975.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 62720-62975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/62976-63231.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/62976-63231.pbf new file mode 100644 index 0000000..90e4c14 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/62976-63231.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 62976-63231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/63232-63487.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/63232-63487.pbf new file mode 100644 index 0000000..f4f305e --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/63232-63487.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 63232-63487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/63488-63743.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/63488-63743.pbf new file mode 100644 index 0000000..e5dd112 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/63488-63743.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 63488-63743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/63744-63999.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/63744-63999.pbf new file mode 100644 index 0000000..a9b7b3c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/63744-63999.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 63744-63999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/6400-6655.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/6400-6655.pbf new file mode 100644 index 0000000..5d33602 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/6400-6655.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 6400-6655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/64000-64255.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/64000-64255.pbf new file mode 100644 index 0000000..115427a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/64000-64255.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 64000-64255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/64256-64511.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/64256-64511.pbf new file mode 100644 index 0000000..379c4b3 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/64256-64511.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/64512-64767.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/64512-64767.pbf new file mode 100644 index 0000000..bffdeb8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/64512-64767.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 64512-64767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/64768-65023.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/64768-65023.pbf new file mode 100644 index 0000000..97c60ec --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/64768-65023.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 64768-65023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/65024-65279.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/65024-65279.pbf new file mode 100644 index 0000000..2bd6c02 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/65024-65279.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/65280-65535.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/65280-65535.pbf new file mode 100644 index 0000000..1cbf497 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/65280-65535.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/6656-6911.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/6656-6911.pbf new file mode 100644 index 0000000..eb12b76 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/6656-6911.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/6912-7167.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/6912-7167.pbf new file mode 100644 index 0000000..f72818d --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/6912-7167.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 6912-7167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/7168-7423.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/7168-7423.pbf new file mode 100644 index 0000000..55f449a Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/7168-7423.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/7424-7679.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/7424-7679.pbf new file mode 100644 index 0000000..4352bea Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/7424-7679.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/768-1023.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/768-1023.pbf new file mode 100644 index 0000000..8a502ad Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/768-1023.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/7680-7935.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/7680-7935.pbf new file mode 100644 index 0000000..5747c50 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/7680-7935.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/7936-8191.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/7936-8191.pbf new file mode 100644 index 0000000..d811b1b Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/7936-8191.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/8192-8447.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/8192-8447.pbf new file mode 100644 index 0000000..5463253 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/8192-8447.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/8448-8703.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/8448-8703.pbf new file mode 100644 index 0000000..dce0912 Binary files /dev/null and b/src/assets/fonts/glyphs/Noto Sans Regular/8448-8703.pbf differ diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/8704-8959.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/8704-8959.pbf new file mode 100644 index 0000000..1216662 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/8704-8959.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 8704-8959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/8960-9215.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/8960-9215.pbf new file mode 100644 index 0000000..f51c27c --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/8960-9215.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 8960-9215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/9216-9471.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/9216-9471.pbf new file mode 100644 index 0000000..7f29cd9 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/9216-9471.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 9216-9471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/9472-9727.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/9472-9727.pbf new file mode 100644 index 0000000..49cb928 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/9472-9727.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 9472-9727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/9728-9983.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/9728-9983.pbf new file mode 100644 index 0000000..627466a --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/9728-9983.pbf @@ -0,0 +1,3 @@ + + +Noto Sans Regular 9728-9983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/Noto Sans Regular/9984-10239.pbf b/src/assets/fonts/glyphs/Noto Sans Regular/9984-10239.pbf new file mode 100644 index 0000000..b3d74d8 --- /dev/null +++ b/src/assets/fonts/glyphs/Noto Sans Regular/9984-10239.pbf @@ -0,0 +1,4 @@ + + +Noto Sans Regular +9984-10239 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/0-255.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/0-255.pbf new file mode 100644 index 0000000..a7acdc6 Binary files /dev/null and b/src/assets/fonts/glyphs/TreetrailSymbols/0-255.pbf differ diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/1024-1279.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/1024-1279.pbf new file mode 100644 index 0000000..db6dabb --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/1024-1279.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 1024-1279 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/10240-10495.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/10240-10495.pbf new file mode 100644 index 0000000..1f76eb4 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/10240-10495.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 10240-10495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/10496-10751.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/10496-10751.pbf new file mode 100644 index 0000000..16a6898 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/10496-10751.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 10496-10751 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/10752-11007.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/10752-11007.pbf new file mode 100644 index 0000000..a7b7096 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/10752-11007.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 10752-11007 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/11008-11263.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/11008-11263.pbf new file mode 100644 index 0000000..023b375 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/11008-11263.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 11008-11263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/11264-11519.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/11264-11519.pbf new file mode 100644 index 0000000..29241af --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/11264-11519.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 11264-11519 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/11520-11775.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/11520-11775.pbf new file mode 100644 index 0000000..59f4e9e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/11520-11775.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 11520-11775 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/11776-12031.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/11776-12031.pbf new file mode 100644 index 0000000..bdd7a76 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/11776-12031.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 11776-12031 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/12032-12287.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/12032-12287.pbf new file mode 100644 index 0000000..dda7398 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/12032-12287.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 12032-12287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/12288-12543.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/12288-12543.pbf new file mode 100644 index 0000000..43ae374 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/12288-12543.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 12288-12543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/12544-12799.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/12544-12799.pbf new file mode 100644 index 0000000..06cf359 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/12544-12799.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 12544-12799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/1280-1535.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/1280-1535.pbf new file mode 100644 index 0000000..111795a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/1280-1535.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 1280-1535 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/12800-13055.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/12800-13055.pbf new file mode 100644 index 0000000..ad3f1f6 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/12800-13055.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 12800-13055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/13056-13311.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/13056-13311.pbf new file mode 100644 index 0000000..b9e2064 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/13056-13311.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 13056-13311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/13312-13567.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/13312-13567.pbf new file mode 100644 index 0000000..b91fc14 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/13312-13567.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 13312-13567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/13568-13823.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/13568-13823.pbf new file mode 100644 index 0000000..06b8809 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/13568-13823.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 13568-13823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/13824-14079.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/13824-14079.pbf new file mode 100644 index 0000000..b3491c5 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/13824-14079.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 13824-14079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/14080-14335.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/14080-14335.pbf new file mode 100644 index 0000000..34f8454 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/14080-14335.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 14080-14335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/14336-14591.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/14336-14591.pbf new file mode 100644 index 0000000..c747a4e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/14336-14591.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 14336-14591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/14592-14847.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/14592-14847.pbf new file mode 100644 index 0000000..3e00485 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/14592-14847.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 14592-14847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/14848-15103.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/14848-15103.pbf new file mode 100644 index 0000000..2363da9 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/14848-15103.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 14848-15103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/15104-15359.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/15104-15359.pbf new file mode 100644 index 0000000..92d9a0c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/15104-15359.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 15104-15359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/1536-1791.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/1536-1791.pbf new file mode 100644 index 0000000..e732c7d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/1536-1791.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 1536-1791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/15360-15615.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/15360-15615.pbf new file mode 100644 index 0000000..33f4276 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/15360-15615.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 15360-15615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/15616-15871.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/15616-15871.pbf new file mode 100644 index 0000000..6c15e1a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/15616-15871.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 15616-15871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/15872-16127.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/15872-16127.pbf new file mode 100644 index 0000000..9aab6a6 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/15872-16127.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 15872-16127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/16128-16383.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/16128-16383.pbf new file mode 100644 index 0000000..89638e6 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/16128-16383.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 16128-16383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/16384-16639.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/16384-16639.pbf new file mode 100644 index 0000000..1f98b1d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/16384-16639.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 16384-16639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/16640-16895.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/16640-16895.pbf new file mode 100644 index 0000000..fd9463d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/16640-16895.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 16640-16895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/16896-17151.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/16896-17151.pbf new file mode 100644 index 0000000..c863f47 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/16896-17151.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 16896-17151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/17152-17407.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/17152-17407.pbf new file mode 100644 index 0000000..9b39361 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/17152-17407.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 17152-17407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/17408-17663.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/17408-17663.pbf new file mode 100644 index 0000000..4639fb2 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/17408-17663.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 17408-17663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/17664-17919.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/17664-17919.pbf new file mode 100644 index 0000000..7921965 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/17664-17919.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 17664-17919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/1792-2047.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/1792-2047.pbf new file mode 100644 index 0000000..19c7f7b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/1792-2047.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 1792-2047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/17920-18175.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/17920-18175.pbf new file mode 100644 index 0000000..20d7576 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/17920-18175.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 17920-18175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/18176-18431.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/18176-18431.pbf new file mode 100644 index 0000000..7efbb9a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/18176-18431.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 18176-18431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/18432-18687.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/18432-18687.pbf new file mode 100644 index 0000000..8a86eeb --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/18432-18687.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 18432-18687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/18688-18943.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/18688-18943.pbf new file mode 100644 index 0000000..b380859 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/18688-18943.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 18688-18943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/18944-19199.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/18944-19199.pbf new file mode 100644 index 0000000..577ea70 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/18944-19199.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 18944-19199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/19200-19455.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/19200-19455.pbf new file mode 100644 index 0000000..d49d0e9 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/19200-19455.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 19200-19455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/19456-19711.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/19456-19711.pbf new file mode 100644 index 0000000..231bb55 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/19456-19711.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 19456-19711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/19712-19967.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/19712-19967.pbf new file mode 100644 index 0000000..fe037ac --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/19712-19967.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 19712-19967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/19968-20223.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/19968-20223.pbf new file mode 100644 index 0000000..12194cb --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/19968-20223.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 19968-20223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/20224-20479.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/20224-20479.pbf new file mode 100644 index 0000000..80861a3 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/20224-20479.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 20224-20479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/2048-2303.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/2048-2303.pbf new file mode 100644 index 0000000..275a71c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/2048-2303.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 2048-2303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/20480-20735.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/20480-20735.pbf new file mode 100644 index 0000000..daf90b7 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/20480-20735.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 20480-20735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/20736-20991.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/20736-20991.pbf new file mode 100644 index 0000000..c74d71d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/20736-20991.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 20736-20991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/20992-21247.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/20992-21247.pbf new file mode 100644 index 0000000..0598839 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/20992-21247.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 20992-21247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/21248-21503.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/21248-21503.pbf new file mode 100644 index 0000000..37824fd --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/21248-21503.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 21248-21503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/21504-21759.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/21504-21759.pbf new file mode 100644 index 0000000..136c1ca --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/21504-21759.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 21504-21759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/21760-22015.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/21760-22015.pbf new file mode 100644 index 0000000..bd8d512 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/21760-22015.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 21760-22015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/22016-22271.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/22016-22271.pbf new file mode 100644 index 0000000..3386d79 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/22016-22271.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 22016-22271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/22272-22527.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/22272-22527.pbf new file mode 100644 index 0000000..ed908a4 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/22272-22527.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 22272-22527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/22528-22783.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/22528-22783.pbf new file mode 100644 index 0000000..c417a1a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/22528-22783.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 22528-22783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/22784-23039.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/22784-23039.pbf new file mode 100644 index 0000000..f8c2eb5 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/22784-23039.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 22784-23039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/2304-2559.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/2304-2559.pbf new file mode 100644 index 0000000..485aab5 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/2304-2559.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 2304-2559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/23040-23295.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/23040-23295.pbf new file mode 100644 index 0000000..595d3e0 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/23040-23295.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 23040-23295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/23296-23551.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/23296-23551.pbf new file mode 100644 index 0000000..b029864 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/23296-23551.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 23296-23551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/23552-23807.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/23552-23807.pbf new file mode 100644 index 0000000..185f4d5 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/23552-23807.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 23552-23807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/23808-24063.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/23808-24063.pbf new file mode 100644 index 0000000..af9bdef --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/23808-24063.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 23808-24063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/24064-24319.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/24064-24319.pbf new file mode 100644 index 0000000..a5bd09e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/24064-24319.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 24064-24319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/24320-24575.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/24320-24575.pbf new file mode 100644 index 0000000..6a58134 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/24320-24575.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 24320-24575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/24576-24831.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/24576-24831.pbf new file mode 100644 index 0000000..0c3574d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/24576-24831.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 24576-24831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/24832-25087.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/24832-25087.pbf new file mode 100644 index 0000000..90a5359 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/24832-25087.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 24832-25087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/25088-25343.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/25088-25343.pbf new file mode 100644 index 0000000..c279924 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/25088-25343.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 25088-25343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/25344-25599.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/25344-25599.pbf new file mode 100644 index 0000000..6a1264f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/25344-25599.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 25344-25599 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/256-511.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/256-511.pbf new file mode 100644 index 0000000..157c562 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/256-511.pbf @@ -0,0 +1,3 @@ + +# +treetrailSymbols Regular256-511 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/2560-2815.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/2560-2815.pbf new file mode 100644 index 0000000..0a45a01 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/2560-2815.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 2560-2815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/25600-25855.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/25600-25855.pbf new file mode 100644 index 0000000..8f7d63c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/25600-25855.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 25600-25855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/25856-26111.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/25856-26111.pbf new file mode 100644 index 0000000..b40bdf1 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/25856-26111.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 25856-26111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/26112-26367.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/26112-26367.pbf new file mode 100644 index 0000000..229404e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/26112-26367.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 26112-26367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/26368-26623.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/26368-26623.pbf new file mode 100644 index 0000000..65824d0 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/26368-26623.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 26368-26623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/26624-26879.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/26624-26879.pbf new file mode 100644 index 0000000..f0ddf87 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/26624-26879.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 26624-26879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/26880-27135.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/26880-27135.pbf new file mode 100644 index 0000000..4771c19 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/26880-27135.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 26880-27135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/27136-27391.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/27136-27391.pbf new file mode 100644 index 0000000..922cbad --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/27136-27391.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 27136-27391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/27392-27647.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/27392-27647.pbf new file mode 100644 index 0000000..e13849b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/27392-27647.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 27392-27647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/27648-27903.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/27648-27903.pbf new file mode 100644 index 0000000..631c879 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/27648-27903.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 27648-27903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/27904-28159.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/27904-28159.pbf new file mode 100644 index 0000000..c1750ff --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/27904-28159.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 27904-28159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/2816-3071.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/2816-3071.pbf new file mode 100644 index 0000000..8df1034 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/2816-3071.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 2816-3071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/28160-28415.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/28160-28415.pbf new file mode 100644 index 0000000..01a1e45 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/28160-28415.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 28160-28415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/28416-28671.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/28416-28671.pbf new file mode 100644 index 0000000..a6fdf44 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/28416-28671.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 28416-28671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/28672-28927.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/28672-28927.pbf new file mode 100644 index 0000000..86e7924 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/28672-28927.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 28672-28927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/28928-29183.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/28928-29183.pbf new file mode 100644 index 0000000..293f3da --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/28928-29183.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 28928-29183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/29184-29439.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/29184-29439.pbf new file mode 100644 index 0000000..705a4cb --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/29184-29439.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 29184-29439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/29440-29695.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/29440-29695.pbf new file mode 100644 index 0000000..d91f619 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/29440-29695.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 29440-29695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/29696-29951.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/29696-29951.pbf new file mode 100644 index 0000000..bccecbe --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/29696-29951.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 29696-29951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/29952-30207.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/29952-30207.pbf new file mode 100644 index 0000000..27e4e02 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/29952-30207.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 29952-30207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/30208-30463.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/30208-30463.pbf new file mode 100644 index 0000000..5b447af --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/30208-30463.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 30208-30463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/30464-30719.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/30464-30719.pbf new file mode 100644 index 0000000..05703ab --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/30464-30719.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 30464-30719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/3072-3327.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/3072-3327.pbf new file mode 100644 index 0000000..668ce96 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/3072-3327.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 3072-3327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/30720-30975.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/30720-30975.pbf new file mode 100644 index 0000000..e9ebc45 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/30720-30975.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 30720-30975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/30976-31231.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/30976-31231.pbf new file mode 100644 index 0000000..450f46b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/30976-31231.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 30976-31231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/31232-31487.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/31232-31487.pbf new file mode 100644 index 0000000..bb21445 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/31232-31487.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 31232-31487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/31488-31743.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/31488-31743.pbf new file mode 100644 index 0000000..2453181 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/31488-31743.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 31488-31743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/31744-31999.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/31744-31999.pbf new file mode 100644 index 0000000..134fc7e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/31744-31999.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 31744-31999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/32000-32255.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/32000-32255.pbf new file mode 100644 index 0000000..a004558 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/32000-32255.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 32000-32255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/32256-32511.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/32256-32511.pbf new file mode 100644 index 0000000..f7a3374 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/32256-32511.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 32256-32511 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/32512-32767.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/32512-32767.pbf new file mode 100644 index 0000000..1a15ef1 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/32512-32767.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 32512-32767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/32768-33023.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/32768-33023.pbf new file mode 100644 index 0000000..c0af920 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/32768-33023.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 32768-33023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/33024-33279.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/33024-33279.pbf new file mode 100644 index 0000000..5031b30 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/33024-33279.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 33024-33279 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/3328-3583.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/3328-3583.pbf new file mode 100644 index 0000000..366ba8e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/3328-3583.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 3328-3583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/33280-33535.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/33280-33535.pbf new file mode 100644 index 0000000..644bb44 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/33280-33535.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 33280-33535 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/33536-33791.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/33536-33791.pbf new file mode 100644 index 0000000..1b84426 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/33536-33791.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 33536-33791 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/33792-34047.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/33792-34047.pbf new file mode 100644 index 0000000..e4a6957 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/33792-34047.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 33792-34047 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/34048-34303.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/34048-34303.pbf new file mode 100644 index 0000000..ac0184a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/34048-34303.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 34048-34303 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/34304-34559.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/34304-34559.pbf new file mode 100644 index 0000000..5265c45 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/34304-34559.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 34304-34559 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/34560-34815.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/34560-34815.pbf new file mode 100644 index 0000000..c884037 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/34560-34815.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 34560-34815 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/34816-35071.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/34816-35071.pbf new file mode 100644 index 0000000..0591b6d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/34816-35071.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 34816-35071 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/35072-35327.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/35072-35327.pbf new file mode 100644 index 0000000..03c8f1e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/35072-35327.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 35072-35327 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/35328-35583.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/35328-35583.pbf new file mode 100644 index 0000000..6d3b3f8 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/35328-35583.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 35328-35583 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/35584-35839.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/35584-35839.pbf new file mode 100644 index 0000000..e7d49dc --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/35584-35839.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 35584-35839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/3584-3839.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/3584-3839.pbf new file mode 100644 index 0000000..020a6a1 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/3584-3839.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 3584-3839 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/35840-36095.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/35840-36095.pbf new file mode 100644 index 0000000..1e1f5f8 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/35840-36095.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 35840-36095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/36096-36351.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/36096-36351.pbf new file mode 100644 index 0000000..44d6dae --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/36096-36351.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 36096-36351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/36352-36607.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/36352-36607.pbf new file mode 100644 index 0000000..5651f64 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/36352-36607.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 36352-36607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/36608-36863.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/36608-36863.pbf new file mode 100644 index 0000000..4992220 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/36608-36863.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 36608-36863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/36864-37119.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/36864-37119.pbf new file mode 100644 index 0000000..b5d28e0 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/36864-37119.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 36864-37119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/37120-37375.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/37120-37375.pbf new file mode 100644 index 0000000..f1ed28e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/37120-37375.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 37120-37375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/37376-37631.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/37376-37631.pbf new file mode 100644 index 0000000..afdda4b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/37376-37631.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 37376-37631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/37632-37887.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/37632-37887.pbf new file mode 100644 index 0000000..bbc2c23 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/37632-37887.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 37632-37887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/37888-38143.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/37888-38143.pbf new file mode 100644 index 0000000..a5ef241 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/37888-38143.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 37888-38143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/38144-38399.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/38144-38399.pbf new file mode 100644 index 0000000..fdc10e2 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/38144-38399.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 38144-38399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/3840-4095.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/3840-4095.pbf new file mode 100644 index 0000000..c1ca99a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/3840-4095.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 3840-4095 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/38400-38655.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/38400-38655.pbf new file mode 100644 index 0000000..9ee56ee --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/38400-38655.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 38400-38655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/38656-38911.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/38656-38911.pbf new file mode 100644 index 0000000..f1e997a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/38656-38911.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 38656-38911 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/38912-39167.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/38912-39167.pbf new file mode 100644 index 0000000..08ea291 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/38912-39167.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 38912-39167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/39168-39423.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/39168-39423.pbf new file mode 100644 index 0000000..20d01cc --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/39168-39423.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 39168-39423 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/39424-39679.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/39424-39679.pbf new file mode 100644 index 0000000..4e6e4ed --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/39424-39679.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 39424-39679 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/39680-39935.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/39680-39935.pbf new file mode 100644 index 0000000..aa36197 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/39680-39935.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 39680-39935 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/39936-40191.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/39936-40191.pbf new file mode 100644 index 0000000..8f5d8b2 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/39936-40191.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 39936-40191 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/40192-40447.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/40192-40447.pbf new file mode 100644 index 0000000..59599de --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/40192-40447.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 40192-40447 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/40448-40703.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/40448-40703.pbf new file mode 100644 index 0000000..b0977ad --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/40448-40703.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 40448-40703 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/40704-40959.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/40704-40959.pbf new file mode 100644 index 0000000..5cfc3cc --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/40704-40959.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 40704-40959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/4096-4351.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/4096-4351.pbf new file mode 100644 index 0000000..daf8ddb --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/4096-4351.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 4096-4351 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/40960-41215.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/40960-41215.pbf new file mode 100644 index 0000000..5bc8151 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/40960-41215.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 40960-41215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/41216-41471.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/41216-41471.pbf new file mode 100644 index 0000000..d0e5df1 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/41216-41471.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 41216-41471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/41472-41727.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/41472-41727.pbf new file mode 100644 index 0000000..f003fac --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/41472-41727.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 41472-41727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/41728-41983.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/41728-41983.pbf new file mode 100644 index 0000000..f3036e7 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/41728-41983.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 41728-41983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/41984-42239.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/41984-42239.pbf new file mode 100644 index 0000000..e7c0708 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/41984-42239.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 41984-42239 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/42240-42495.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/42240-42495.pbf new file mode 100644 index 0000000..a69e08f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/42240-42495.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 42240-42495 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/42496-42751.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/42496-42751.pbf new file mode 100644 index 0000000..02c7ac3 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/42496-42751.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 42496-42751 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/42752-43007.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/42752-43007.pbf new file mode 100644 index 0000000..477cbcd --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/42752-43007.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 42752-43007 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/43008-43263.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/43008-43263.pbf new file mode 100644 index 0000000..f6fd1dd --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/43008-43263.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 43008-43263 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/43264-43519.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/43264-43519.pbf new file mode 100644 index 0000000..b425f08 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/43264-43519.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 43264-43519 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/4352-4607.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/4352-4607.pbf new file mode 100644 index 0000000..b9e78e0 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/4352-4607.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 4352-4607 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/43520-43775.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/43520-43775.pbf new file mode 100644 index 0000000..eb62294 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/43520-43775.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 43520-43775 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/43776-44031.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/43776-44031.pbf new file mode 100644 index 0000000..9a1f4c1 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/43776-44031.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 43776-44031 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/44032-44287.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/44032-44287.pbf new file mode 100644 index 0000000..55383c0 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/44032-44287.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 44032-44287 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/44288-44543.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/44288-44543.pbf new file mode 100644 index 0000000..c0f9364 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/44288-44543.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 44288-44543 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/44544-44799.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/44544-44799.pbf new file mode 100644 index 0000000..7162317 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/44544-44799.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 44544-44799 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/44800-45055.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/44800-45055.pbf new file mode 100644 index 0000000..7308eaa --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/44800-45055.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 44800-45055 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/45056-45311.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/45056-45311.pbf new file mode 100644 index 0000000..8a701f6 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/45056-45311.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 45056-45311 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/45312-45567.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/45312-45567.pbf new file mode 100644 index 0000000..72ecdd4 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/45312-45567.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 45312-45567 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/45568-45823.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/45568-45823.pbf new file mode 100644 index 0000000..144195e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/45568-45823.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 45568-45823 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/45824-46079.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/45824-46079.pbf new file mode 100644 index 0000000..36e5c1e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/45824-46079.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 45824-46079 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/4608-4863.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/4608-4863.pbf new file mode 100644 index 0000000..8bd2578 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/4608-4863.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 4608-4863 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/46080-46335.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/46080-46335.pbf new file mode 100644 index 0000000..4d683e8 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/46080-46335.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 46080-46335 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/46336-46591.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/46336-46591.pbf new file mode 100644 index 0000000..c02b805 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/46336-46591.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 46336-46591 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/46592-46847.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/46592-46847.pbf new file mode 100644 index 0000000..c678513 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/46592-46847.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 46592-46847 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/46848-47103.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/46848-47103.pbf new file mode 100644 index 0000000..03d6817 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/46848-47103.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 46848-47103 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/47104-47359.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/47104-47359.pbf new file mode 100644 index 0000000..609c3ab --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/47104-47359.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 47104-47359 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/47360-47615.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/47360-47615.pbf new file mode 100644 index 0000000..9208328 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/47360-47615.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 47360-47615 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/47616-47871.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/47616-47871.pbf new file mode 100644 index 0000000..d073c76 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/47616-47871.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 47616-47871 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/47872-48127.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/47872-48127.pbf new file mode 100644 index 0000000..2a48742 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/47872-48127.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 47872-48127 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/48128-48383.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/48128-48383.pbf new file mode 100644 index 0000000..fd1644b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/48128-48383.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 48128-48383 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/48384-48639.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/48384-48639.pbf new file mode 100644 index 0000000..14eb503 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/48384-48639.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 48384-48639 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/4864-5119.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/4864-5119.pbf new file mode 100644 index 0000000..dd7d989 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/4864-5119.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 4864-5119 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/48640-48895.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/48640-48895.pbf new file mode 100644 index 0000000..ca91eb6 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/48640-48895.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 48640-48895 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/48896-49151.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/48896-49151.pbf new file mode 100644 index 0000000..e6aa299 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/48896-49151.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 48896-49151 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/49152-49407.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/49152-49407.pbf new file mode 100644 index 0000000..f6e9d42 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/49152-49407.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 49152-49407 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/49408-49663.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/49408-49663.pbf new file mode 100644 index 0000000..93c7bbe --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/49408-49663.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 49408-49663 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/49664-49919.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/49664-49919.pbf new file mode 100644 index 0000000..17df454 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/49664-49919.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 49664-49919 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/49920-50175.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/49920-50175.pbf new file mode 100644 index 0000000..cc350c4 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/49920-50175.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 49920-50175 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/50176-50431.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/50176-50431.pbf new file mode 100644 index 0000000..0c80ffe --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/50176-50431.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 50176-50431 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/50432-50687.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/50432-50687.pbf new file mode 100644 index 0000000..d182f77 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/50432-50687.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 50432-50687 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/50688-50943.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/50688-50943.pbf new file mode 100644 index 0000000..c205f67 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/50688-50943.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 50688-50943 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/50944-51199.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/50944-51199.pbf new file mode 100644 index 0000000..0ca9c4f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/50944-51199.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 50944-51199 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/512-767.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/512-767.pbf new file mode 100644 index 0000000..4776de4 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/512-767.pbf @@ -0,0 +1,3 @@ + +# +treetrailSymbols Regular512-767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/5120-5375.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/5120-5375.pbf new file mode 100644 index 0000000..ab03418 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/5120-5375.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 5120-5375 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/51200-51455.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/51200-51455.pbf new file mode 100644 index 0000000..17ff8fe --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/51200-51455.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 51200-51455 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/51456-51711.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/51456-51711.pbf new file mode 100644 index 0000000..741857c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/51456-51711.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 51456-51711 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/51712-51967.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/51712-51967.pbf new file mode 100644 index 0000000..3b30c7c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/51712-51967.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 51712-51967 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/51968-52223.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/51968-52223.pbf new file mode 100644 index 0000000..4f2393f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/51968-52223.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 51968-52223 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/52224-52479.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/52224-52479.pbf new file mode 100644 index 0000000..eef9208 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/52224-52479.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 52224-52479 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/52480-52735.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/52480-52735.pbf new file mode 100644 index 0000000..8a762ef --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/52480-52735.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 52480-52735 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/52736-52991.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/52736-52991.pbf new file mode 100644 index 0000000..38f873c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/52736-52991.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 52736-52991 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/52992-53247.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/52992-53247.pbf new file mode 100644 index 0000000..7283ae9 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/52992-53247.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 52992-53247 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/53248-53503.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/53248-53503.pbf new file mode 100644 index 0000000..9e5dee0 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/53248-53503.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 53248-53503 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/53504-53759.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/53504-53759.pbf new file mode 100644 index 0000000..8620142 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/53504-53759.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 53504-53759 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/5376-5631.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/5376-5631.pbf new file mode 100644 index 0000000..c6b6512 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/5376-5631.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 5376-5631 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/53760-54015.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/53760-54015.pbf new file mode 100644 index 0000000..1141d20 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/53760-54015.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 53760-54015 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/54016-54271.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/54016-54271.pbf new file mode 100644 index 0000000..902614e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/54016-54271.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 54016-54271 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/54272-54527.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/54272-54527.pbf new file mode 100644 index 0000000..52f9e1c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/54272-54527.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 54272-54527 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/54528-54783.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/54528-54783.pbf new file mode 100644 index 0000000..ada65e6 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/54528-54783.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 54528-54783 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/54784-55039.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/54784-55039.pbf new file mode 100644 index 0000000..ee70286 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/54784-55039.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 54784-55039 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/55040-55295.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/55040-55295.pbf new file mode 100644 index 0000000..ce5887f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/55040-55295.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 55040-55295 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/55296-55551.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/55296-55551.pbf new file mode 100644 index 0000000..bf7e302 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/55296-55551.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 55296-55551 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/55552-55807.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/55552-55807.pbf new file mode 100644 index 0000000..c500766 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/55552-55807.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 55552-55807 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/55808-56063.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/55808-56063.pbf new file mode 100644 index 0000000..e93f210 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/55808-56063.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 55808-56063 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/56064-56319.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/56064-56319.pbf new file mode 100644 index 0000000..fd6a4cd --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/56064-56319.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 56064-56319 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/5632-5887.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/5632-5887.pbf new file mode 100644 index 0000000..1d47166 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/5632-5887.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 5632-5887 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/56320-56575.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/56320-56575.pbf new file mode 100644 index 0000000..951362f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/56320-56575.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 56320-56575 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/56576-56831.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/56576-56831.pbf new file mode 100644 index 0000000..b9594cc --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/56576-56831.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 56576-56831 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/56832-57087.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/56832-57087.pbf new file mode 100644 index 0000000..2f1257c --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/56832-57087.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 56832-57087 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/57088-57343.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/57088-57343.pbf new file mode 100644 index 0000000..f7c6a06 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/57088-57343.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 57088-57343 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/57344-57599.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/57344-57599.pbf new file mode 100644 index 0000000..2bd03c6 Binary files /dev/null and b/src/assets/fonts/glyphs/TreetrailSymbols/57344-57599.pbf differ diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/57600-57855.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/57600-57855.pbf new file mode 100644 index 0000000..f6f75e1 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/57600-57855.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 57600-57855 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/57856-58111.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/57856-58111.pbf new file mode 100644 index 0000000..03b95d8 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/57856-58111.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 57856-58111 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/58112-58367.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/58112-58367.pbf new file mode 100644 index 0000000..aea5678 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/58112-58367.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 58112-58367 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/58368-58623.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/58368-58623.pbf new file mode 100644 index 0000000..7cef306 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/58368-58623.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 58368-58623 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/58624-58879.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/58624-58879.pbf new file mode 100644 index 0000000..1f6bffc --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/58624-58879.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 58624-58879 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/5888-6143.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/5888-6143.pbf new file mode 100644 index 0000000..6f0832f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/5888-6143.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 5888-6143 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/58880-59135.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/58880-59135.pbf new file mode 100644 index 0000000..aa8851f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/58880-59135.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 58880-59135 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/59136-59391.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/59136-59391.pbf new file mode 100644 index 0000000..70f45c8 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/59136-59391.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 59136-59391 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/59392-59647.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/59392-59647.pbf new file mode 100644 index 0000000..2d95f77 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/59392-59647.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 59392-59647 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/59648-59903.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/59648-59903.pbf new file mode 100644 index 0000000..47c547a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/59648-59903.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 59648-59903 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/59904-60159.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/59904-60159.pbf new file mode 100644 index 0000000..014f90d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/59904-60159.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 59904-60159 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/60160-60415.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/60160-60415.pbf new file mode 100644 index 0000000..2881642 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/60160-60415.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 60160-60415 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/60416-60671.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/60416-60671.pbf new file mode 100644 index 0000000..bb8a596 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/60416-60671.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 60416-60671 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/60672-60927.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/60672-60927.pbf new file mode 100644 index 0000000..86c17fb --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/60672-60927.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 60672-60927 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/60928-61183.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/60928-61183.pbf new file mode 100644 index 0000000..99c3376 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/60928-61183.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 60928-61183 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/61184-61439.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/61184-61439.pbf new file mode 100644 index 0000000..4a2c54a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/61184-61439.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 61184-61439 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/6144-6399.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/6144-6399.pbf new file mode 100644 index 0000000..da7e396 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/6144-6399.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 6144-6399 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/61440-61695.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/61440-61695.pbf new file mode 100644 index 0000000..cb6a2a0 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/61440-61695.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 61440-61695 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/61696-61951.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/61696-61951.pbf new file mode 100644 index 0000000..607e44a --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/61696-61951.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 61696-61951 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/61952-62207.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/61952-62207.pbf new file mode 100644 index 0000000..e6ef671 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/61952-62207.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 61952-62207 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/62208-62463.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/62208-62463.pbf new file mode 100644 index 0000000..3f38552 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/62208-62463.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 62208-62463 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/62464-62719.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/62464-62719.pbf new file mode 100644 index 0000000..fa9e61f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/62464-62719.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 62464-62719 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/62720-62975.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/62720-62975.pbf new file mode 100644 index 0000000..4e90cf8 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/62720-62975.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 62720-62975 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/62976-63231.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/62976-63231.pbf new file mode 100644 index 0000000..5c29e36 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/62976-63231.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 62976-63231 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/63232-63487.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/63232-63487.pbf new file mode 100644 index 0000000..9542072 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/63232-63487.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 63232-63487 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/63488-63743.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/63488-63743.pbf new file mode 100644 index 0000000..75afdc1 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/63488-63743.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 63488-63743 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/63744-63999.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/63744-63999.pbf new file mode 100644 index 0000000..601f9f6 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/63744-63999.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 63744-63999 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/6400-6655.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/6400-6655.pbf new file mode 100644 index 0000000..8d82100 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/6400-6655.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 6400-6655 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/64000-64255.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/64000-64255.pbf new file mode 100644 index 0000000..7e664e2 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/64000-64255.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 64000-64255 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/64256-64511.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/64256-64511.pbf new file mode 100644 index 0000000..086447f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/64256-64511.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 64256-64511 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/64512-64767.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/64512-64767.pbf new file mode 100644 index 0000000..3febe5b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/64512-64767.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 64512-64767 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/64768-65023.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/64768-65023.pbf new file mode 100644 index 0000000..96c4032 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/64768-65023.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 64768-65023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/65024-65279.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/65024-65279.pbf new file mode 100644 index 0000000..f480d4e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/65024-65279.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 65024-65279 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/65280-65535.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/65280-65535.pbf new file mode 100644 index 0000000..4f39b17 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/65280-65535.pbf @@ -0,0 +1,3 @@ + +' +treetrailSymbols Regular 65280-65535 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/6656-6911.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/6656-6911.pbf new file mode 100644 index 0000000..81af315 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/6656-6911.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 6656-6911 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/6912-7167.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/6912-7167.pbf new file mode 100644 index 0000000..095790e --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/6912-7167.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 6912-7167 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/7168-7423.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/7168-7423.pbf new file mode 100644 index 0000000..c2eeb4b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/7168-7423.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 7168-7423 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/7424-7679.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/7424-7679.pbf new file mode 100644 index 0000000..25c28ba --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/7424-7679.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 7424-7679 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/768-1023.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/768-1023.pbf new file mode 100644 index 0000000..c96e26f --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/768-1023.pbf @@ -0,0 +1,3 @@ + +$ +treetrailSymbols Regular768-1023 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/7680-7935.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/7680-7935.pbf new file mode 100644 index 0000000..25d38a5 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/7680-7935.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 7680-7935 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/7936-8191.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/7936-8191.pbf new file mode 100644 index 0000000..9dbcf60 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/7936-8191.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 7936-8191 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/8192-8447.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/8192-8447.pbf new file mode 100644 index 0000000..3057fcf --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/8192-8447.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 8192-8447 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/8448-8703.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/8448-8703.pbf new file mode 100644 index 0000000..7f15281 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/8448-8703.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 8448-8703 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/8704-8959.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/8704-8959.pbf new file mode 100644 index 0000000..d10bad9 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/8704-8959.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 8704-8959 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/8960-9215.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/8960-9215.pbf new file mode 100644 index 0000000..f26ff5d --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/8960-9215.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 8960-9215 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/9216-9471.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/9216-9471.pbf new file mode 100644 index 0000000..53e7df2 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/9216-9471.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 9216-9471 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/9472-9727.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/9472-9727.pbf new file mode 100644 index 0000000..efd1b99 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/9472-9727.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 9472-9727 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/9728-9983.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/9728-9983.pbf new file mode 100644 index 0000000..74b3744 --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/9728-9983.pbf @@ -0,0 +1,3 @@ + +% +treetrailSymbols Regular 9728-9983 \ No newline at end of file diff --git a/src/assets/fonts/glyphs/TreetrailSymbols/9984-10239.pbf b/src/assets/fonts/glyphs/TreetrailSymbols/9984-10239.pbf new file mode 100644 index 0000000..1f9a74b --- /dev/null +++ b/src/assets/fonts/glyphs/TreetrailSymbols/9984-10239.pbf @@ -0,0 +1,4 @@ + +& +treetrailSymbols Regular +9984-10239 \ No newline at end of file diff --git a/src/assets/fonts/materialicons copy.woff2 b/src/assets/fonts/materialicons copy.woff2 new file mode 100644 index 0000000..b283233 Binary files /dev/null and b/src/assets/fonts/materialicons copy.woff2 differ diff --git a/src/assets/fonts/materialicons.woff2 b/src/assets/fonts/materialicons.woff2 new file mode 100644 index 0000000..b283233 Binary files /dev/null and b/src/assets/fonts/materialicons.woff2 differ diff --git a/src/assets/fonts/roboto.woff2 b/src/assets/fonts/roboto.woff2 new file mode 100644 index 0000000..e66ca58 Binary files /dev/null and b/src/assets/fonts/roboto.woff2 differ diff --git a/src/assets/fonts/treetrailSymbols.bf b/src/assets/fonts/treetrailSymbols.bf new file mode 100644 index 0000000..c0b14b7 --- /dev/null +++ b/src/assets/fonts/treetrailSymbols.bf @@ -0,0 +1,1905 @@ + + +4.26 + + +treetrailSymbols +treetrailSymbols +Regular +false +false +treetrailSymbols +treetrailSymbols +Version 1.0 +Font for Treetrail symbols +SIL Open Font License + + +SIL Open Font License + + +http://scripts.sil.org/OFL +400 +0 +1024 + + +Philippe May + +Bird + +-10 +3.5 +false +false +false + + + 84 + 70.26179 + 56 + 0 + -20 + -27 + 10 + + + + + + + + +TreetrailSymbols + +true +true +false +false +true +true +false +true + + + +100 +5 +clig + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/icons/icon-128x128.png b/src/assets/icons/icon-128x128.png new file mode 100644 index 0000000..83f579e Binary files /dev/null and b/src/assets/icons/icon-128x128.png differ diff --git a/src/assets/icons/icon-144x144.png b/src/assets/icons/icon-144x144.png new file mode 100644 index 0000000..e9c08c1 Binary files /dev/null and b/src/assets/icons/icon-144x144.png differ diff --git a/src/assets/icons/icon-152x152.png b/src/assets/icons/icon-152x152.png new file mode 100644 index 0000000..770e25e Binary files /dev/null and b/src/assets/icons/icon-152x152.png differ diff --git a/src/assets/icons/icon-192x192.png b/src/assets/icons/icon-192x192.png new file mode 100644 index 0000000..da8d62d Binary files /dev/null and b/src/assets/icons/icon-192x192.png differ diff --git a/src/assets/icons/icon-384x384.png b/src/assets/icons/icon-384x384.png new file mode 100644 index 0000000..708a8bc Binary files /dev/null and b/src/assets/icons/icon-384x384.png differ diff --git a/src/assets/icons/icon-512x512.png b/src/assets/icons/icon-512x512.png new file mode 100644 index 0000000..1909d07 Binary files /dev/null and b/src/assets/icons/icon-512x512.png differ diff --git a/src/assets/icons/icon-72x72.png b/src/assets/icons/icon-72x72.png new file mode 100644 index 0000000..ded15c4 Binary files /dev/null and b/src/assets/icons/icon-72x72.png differ diff --git a/src/assets/icons/icon-96x96.png b/src/assets/icons/icon-96x96.png new file mode 100644 index 0000000..74fece0 Binary files /dev/null and b/src/assets/icons/icon-96x96.png differ diff --git a/src/assets/icons/icon.svg b/src/assets/icons/icon.svg new file mode 100644 index 0000000..9c28677 --- /dev/null +++ b/src/assets/icons/icon.svg @@ -0,0 +1,73 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/src/assets/icons/tree.png b/src/assets/icons/tree.png new file mode 100644 index 0000000..8bc5e03 Binary files /dev/null and b/src/assets/icons/tree.png differ diff --git a/src/assets/icons/tree.svg b/src/assets/icons/tree.svg new file mode 100644 index 0000000..6785b07 --- /dev/null +++ b/src/assets/icons/tree.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + diff --git a/src/assets/img/banner.jpg b/src/assets/img/banner.jpg new file mode 100644 index 0000000..8876aa3 Binary files /dev/null and b/src/assets/img/banner.jpg differ diff --git a/src/assets/img/curly_tree.jpg b/src/assets/img/curly_tree.jpg new file mode 100644 index 0000000..61f3c6c Binary files /dev/null and b/src/assets/img/curly_tree.jpg differ diff --git a/src/assets/img/curly_tree_small.jpg b/src/assets/img/curly_tree_small.jpg new file mode 100644 index 0000000..b1d480a Binary files /dev/null and b/src/assets/img/curly_tree_small.jpg differ diff --git a/src/assets/img/curly_tree_small.webp b/src/assets/img/curly_tree_small.webp new file mode 100644 index 0000000..32c009f Binary files /dev/null and b/src/assets/img/curly_tree_small.webp differ diff --git a/src/assets/img/site-url.png b/src/assets/img/site-url.png new file mode 100644 index 0000000..8a64ed2 Binary files /dev/null and b/src/assets/img/site-url.png differ diff --git a/src/assets/map/style.json b/src/assets/map/style.json new file mode 100644 index 0000000..931c178 --- /dev/null +++ b/src/assets/map/style.json @@ -0,0 +1 @@ +{"basename": "osm", "description": "Extract of Open Street Map from OSM, powered by Gisaf", "format": "pbf", "id": "gisaftiles_Open Street Map", "maskLevel": 5, "name": "Open Street Map", "tilejson": "2.0.0", "version": 8, "glyphs": "assets/fonts/glyphs/{fontstack}/{range}.pbf", "sprite": "https://gis.auroville.org.in/tiles/sprite/sprite", "sources": {"gisafTiles": {"type": "vector", "tiles": ["https://gis.auroville.org.in/tiles/Open Street Map/{z}/{x}/{y}.pbf"], "maxzoom": 14, "minzoom": 0, "bounds": [70.004872, 5.943921, 95.55906, 19.922681], "scheme": "tms", "attribution": "© OpenStreetMap contributors", "version": "3.0"}}, "layers": [{"id": "background", "type": "background", "paint": {"background-color": "#f8f4f0"}}, {"id": "landcover-glacier", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landcover", "filter": ["==", "subclass", "glacier"], "layout": {"visibility": "visible"}, "paint": {"fill-color": "#fff", "fill-opacity": {"base": 1, "stops": [[0, 0.9], [10, 0.3]]}}}, {"id": "landuse-residential", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landuse", "filter": ["all", ["in", "class", "residential", "suburb", "neighbourhood"]], "layout": {"visibility": "visible"}, "paint": {"fill-color": {"base": 1, "stops": [[12, "hsla(30, 19%, 90%, 0.4)"], [16, "hsla(30, 19%, 90%, 0.2)"]]}}}, {"id": "landuse-commercial", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landuse", "filter": ["all", ["==", "$type", "Polygon"], ["==", "class", "commercial"]], "layout": {"visibility": "visible"}, "paint": {"fill-color": "hsla(0, 60%, 87%, 0.23)"}}, {"id": "landuse-industrial", "type": "fill", "source": "gisafTiles", "source-layer": "landuse", "filter": ["all", ["==", "$type", "Polygon"], ["in", "class", "industrial", "garages", "dam"]], "layout": {"visibility": "visible"}, "paint": {"fill-color": "hsla(49, 100%, 88%, 0.34)"}}, {"id": "landuse-cemetery", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landuse", "filter": ["==", "class", "cemetery"], "paint": {"fill-color": "#e0e4dd"}}, {"id": "landuse-hospital", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landuse", "filter": ["==", "class", "hospital"], "paint": {"fill-color": "#fde"}}, {"id": "landuse-school", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landuse", "filter": ["==", "class", "school"], "paint": {"fill-color": "#f0e8f8"}}, {"id": "landuse-railway", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landuse", "filter": ["==", "class", "railway"], "layout": {"visibility": "visible"}, "paint": {"fill-color": "hsla(30, 19%, 90%, 0.4)"}}, {"id": "landcover-wood", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landcover", "filter": ["==", "class", "wood"], "paint": {"fill-antialias": {"base": 1, "stops": [[0, false], [9, true]]}, "fill-color": "#6a4", "fill-opacity": 0.1, "fill-outline-color": "hsla(0, 0%, 0%, 0.03)"}}, {"id": "landcover-grass", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "landcover", "filter": ["==", "class", "grass"], "paint": {"fill-color": "#d8e8c8", "fill-opacity": 1}}, {"id": "landcover-grass-park", "type": "fill", "metadata": {"mapbox:group": "1444849388993.3071"}, "source": "gisafTiles", "source-layer": "park", "filter": ["==", "class", "public_park"], "paint": {"fill-color": "#d8e8c8", "fill-opacity": 0.8}}, {"id": "waterway_tunnel", "type": "line", "source": "gisafTiles", "source-layer": "waterway", "minzoom": 14, "filter": ["all", ["in", "class", "river", "stream", "canal"], ["==", "brunnel", "tunnel"]], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "#a0c8f0", "line-dasharray": [2, 4], "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 6]]}}}, {"id": "waterway-other", "type": "line", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "waterway", "filter": ["all", ["!in", "class", "canal", "river", "stream"], ["==", "intermittent", 0]], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "#a0c8f0", "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 2]]}}}, {"id": "waterway-other-intermittent", "type": "line", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "waterway", "filter": ["all", ["!in", "class", "canal", "river", "stream"], ["==", "intermittent", 1]], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "#a0c8f0", "line-dasharray": [4, 3], "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 2]]}}}, {"id": "waterway-stream-canal", "type": "line", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "waterway", "filter": ["all", ["in", "class", "canal", "stream"], ["!=", "brunnel", "tunnel"], ["==", "intermittent", 0]], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "#a0c8f0", "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 6]]}}}, {"id": "waterway-stream-canal-intermittent", "type": "line", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "waterway", "filter": ["all", ["in", "class", "canal", "stream"], ["!=", "brunnel", "tunnel"], ["==", "intermittent", 1]], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "#a0c8f0", "line-dasharray": [4, 3], "line-width": {"base": 1.3, "stops": [[13, 0.5], [20, 6]]}}}, {"id": "waterway-river", "type": "line", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "waterway", "filter": ["all", ["==", "class", "river"], ["!=", "brunnel", "tunnel"], ["==", "intermittent", 0]], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "#a0c8f0", "line-width": {"base": 1.2, "stops": [[10, 0.8], [20, 6]]}}}, {"id": "waterway-river-intermittent", "type": "line", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "waterway", "filter": ["all", ["==", "class", "river"], ["!=", "brunnel", "tunnel"], ["==", "intermittent", 1]], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "#a0c8f0", "line-dasharray": [3, 2.5], "line-width": {"base": 1.2, "stops": [[10, 0.8], [20, 6]]}}}, {"id": "water-offset", "type": "fill", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "water", "maxzoom": 8, "filter": ["==", "$type", "Polygon"], "layout": {"visibility": "visible"}, "paint": {"fill-color": "#a0c8f0", "fill-opacity": 1, "fill-translate": {"base": 1, "stops": [[6, [2, 0]], [8, [0, 0]]]}}}, {"id": "water", "type": "fill", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "water", "filter": ["all", ["!=", "intermittent", 1], ["!=", "brunnel", "tunnel"]], "layout": {"visibility": "visible"}, "paint": {"fill-color": "hsl(210, 67%, 85%)"}}, {"id": "water-intermittent", "type": "fill", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "water", "filter": ["all", ["==", "intermittent", 1]], "layout": {"visibility": "visible"}, "paint": {"fill-color": "hsl(210, 67%, 85%)", "fill-opacity": 0.7}}, {"id": "water-pattern", "type": "fill", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "water", "filter": ["all"], "layout": {"visibility": "visible"}, "paint": {"fill-pattern": "wave", "fill-translate": [0, 2.5]}}, {"id": "landcover-ice-shelf", "type": "fill", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "landcover", "filter": ["==", "subclass", "ice_shelf"], "layout": {"visibility": "visible"}, "paint": {"fill-color": "#fff", "fill-opacity": {"base": 1, "stops": [[0, 0.9], [10, 0.3]]}}}, {"id": "landcover-sand", "type": "fill", "metadata": {"mapbox:group": "1444849382550.77"}, "source": "gisafTiles", "source-layer": "landcover", "filter": ["all", ["==", "class", "sand"]], "layout": {"visibility": "visible"}, "paint": {"fill-color": "rgba(245, 238, 188, 1)", "fill-opacity": 1}}, {"id": "building", "type": "fill", "metadata": {"mapbox:group": "1444849364238.8171"}, "source": "gisafTiles", "source-layer": "building", "paint": {"fill-antialias": true, "fill-color": {"base": 1, "stops": [[15.5, "#f2eae2"], [16, "#dfdbd7"]]}}}, {"id": "building-top", "type": "fill", "metadata": {"mapbox:group": "1444849364238.8171"}, "source": "gisafTiles", "source-layer": "building", "layout": {"visibility": "visible"}, "paint": {"fill-color": "#f2eae2", "fill-opacity": {"base": 1, "stops": [[13, 0], [16, 1]]}, "fill-outline-color": "#dfdbd7", "fill-translate": {"base": 1, "stops": [[14, [0, 0]], [16, [-2, -2]]]}}}, {"id": "tunnel-service-track-casing", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "service", "track"]], "layout": {"line-join": "round"}, "paint": {"line-color": "#cfcdca", "line-dasharray": [0.5, 0.25], "line-width": {"base": 1.2, "stops": [[15, 1], [16, 4], [20, 11]]}}}, {"id": "tunnel-motorway-link-casing", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"], ["==", "ramp", 1]], "layout": {"line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(200, 147, 102, 1)", "line-dasharray": [0.5, 0.25], "line-width": {"base": 1.2, "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]}}}, {"id": "tunnel-minor-casing", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "minor"]], "layout": {"line-join": "round"}, "paint": {"line-color": "#cfcdca", "line-opacity": {"stops": [[12, 0], [12.5, 1]]}, "line-width": {"base": 1.2, "stops": [[12, 0.5], [13, 1], [14, 4], [20, 15]]}, "line-dasharray": [0.5, 0.25]}}, {"id": "tunnel-link-casing", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "trunk", "primary", "secondary", "tertiary"], ["==", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]}, "line-dasharray": [0.5, 0.25]}}, {"id": "tunnel-secondary-tertiary-casing", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "secondary", "tertiary"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[8, 1.5], [20, 17]]}, "line-dasharray": [0.5, 0.25]}}, {"id": "tunnel-trunk-primary-casing", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "primary", "trunk"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-width": {"base": 1.2, "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]}}}, {"id": "tunnel-motorway-casing", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"], ["!=", "ramp", 1]], "layout": {"line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#e9ac77", "line-dasharray": [0.5, 0.25], "line-width": {"base": 1.2, "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]}}}, {"id": "tunnel-path", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "brunnel", "tunnel"], ["==", "class", "path"]], "paint": {"line-color": "#cba", "line-dasharray": [1.5, 0.75], "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 4]]}}}, {"id": "tunnel-motorway-link", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"], ["==", "ramp", 1]], "layout": {"line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(244, 209, 158, 1)", "line-width": {"base": 1.2, "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]}}}, {"id": "tunnel-service-track", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "service", "track"]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fff", "line-width": {"base": 1.2, "stops": [[15.5, 0], [16, 2], [20, 7.5]]}}}, {"id": "tunnel-link", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "trunk", "primary", "secondary", "tertiary"], ["==", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fff4c6", "line-width": {"base": 1.2, "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]}}}, {"id": "tunnel-minor", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "minor"]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fff", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[13.5, 0], [14, 2.5], [20, 11.5]]}}}, {"id": "tunnel-secondary-tertiary", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "secondary", "tertiary"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fff4c6", "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 10]]}}}, {"id": "tunnel-trunk-primary", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["in", "class", "primary", "trunk"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fff4c6", "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}}}, {"id": "tunnel-motorway", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"], ["!=", "ramp", 1]], "layout": {"line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#ffdaa6", "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}}}, {"id": "tunnel-railway", "type": "line", "metadata": {"mapbox:group": "1444849354174.1904"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "tunnel"], ["==", "class", "rail"]], "paint": {"line-color": "#bbb", "line-dasharray": [2, 2], "line-width": {"base": 1.4, "stops": [[14, 0.4], [15, 0.75], [20, 2]]}}}, {"id": "ferry", "type": "line", "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["in", "class", "ferry"]], "layout": {"line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(108, 159, 182, 1)", "line-dasharray": [2, 2], "line-width": 1.1}}, {"id": "aeroway-taxiway-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "aeroway", "minzoom": 12, "filter": ["all", ["in", "class", "taxiway"]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(153, 153, 153, 1)", "line-opacity": 1, "line-width": {"base": 1.5, "stops": [[11, 2], [17, 12]]}}}, {"id": "aeroway-runway-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "aeroway", "minzoom": 12, "filter": ["all", ["in", "class", "runway"]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(153, 153, 153, 1)", "line-opacity": 1, "line-width": {"base": 1.5, "stops": [[11, 5], [17, 55]]}}}, {"id": "aeroway-area", "type": "fill", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "aeroway", "minzoom": 4, "filter": ["all", ["==", "$type", "Polygon"], ["in", "class", "runway", "taxiway"]], "layout": {"visibility": "visible"}, "paint": {"fill-color": "rgba(255, 255, 255, 1)", "fill-opacity": {"base": 1, "stops": [[13, 0], [14, 1]]}}}, {"id": "aeroway-taxiway", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "aeroway", "minzoom": 4, "filter": ["all", ["in", "class", "taxiway"], ["==", "$type", "LineString"]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(255, 255, 255, 1)", "line-opacity": {"base": 1, "stops": [[11, 0], [12, 1]]}, "line-width": {"base": 1.5, "stops": [[11, 1], [17, 10]]}}}, {"id": "aeroway-runway", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "aeroway", "minzoom": 4, "filter": ["all", ["in", "class", "runway"], ["==", "$type", "LineString"]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(255, 255, 255, 1)", "line-opacity": {"base": 1, "stops": [[11, 0], [12, 1]]}, "line-width": {"base": 1.5, "stops": [[11, 4], [17, 50]]}}}, {"id": "road_area_pier", "type": "fill", "metadata": {}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "Polygon"], ["==", "class", "pier"]], "layout": {"visibility": "visible"}, "paint": {"fill-antialias": true, "fill-color": "#f8f4f0"}}, {"id": "road_pier", "type": "line", "metadata": {}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["in", "class", "pier"]], "layout": {"line-cap": "round", "line-join": "round"}, "paint": {"line-color": "#f8f4f0", "line-width": {"base": 1.2, "stops": [[15, 1], [17, 4]]}}}, {"id": "highway-area", "type": "fill", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "Polygon"], ["!in", "class", "pier"]], "layout": {"visibility": "visible"}, "paint": {"fill-antialias": false, "fill-color": "hsla(0, 0%, 89%, 0.56)", "fill-opacity": 0.9, "fill-outline-color": "#cfcdca"}}, {"id": "highway-motorway-link-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 12, "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway"], ["==", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]}}}, {"id": "highway-link-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 13, "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "trunk", "primary", "secondary", "tertiary"], ["==", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[12, 1], [13, 3], [14, 4], [20, 15]]}}}, {"id": "highway-minor-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["!=", "brunnel", "tunnel"], ["in", "class", "minor", "service", "track"]], "layout": {"line-cap": "round", "line-join": "round"}, "paint": {"line-color": "#cfcdca", "line-opacity": {"stops": [[12, 0], [12.5, 1]]}, "line-width": {"base": 1.2, "stops": [[12, 0.5], [13, 1], [14, 4], [20, 15]]}}}, {"id": "highway-secondary-tertiary-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "secondary", "tertiary"], ["!=", "ramp", 1]], "layout": {"line-cap": "butt", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[8, 1.5], [20, 17]]}}}, {"id": "highway-primary-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 5, "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "primary"], ["!=", "ramp", 1]], "layout": {"line-cap": "butt", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#e9ac77", "line-opacity": {"stops": [[7, 0], [8, 1]]}, "line-width": {"base": 1.2, "stops": [[7, 0], [8, 0.6], [9, 1.5], [20, 22]]}}}, {"id": "highway-trunk-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 5, "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "trunk"], ["!=", "ramp", 1]], "layout": {"line-cap": "butt", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#e9ac77", "line-opacity": {"stops": [[5, 0], [6, 1]]}, "line-width": {"base": 1.2, "stops": [[5, 0], [6, 0.6], [7, 1.5], [20, 22]]}}}, {"id": "highway-motorway-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 4, "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway"], ["!=", "ramp", 1]], "layout": {"line-cap": "butt", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#e9ac77", "line-opacity": {"stops": [[4, 0], [5, 1]]}, "line-width": {"base": 1.2, "stops": [[4, 0], [5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]}}}, {"id": "highway-path", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "path"]], "paint": {"line-color": "#cba", "line-dasharray": [1.5, 0.75], "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 4]]}}}, {"id": "highway-motorway-link", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 12, "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway"], ["==", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round"}, "paint": {"line-color": "#fc8", "line-width": {"base": 1.2, "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]}}}, {"id": "highway-link", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 13, "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "trunk", "primary", "secondary", "tertiary"], ["==", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#fea", "line-width": {"base": 1.2, "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]}}}, {"id": "highway-minor", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["!=", "brunnel", "tunnel"], ["in", "class", "minor", "service", "track"]], "layout": {"line-cap": "round", "line-join": "round"}, "paint": {"line-color": "#fff", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[13.5, 0], [14, 2.5], [20, 11.5]]}}}, {"id": "highway-secondary-tertiary", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "secondary", "tertiary"], ["!=", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#fea", "line-width": {"base": 1.2, "stops": [[6.5, 0], [8, 0.5], [20, 13]]}}}, {"id": "highway-primary", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "primary"], ["!=", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#fea", "line-width": {"base": 1.2, "stops": [[8.5, 0], [9, 0.5], [20, 18]]}}}, {"id": "highway-trunk", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["!in", "brunnel", "bridge", "tunnel"], ["in", "class", "trunk"], ["!=", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#fea", "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}}}, {"id": "highway-motorway", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "minzoom": 5, "filter": ["all", ["==", "$type", "LineString"], ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "motorway"], ["!=", "ramp", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#fc8", "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}}}, {"id": "railway-transit", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]], "layout": {"visibility": "visible"}, "paint": {"line-color": "hsla(0, 0%, 73%, 0.77)", "line-width": {"base": 1.4, "stops": [[14, 0.4], [20, 1]]}}}, {"id": "railway-transit-hatching", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]], "layout": {"visibility": "visible"}, "paint": {"line-color": "hsla(0, 0%, 73%, 0.68)", "line-dasharray": [0.2, 8], "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 2], [20, 6]]}}}, {"id": "railway-service", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "class", "rail"], ["has", "service"]], "paint": {"line-color": "hsla(0, 0%, 73%, 0.77)", "line-width": {"base": 1.4, "stops": [[14, 0.4], [20, 1]]}}}, {"id": "railway-service-hatching", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "class", "rail"], ["has", "service"]], "layout": {"visibility": "visible"}, "paint": {"line-color": "hsla(0, 0%, 73%, 0.68)", "line-dasharray": [0.2, 8], "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 2], [20, 6]]}}}, {"id": "railway", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["!has", "service"], ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "rail"]], "paint": {"line-color": "#bbb", "line-width": {"base": 1.4, "stops": [[14, 0.4], [15, 0.75], [20, 2]]}}}, {"id": "railway-hatching", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["!has", "service"], ["!in", "brunnel", "bridge", "tunnel"], ["==", "class", "rail"]], "paint": {"line-color": "#bbb", "line-dasharray": [0.2, 8], "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 3], [20, 8]]}}}, {"id": "bridge-motorway-link-casing", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"], ["==", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[12, 1], [13, 3], [14, 4], [20, 19]]}}}, {"id": "bridge-link-casing", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["in", "class", "trunk", "primary", "secondary", "tertiary"], ["==", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[12, 1], [13, 3], [14, 4], [20, 19]]}}}, {"id": "bridge-secondary-tertiary-casing", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["in", "class", "secondary", "tertiary"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[5, 0.4], [7, 0.6], [8, 1.5], [20, 21]]}}}, {"id": "bridge-trunk-primary-casing", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["in", "class", "primary", "trunk"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "hsl(28, 76%, 67%)", "line-width": {"base": 1.2, "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 26]]}}}, {"id": "bridge-motorway-casing", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#e9ac77", "line-width": {"base": 1.2, "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 26]]}}}, {"id": "bridge-minor-casing", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "brunnel", "bridge"], ["in", "class", "minor", "service", "track"]], "layout": {"line-cap": "butt", "line-join": "round"}, "paint": {"line-color": "#cfcdca", "line-opacity": {"stops": [[12, 0], [12.5, 1]]}, "line-width": {"base": 1.2, "stops": [[12, 0.5], [13, 1], [14, 6], [20, 24]]}}}, {"id": "bridge-path-casing", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "brunnel", "bridge"], ["==", "class", "path"]], "paint": {"line-color": "#f8f4f0", "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 18]]}}}, {"id": "bridge-path", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "brunnel", "bridge"], ["==", "class", "path"]], "paint": {"line-color": "#cba", "line-dasharray": [1.5, 0.75], "line-width": {"base": 1.2, "stops": [[15, 1.2], [20, 4]]}}}, {"id": "bridge-motorway-link", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"], ["==", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fc8", "line-width": {"base": 1.2, "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]}}}, {"id": "bridge-link", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["in", "class", "trunk", "primary", "secondary", "tertiary"], ["==", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fea", "line-width": {"base": 1.2, "stops": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]}}}, {"id": "bridge-minor", "type": "line", "metadata": {"mapbox:group": "1444849345966.4436"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "$type", "LineString"], ["==", "brunnel", "bridge"], ["in", "class", "minor", "service", "track"]], "layout": {"line-cap": "round", "line-join": "round"}, "paint": {"line-color": "#fff", "line-opacity": 1, "line-width": {"base": 1.2, "stops": [[13.5, 0], [14, 2.5], [20, 11.5]]}}}, {"id": "bridge-secondary-tertiary", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["in", "class", "secondary", "tertiary"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fea", "line-width": {"base": 1.2, "stops": [[6.5, 0], [8, 0.5], [20, 13]]}}}, {"id": "bridge-trunk-primary", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["in", "class", "primary", "trunk"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fea", "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}}}, {"id": "bridge-motorway", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"], ["!=", "ramp", 1]], "layout": {"line-join": "round"}, "paint": {"line-color": "#fc8", "line-width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]}}}, {"id": "bridge-railway", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "rail"]], "paint": {"line-color": "#bbb", "line-width": {"base": 1.4, "stops": [[14, 0.4], [15, 0.75], [20, 2]]}}}, {"id": "bridge-railway-hatching", "type": "line", "metadata": {"mapbox:group": "1444849334699.1902"}, "source": "gisafTiles", "source-layer": "transportation", "filter": ["all", ["==", "brunnel", "bridge"], ["==", "class", "rail"]], "paint": {"line-color": "#bbb", "line-dasharray": [0.2, 8], "line-width": {"base": 1.4, "stops": [[14.5, 0], [15, 3], [20, 8]]}}}, {"id": "cablecar", "type": "line", "source": "gisafTiles", "source-layer": "transportation", "minzoom": 13, "filter": ["==", "subclass", "cable_car"], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "hsl(0, 0%, 70%)", "line-width": {"base": 1, "stops": [[11, 1], [19, 2.5]]}}}, {"id": "cablecar-dash", "type": "line", "source": "gisafTiles", "source-layer": "transportation", "minzoom": 13, "filter": ["==", "subclass", "cable_car"], "layout": {"line-cap": "round", "visibility": "visible"}, "paint": {"line-color": "hsl(0, 0%, 70%)", "line-dasharray": [2, 3], "line-width": {"base": 1, "stops": [[11, 3], [19, 5.5]]}}}, {"id": "boundary-land-level-4", "type": "line", "source": "gisafTiles", "source-layer": "boundary", "minzoom": 2, "filter": ["all", [">=", "admin_level", 3], ["<=", "admin_level", 8], ["!=", "maritime", 1]], "layout": {"line-join": "round", "visibility": "visible"}, "paint": {"line-color": "#9e9cab", "line-dasharray": [3, 1, 1, 1], "line-width": {"base": 1.4, "stops": [[4, 0.4], [5, 1], [12, 3]]}}}, {"id": "boundary-land-level-2", "type": "line", "source": "gisafTiles", "source-layer": "boundary", "filter": ["all", ["==", "admin_level", 2], ["!=", "maritime", 1], ["!=", "disputed", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "hsl(248, 7%, 66%)", "line-width": {"base": 1, "stops": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]}}}, {"id": "boundary-land-disputed", "type": "line", "source": "gisafTiles", "source-layer": "boundary", "filter": ["all", ["!=", "maritime", 1], ["==", "disputed", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "hsl(248, 7%, 70%)", "line-dasharray": [1, 3], "line-width": {"base": 1, "stops": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]}}}, {"id": "boundary-water", "type": "line", "source": "gisafTiles", "source-layer": "boundary", "minzoom": 4, "filter": ["all", ["in", "admin_level", 2, 4], ["==", "maritime", 1]], "layout": {"line-cap": "round", "line-join": "round", "visibility": "visible"}, "paint": {"line-color": "rgba(154, 189, 214, 1)", "line-opacity": {"stops": [[6, 0.6], [10, 1]]}, "line-width": {"base": 1, "stops": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]}}}, {"id": "waterway-name", "type": "symbol", "source": "gisafTiles", "source-layer": "waterway", "minzoom": 13, "filter": ["all", ["==", "$type", "LineString"], ["has", "name"]], "layout": {"symbol-placement": "line", "symbol-spacing": 350, "text-field": "{name:latin} {name:nonlatin}", "text-font": ["Noto Sans Italic"], "text-letter-spacing": 0.2, "text-max-width": 5, "text-rotation-alignment": "map", "text-size": 14}, "paint": {"text-color": "#74aee9", "text-halo-color": "rgba(255,255,255,0.7)", "text-halo-width": 1.5}}, {"id": "water-name-lakeline", "type": "symbol", "source": "gisafTiles", "source-layer": "water_name", "filter": ["==", "$type", "LineString"], "layout": {"symbol-placement": "line", "symbol-spacing": 350, "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Italic"], "text-letter-spacing": 0.2, "text-max-width": 5, "text-rotation-alignment": "map", "text-size": 14}, "paint": {"text-color": "#74aee9", "text-halo-color": "rgba(255,255,255,0.7)", "text-halo-width": 1.5}}, {"id": "water-name-ocean", "type": "symbol", "source": "gisafTiles", "source-layer": "water_name", "filter": ["all", ["==", "$type", "Point"], ["==", "class", "ocean"]], "layout": {"symbol-placement": "point", "symbol-spacing": 350, "text-field": "{name:latin}", "text-font": ["Noto Sans Italic"], "text-letter-spacing": 0.2, "text-max-width": 5, "text-rotation-alignment": "map", "text-size": 14}, "paint": {"text-color": "#74aee9", "text-halo-color": "rgba(255,255,255,0.7)", "text-halo-width": 1.5}}, {"id": "water-name-other", "type": "symbol", "source": "gisafTiles", "source-layer": "water_name", "filter": ["all", ["==", "$type", "Point"], ["!in", "class", "ocean"]], "layout": {"symbol-placement": "point", "symbol-spacing": 350, "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Italic"], "text-letter-spacing": 0.2, "text-max-width": 5, "text-rotation-alignment": "map", "text-size": {"stops": [[0, 10], [6, 14]]}, "visibility": "visible"}, "paint": {"text-color": "#74aee9", "text-halo-color": "rgba(255,255,255,0.7)", "text-halo-width": 1.5}}, {"id": "road_oneway", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation", "minzoom": 15, "filter": ["all", ["==", "oneway", 1], ["in", "class", "motorway", "trunk", "primary", "secondary", "tertiary", "minor", "service"]], "layout": {"icon-image": "oneway", "icon-padding": 2, "icon-rotate": 90, "icon-rotation-alignment": "map", "icon-size": {"stops": [[15, 0.5], [19, 1]]}, "symbol-placement": "line", "symbol-spacing": 75}, "paint": {"icon-opacity": 0.5}}, {"id": "road_oneway_opposite", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation", "minzoom": 15, "filter": ["all", ["==", "oneway", -1], ["in", "class", "motorway", "trunk", "primary", "secondary", "tertiary", "minor", "service"]], "layout": {"icon-image": "oneway", "icon-padding": 2, "icon-rotate": -90, "icon-rotation-alignment": "map", "icon-size": {"stops": [[15, 0.5], [19, 1]]}, "symbol-placement": "line", "symbol-spacing": 75}, "paint": {"icon-opacity": 0.5}}, {"id": "poi-level-3", "type": "symbol", "source": "gisafTiles", "source-layer": "poi", "minzoom": 16, "filter": ["all", ["==", "$type", "Point"], [">=", "rank", 25], ["any", ["!has", "level"], ["==", "level", 0]]], "layout": {"icon-image": "{class}_11", "text-anchor": "top", "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 9, "text-offset": [0, 0.6], "text-padding": 2, "text-size": 12, "visibility": "visible"}, "paint": {"text-color": "#666", "text-halo-blur": 0.5, "text-halo-color": "#ffffff", "text-halo-width": 1}}, {"id": "poi-level-2", "type": "symbol", "source": "gisafTiles", "source-layer": "poi", "minzoom": 15, "filter": ["all", ["==", "$type", "Point"], ["<=", "rank", 24], [">=", "rank", 15], ["any", ["!has", "level"], ["==", "level", 0]]], "layout": {"icon-image": "{class}_11", "text-anchor": "top", "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 9, "text-offset": [0, 0.6], "text-padding": 2, "text-size": 12, "visibility": "visible"}, "paint": {"text-color": "#666", "text-halo-blur": 0.5, "text-halo-color": "#ffffff", "text-halo-width": 1}}, {"id": "poi-level-1", "type": "symbol", "source": "gisafTiles", "source-layer": "poi", "minzoom": 14, "filter": ["all", ["==", "$type", "Point"], ["<=", "rank", 14], ["has", "name"], ["any", ["!has", "level"], ["==", "level", 0]]], "layout": {"icon-image": "{class}_11", "text-anchor": "top", "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 9, "text-offset": [0, 0.6], "text-padding": 2, "text-size": 12, "visibility": "visible"}, "paint": {"text-color": "#666", "text-halo-blur": 0.5, "text-halo-color": "#ffffff", "text-halo-width": 1}}, {"id": "poi-railway", "type": "symbol", "source": "gisafTiles", "source-layer": "poi", "minzoom": 13, "filter": ["all", ["==", "$type", "Point"], ["has", "name"], ["==", "class", "railway"], ["==", "subclass", "station"]], "layout": {"icon-allow-overlap": false, "icon-ignore-placement": false, "icon-image": "{class}_11", "icon-optional": false, "text-allow-overlap": false, "text-anchor": "top", "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-ignore-placement": false, "text-max-width": 9, "text-offset": [0, 0.6], "text-optional": true, "text-padding": 2, "text-size": 12}, "paint": {"text-color": "#666", "text-halo-blur": 0.5, "text-halo-color": "#ffffff", "text-halo-width": 1}}, {"id": "highway-name-path", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation_name", "minzoom": 15.5, "filter": ["==", "class", "path"], "layout": {"symbol-placement": "line", "text-field": "{name:latin} {name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-rotation-alignment": "map", "text-size": {"base": 1, "stops": [[13, 12], [14, 13]]}}, "paint": {"text-color": "hsl(30, 23%, 62%)", "text-halo-color": "#f8f4f0", "text-halo-width": 0.5}}, {"id": "highway-name-minor", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation_name", "minzoom": 15, "filter": ["all", ["==", "$type", "LineString"], ["in", "class", "minor", "service", "track"]], "layout": {"symbol-placement": "line", "text-field": "{name:latin} {name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-rotation-alignment": "map", "text-size": {"base": 1, "stops": [[13, 12], [14, 13]]}}, "paint": {"text-color": "#765", "text-halo-blur": 0.5, "text-halo-width": 1}}, {"id": "highway-name-major", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation_name", "minzoom": 12.2, "filter": ["in", "class", "primary", "secondary", "tertiary", "trunk"], "layout": {"symbol-placement": "line", "text-field": "{name:latin} {name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-rotation-alignment": "map", "text-size": {"base": 1, "stops": [[13, 12], [14, 13]]}}, "paint": {"text-color": "#765", "text-halo-blur": 0.5, "text-halo-width": 1}}, {"id": "highway-shield", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation_name", "minzoom": 8, "filter": ["all", ["<=", "ref_length", 6], ["==", "$type", "LineString"], ["!in", "network", "us-interstate", "us-highway", "us-state"]], "layout": {"icon-image": "road_{ref_length}", "icon-rotation-alignment": "viewport", "icon-size": 1, "symbol-placement": {"base": 1, "stops": [[10, "point"], [11, "line"]]}, "symbol-spacing": 200, "text-field": "{ref}", "text-font": ["Noto Sans Regular"], "text-rotation-alignment": "viewport", "text-size": 10}, "paint": {}}, {"id": "highway-shield-us-interstate", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation_name", "minzoom": 7, "filter": ["all", ["<=", "ref_length", 6], ["==", "$type", "LineString"], ["in", "network", "us-interstate"]], "layout": {"icon-image": "{network}_{ref_length}", "icon-rotation-alignment": "viewport", "icon-size": 1, "symbol-placement": {"base": 1, "stops": [[7, "point"], [7, "line"], [8, "line"]]}, "symbol-spacing": 200, "text-field": "{ref}", "text-font": ["Noto Sans Regular"], "text-rotation-alignment": "viewport", "text-size": 10}, "paint": {"text-color": "rgba(0, 0, 0, 1)"}}, {"id": "highway-shield-us-other", "type": "symbol", "source": "gisafTiles", "source-layer": "transportation_name", "minzoom": 9, "filter": ["all", ["<=", "ref_length", 6], ["==", "$type", "LineString"], ["in", "network", "us-highway", "us-state"]], "layout": {"icon-image": "{network}_{ref_length}", "icon-rotation-alignment": "viewport", "icon-size": 1, "symbol-placement": {"base": 1, "stops": [[10, "point"], [11, "line"]]}, "symbol-spacing": 200, "text-field": "{ref}", "text-font": ["Noto Sans Regular"], "text-rotation-alignment": "viewport", "text-size": 10}, "paint": {"text-color": "rgba(0, 0, 0, 1)"}}, {"id": "airport-label-major", "type": "symbol", "source": "gisafTiles", "source-layer": "aerodrome_label", "minzoom": 10, "filter": ["all", ["has", "iata"]], "layout": {"icon-image": "airport_11", "icon-size": 1, "text-anchor": "top", "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 9, "text-offset": [0, 0.6], "text-optional": true, "text-padding": 2, "text-size": 12, "visibility": "visible"}, "paint": {"text-color": "#666", "text-halo-blur": 0.5, "text-halo-color": "#ffffff", "text-halo-width": 1}}, {"id": "place-other", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["!in", "class", "city", "town", "village", "state", "country", "continent"], "layout": {"text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Bold"], "text-letter-spacing": 0.1, "text-max-width": 9, "text-size": {"base": 1.2, "stops": [[12, 10], [15, 14]]}, "text-transform": "uppercase", "visibility": "visible"}, "paint": {"text-color": "#633", "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 1.2}}, {"id": "place-village", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["==", "class", "village"], "layout": {"text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 8, "text-size": {"base": 1.2, "stops": [[10, 12], [15, 22]]}, "visibility": "visible"}, "paint": {"text-color": "#333", "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 1.2}}, {"id": "place-town", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["==", "class", "town"], "layout": {"text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 8, "text-size": {"base": 1.2, "stops": [[10, 14], [15, 24]]}, "visibility": "visible"}, "paint": {"text-color": "#333", "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 1.2}}, {"id": "place-city", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["all", ["!=", "capital", 2], ["==", "class", "city"]], "layout": {"text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 8, "text-size": {"base": 1.2, "stops": [[7, 14], [11, 24]]}, "visibility": "visible"}, "paint": {"text-color": "#333", "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 1.2}}, {"id": "place-city-capital", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["all", ["==", "capital", 2], ["==", "class", "city"]], "layout": {"icon-image": "star_11", "icon-size": 0.8, "text-anchor": "left", "text-field": "{name:latin}\n{name:nonlatin}", "text-font": ["Noto Sans Regular"], "text-max-width": 8, "text-offset": [0.4, 0], "text-size": {"base": 1.2, "stops": [[7, 14], [11, 24]]}, "visibility": "visible"}, "paint": {"text-color": "#333", "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 1.2}}, {"id": "place-state", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["in", "class", "state"], "layout": {"text-field": "{name:latin}", "text-font": ["Noto Sans Bold"], "text-letter-spacing": 0.1, "text-max-width": 9, "text-size": {"base": 1.2, "stops": [[12, 10], [15, 14]]}, "text-transform": "uppercase", "visibility": "visible"}, "paint": {"text-color": "#633", "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 1.2}}, {"id": "place-country-other", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["all", ["==", "class", "country"], [">=", "rank", 3], ["!has", "iso_a2"]], "layout": {"text-field": "{name:latin}", "text-font": ["Noto Sans Italic"], "text-max-width": 6.25, "text-size": {"stops": [[3, 11], [7, 17]]}, "text-transform": "uppercase", "visibility": "visible"}, "paint": {"text-color": "#334", "text-halo-blur": 1, "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 2}}, {"id": "place-country-3", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["all", ["==", "class", "country"], [">=", "rank", 3], ["has", "iso_a2"]], "layout": {"text-field": "{name:latin}", "text-font": ["Noto Sans Bold"], "text-max-width": 6.25, "text-size": {"stops": [[3, 11], [7, 17]]}, "text-transform": "uppercase", "visibility": "visible"}, "paint": {"text-color": "#334", "text-halo-blur": 1, "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 2}}, {"id": "place-country-2", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["all", ["==", "class", "country"], ["==", "rank", 2], ["has", "iso_a2"]], "layout": {"text-field": "{name:latin}", "text-font": ["Noto Sans Bold"], "text-max-width": 6.25, "text-size": {"stops": [[2, 11], [5, 17]]}, "text-transform": "uppercase", "visibility": "visible"}, "paint": {"text-color": "#334", "text-halo-blur": 1, "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 2}}, {"id": "place-country-1", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "filter": ["all", ["==", "class", "country"], ["==", "rank", 1], ["has", "iso_a2"]], "layout": {"text-field": "{name:latin}", "text-font": ["Noto Sans Bold"], "text-max-width": 6.25, "text-size": {"stops": [[1, 11], [4, 17]]}, "text-transform": "uppercase", "visibility": "visible"}, "paint": {"text-color": "#334", "text-halo-blur": 1, "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 2}}, {"id": "place-continent", "type": "symbol", "metadata": {"mapbox:group": "1444849242106.713"}, "source": "gisafTiles", "source-layer": "place", "maxzoom": 1, "filter": ["==", "class", "continent"], "layout": {"text-field": "{name:latin}", "text-font": ["Noto Sans Bold"], "text-max-width": 6.25, "text-size": 14, "text-transform": "uppercase", "visibility": "visible"}, "paint": {"text-color": "#334", "text-halo-blur": 1, "text-halo-color": "rgba(255,255,255,0.8)", "text-halo-width": 2}}]} diff --git a/src/assets/map/style_cloud.json b/src/assets/map/style_cloud.json new file mode 100644 index 0000000..c683ea8 --- /dev/null +++ b/src/assets/map/style_cloud.json @@ -0,0 +1,541 @@ +{ + "id": "43f36e14-e3f5-43c1-84c0-50a9c80dc5c7", + "name": "MapLibre", + "zoom": 0.8619833357855968, + "pitch": 0, + "center": [ + 17.65431710431244, + 32.954120326746775 + ], + "glyphs": "assets/fonts/glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#D8F2FF" + }, + "filter": [ + "all" + ], + "layout": { + "visibility": "visible" + }, + "maxzoom": 24 + }, + { + "id": "coastline", + "type": "line", + "paint": { + "line-blur": 0.5, + "line-color": "#198EC8", + "line-width": { + "stops": [ + [ + 0, + 2 + ], + [ + 6, + 6 + ], + [ + 14, + 9 + ], + [ + 22, + 18 + ] + ] + } + }, + "filter": [ + "all" + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "source": "maplibre", + "maxzoom": 24, + "minzoom": 0, + "source-layer": "countries" + }, + { + "id": "countries-fill", + "type": "fill", + "paint": { + "fill-color": [ + "match", + [ + "get", + "ADM0_A3" + ], + [ + "ARM", + "ATG", + "AUS", + "BTN", + "CAN", + "COG", + "CZE", + "GHA", + "GIN", + "HTI", + "ISL", + "JOR", + "KHM", + "KOR", + "LVA", + "MLT", + "MNE", + "MOZ", + "PER", + "SAH", + "SGP", + "SLV", + "SOM", + "TJK", + "TUV", + "UKR", + "WSM" + ], + "#D6C7FF", + [ + "AZE", + "BGD", + "CHL", + "CMR", + "CSI", + "DEU", + "DJI", + "GUY", + "HUN", + "IOA", + "JAM", + "LBN", + "LBY", + "LSO", + "MDG", + "MKD", + "MNG", + "MRT", + "NIU", + "NZL", + "PCN", + "PYF", + "SAU", + "SHN", + "STP", + "TTO", + "UGA", + "UZB", + "ZMB" + ], + "#EBCA8A", + [ + "AGO", + "ASM", + "ATF", + "BDI", + "BFA", + "BGR", + "BLZ", + "BRA", + "CHN", + "CRI", + "ESP", + "HKG", + "HRV", + "IDN", + "IRN", + "ISR", + "KNA", + "LBR", + "LCA", + "MAC", + "MUS", + "NOR", + "PLW", + "POL", + "PRI", + "SDN", + "TUN", + "UMI", + "USA", + "USG", + "VIR", + "VUT" + ], + "#C1E599", + [ + "ARE", + "ARG", + "BHS", + "CIV", + "CLP", + "DMA", + "ETH", + "GAB", + "GRD", + "HMD", + "IND", + "IOT", + "IRL", + "IRQ", + "ITA", + "KOS", + "LUX", + "MEX", + "NAM", + "NER", + "PHL", + "PRT", + "RUS", + "SEN", + "SUR", + "TZA", + "VAT" + ], + "#E7E58F", + [ + "AUT", + "BEL", + "BHR", + "BMU", + "BRB", + "CYN", + "DZA", + "EST", + "FLK", + "GMB", + "GUM", + "HND", + "JEY", + "KGZ", + "LIE", + "MAF", + "MDA", + "NGA", + "NRU", + "SLB", + "SOL", + "SRB", + "SWZ", + "THA", + "TUR", + "VEN", + "VGB" + ], + "#98DDA1", + [ + "AIA", + "BIH", + "BLM", + "BRN", + "CAF", + "CHE", + "COM", + "CPV", + "CUB", + "ECU", + "ESB", + "FSM", + "GAZ", + "GBR", + "GEO", + "KEN", + "LTU", + "MAR", + "MCO", + "MDV", + "NFK", + "NPL", + "PNG", + "PRY", + "QAT", + "SLE", + "SPM", + "SYC", + "TCA", + "TKM", + "TLS", + "VNM", + "WEB", + "WSB", + "YEM", + "ZWE" + ], + "#83D5F4", + [ + "ABW", + "ALB", + "AND", + "ATC", + "BOL", + "COD", + "CUW", + "CYM", + "CYP", + "EGY", + "FJI", + "GGY", + "IMN", + "KAB", + "KAZ", + "KWT", + "LAO", + "MLI", + "MNP", + "MSR", + "MYS", + "NIC", + "NLD", + "PAK", + "PAN", + "PRK", + "ROU", + "SGS", + "SVN", + "SWE", + "TGO", + "TWN", + "VCT", + "ZAF" + ], + "#B1BBF9", + [ + "ATA", + "GRL" + ], + "#FFFFFF", + "#EAB38F" + ] + }, + "filter": [ + "all" + ], + "layout": { + "visibility": "visible" + }, + "source": "maplibre", + "maxzoom": 24, + "source-layer": "countries" + }, + { + "id": "countries-boundary", + "type": "line", + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "stops": [ + [ + 1, + 1 + ], + [ + 6, + 2 + ], + [ + 14, + 6 + ], + [ + 22, + 12 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 3, + 0.5 + ], + [ + 6, + 1 + ] + ] + } + }, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "source": "maplibre", + "maxzoom": 24, + "source-layer": "countries" + }, + { + "id": "geolines", + "type": "line", + "paint": { + "line-color": "#1077B0", + "line-opacity": 1, + "line-dasharray": [ + 3, + 3 + ] + }, + "filter": [ + "all", + [ + "!=", + "name", + "International Date Line" + ] + ], + "layout": { + "visibility": "visible" + }, + "source": "maplibre", + "maxzoom": 24, + "source-layer": "geolines" + }, + { + "id": "geolines-label", + "type": "symbol", + "paint": { + "text-color": "#1077B0", + "text-halo-blur": 1, + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 1 + }, + "filter": [ + "all", + [ + "!=", + "name", + "International Date Line" + ] + ], + "layout": { + "text-font": [ + "Open Sans Semibold" + ], + "text-size": { + "stops": [ + [ + 2, + 12 + ], + [ + 6, + 16 + ] + ] + }, + "text-field": "{name}", + "visibility": "visible", + "symbol-placement": "line" + }, + "source": "maplibre", + "maxzoom": 24, + "minzoom": 1, + "source-layer": "geolines" + }, + { + "id": "countries-label", + "type": "symbol", + "paint": { + "text-color": "rgba(8, 37, 77, 1)", + "text-halo-blur": { + "stops": [ + [ + 2, + 0.2 + ], + [ + 6, + 0 + ] + ] + }, + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": { + "stops": [ + [ + 2, + 1 + ], + [ + 6, + 1.6 + ] + ] + } + }, + "filter": [ + "all" + ], + "layout": { + "text-font": [ + "Open Sans Semibold" + ], + "text-size": { + "stops": [ + [ + 2, + 10 + ], + [ + 4, + 12 + ], + [ + 6, + 16 + ] + ] + }, + "text-field": { + "stops": [ + [ + 2, + "{ABBREV}" + ], + [ + 4, + "{NAME}" + ] + ] + }, + "visibility": "visible", + "text-max-width": 10, + "text-transform": { + "stops": [ + [ + 0, + "uppercase" + ], + [ + 2, + "none" + ] + ] + } + }, + "source": "maplibre", + "maxzoom": 24, + "minzoom": 2, + "source-layer": "centroids" + } + ], + "bearing": 0, + "sources": { + "maplibre": { + "url": "https://demotiles.maplibre.org/tiles/tiles.json", + "type": "vector" + } + }, + "version": 8, + "metadata": { + "maptiler:copyright": "This style was generated on MapTiler Cloud. Usage is governed by the license terms in https://github.com/maplibre/demotiles/blob/gh-pages/LICENSE", + "openmaptiles:version": "3.x" + } +} diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 0000000..3612073 --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,3 @@ +export const environment = { + production: true +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..f56ff47 --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,16 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. diff --git a/src/favicon.ico b/src/favicon.ico new file mode 100644 index 0000000..0bbf76e Binary files /dev/null and b/src/favicon.ico differ diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..428f1ec --- /dev/null +++ b/src/index.html @@ -0,0 +1,21 @@ + + + + + Treetrail + + + + + + + + + + + + diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..c7b673c --- /dev/null +++ b/src/main.ts @@ -0,0 +1,12 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/src/manifest.webmanifest b/src/manifest.webmanifest new file mode 100644 index 0000000..7bb49fa --- /dev/null +++ b/src/manifest.webmanifest @@ -0,0 +1,59 @@ +{ + "name": "treetrail", + "short_name": "treetrail", + "theme_color": "#1976d2", + "background_color": "#fafafa", + "display": "standalone", + "scope": "./", + "start_url": "./", + "icons": [ + { + "src": "assets/icons/icon-72x72.png", + "sizes": "72x72", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-96x96.png", + "sizes": "96x96", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-128x128.png", + "sizes": "128x128", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-144x144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-152x152.png", + "sizes": "152x152", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-384x384.png", + "sizes": "384x384", + "type": "image/png", + "purpose": "maskable any" + }, + { + "src": "assets/icons/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable any" + } + ] +} diff --git a/src/polyfills.ts b/src/polyfills.ts new file mode 100644 index 0000000..a7831ec --- /dev/null +++ b/src/polyfills.ts @@ -0,0 +1,55 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ + +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js'; // Included with Angular CLI. + + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ + +(window as any).global = window; \ No newline at end of file diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 0000000..81fdc7a --- /dev/null +++ b/src/styles.scss @@ -0,0 +1,67 @@ +/* You can add global styles to this file, and also import other style files */ + +html, body { height: 100%; } +body { + margin: 0; + font-family: Roboto, "Helvetica Neue", sans-serif; +} + +.mat-app-background { + background-color:rgba(69 153 34 / 30%); +} + +@font-face { + font-family: 'TenderLeaf'; + src: url('assets/fonts/TenderleafRegular.ttf') format('TrueType'); +} + +@font-face { + font-family: 'TreetrailSymbols'; + src: url('assets/fonts/TreetrailSymbols.ttf') format('TrueType'); +} + +@font-face { + font-family: 'Roboto'; + src: local('Roboto'), local('Roboto-Regular'), url('assets/fonts/roboto.woff2') format('woff2'); +} + +@font-face { + font-family: 'Material Icons'; + font-style: normal; + font-weight: 400; + src: local('Material Icons'), local('MaterialIcons-Regular'), url('assets/fonts/materialicons.woff2') format('woff2'); +} + +.material-icons { + font-family: 'Material Icons'; + font-weight: normal; + font-style: normal; + font-size: 24px; + line-height: 1; + letter-spacing: normal; + text-transform: none; + display: inline-block; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-feature-settings: 'liga'; + font-feature-settings: 'liga'; + -webkit-font-smoothing: antialiased; +} + +.form-title { + margin-top: 0; + text-align: center; + font-size: 120%; +} + +.mat-mdc-card .mat-mdc-card-title { + display: flex; + justify-content: space-between; + margin-left: 0.5em; + margin-right: 0.5em; +} + +.mat-mdc-card-title .mat-mdc-action-list { + margin-left: auto; +} diff --git a/src/test.ts b/src/test.ts new file mode 100644 index 0000000..ae25f27 --- /dev/null +++ b/src/test.ts @@ -0,0 +1,16 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/testing'; +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting +} from '@angular/platform-browser-dynamic/testing'; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting(), { + teardown: { destroyAfterEach: false } +} +); diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..78cbf2f --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "forceConsistentCasingInFileNames": true, + "strict": false, + "esModuleInterop": true, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "sourceMap": true, + "declaration": false, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "ES2022", + "module": "es2020", + "lib": [ + "es2019", + "dom" + ], + "useDefineForClassFields": false + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false, + "strictInjectionParameters": true, + "strictInputAccessModifiers": true, + "strictTemplates": true + } +} diff --git a/tsconfig.spec.json b/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +}